diff options
| author | Zhineng Li <[email protected]> | 2026-02-13 10:54:11 +0800 |
|---|---|---|
| committer | Zhineng Li <[email protected]> | 2026-02-13 10:54:11 +0800 |
| commit | 7347bac4ab7e136157fc94777e6cf87ef9e08599 (patch) | |
| tree | 0dec367dac6e152161a6f7cc0dba6ebbef1f34a2 /data/en_us/ebs | |
| download | acs-metadata-full-main.tar.gz acs-metadata-full-main.zip | |
first commitHEADv1.0.0+20260212main
Diffstat (limited to 'data/en_us/ebs')
| -rw-r--r-- | data/en_us/ebs/2021-07-30/api-docs.php | 15016 |
1 files changed, 15016 insertions, 0 deletions
diff --git a/data/en_us/ebs/2021-07-30/api-docs.php b/data/en_us/ebs/2021-07-30/api-docs.php new file mode 100644 index 0000000..7322d17 --- /dev/null +++ b/data/en_us/ebs/2021-07-30/api-docs.php @@ -0,0 +1,15016 @@ +<?php return [ + 'version' => '1.0', + 'info' => [ + 'style' => 'RPC', + 'product' => 'ebs', + 'version' => '2021-07-30', + ], + 'directories' => [ + [ + 'id' => 276857, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeRegions', + ], + ], + [ + 'id' => 276859, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'ListReplicaEdgeSupported', + 'CreateDiskReplicaPair', + 'AddDiskReplicaPair', + 'ModifyDiskReplicaPair', + 'StartDiskReplicaPair', + 'StopDiskReplicaPair', + 'ReprotectDiskReplicaPair', + 'FailoverDiskReplicaPair', + 'DescribeDiskReplicaPairProgress', + 'DeleteDiskReplicaPair', + 'DescribeDiskReplicaPairs', + 'RemoveDiskReplicaPair', + 'DescribePairDrills', + 'StartPairDrill', + 'ClearPairDrill', + ], + ], + [ + 'id' => 276875, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateDiskReplicaGroup', + 'DescribeDiskReplicaGroups', + 'ModifyDiskReplicaGroup', + 'StartDiskReplicaGroup', + 'StopDiskReplicaGroup', + 'FailoverDiskReplicaGroup', + 'ReprotectDiskReplicaGroup', + 'DeleteDiskReplicaGroup', + 'DescribeReplicaGroupDrills', + 'StartReplicaGroupDrill', + 'ClearReplicaGroupDrill', + ], + ], + [ + 'id' => 276887, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateDedicatedBlockStorageCluster', + 'DescribeDedicatedBlockStorageClusters', + 'ModifyDedicatedBlockStorageClusterAttribute', + 'DescribeDedicatedBlockStorageClusterDisks', + 'QueryDedicatedBlockStorageClusterInventoryData', + ], + ], + [ + 'id' => 276893, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateEnterpriseSnapshotPolicy', + 'DescribeEnterpriseSnapshotPolicy', + 'UpdateEnterpriseSnapshotPolicy', + 'BindEnterpriseSnapshotPolicy', + 'UnbindEnterpriseSnapshotPolicy', + 'DeleteEnterpriseSnapshotPolicy', + ], + ], + [ + 'id' => 276900, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'ApplyLensService', + 'DescribeLensServiceStatus', + 'CancelLensService', + 'DescribeLensMonitorDisks', + 'DescribeEvents', + 'DescribeMetricData', + 'DescribeDiskMonitorDataList', + 'DescribeDiskMonitorData', + 'DescribeDiskEvents', + ], + ], + [ + 'id' => 276910, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'UpdateSolutionInstanceAttribute', + ], + ], + [ + 'id' => 276912, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'TagResources', + 'ListTagResources', + 'UntagResources', + 'ChangeResourceGroup', + 'DescribeSolutionInstanceConfiguration', + 'QueryDedicatedBlockStorageClusterDiskThroughputStatus', + 'SetDedicatedBlockStorageClusterDiskThroughput', + 'ListReports', + 'GetReport', + 'DescribeUserTagKeys', + 'DescribeUserTagValues', + ], + ], + [ + 'id' => 0, + 'title' => '其它', + 'type' => 'directory', + 'children' => [ + 'DeleteApp', + 'DescribeApps', + 'CreateApp', + 'ModifyApp', + ], + ], + ], + 'components' => [ + 'schemas' => [], + ], + 'apis' => [ + 'DescribeRegions' => [ + 'summary' => 'Queries the details of regions in which Elastic Block Storage (EBS) features (such as async replication, CloudLens for EBS, and Dedicated Block Storage Cluster) are supported.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '61960', + 'abilityTreeNodes' => [ + 'FEATUREdisk0EX8WR', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of resource. Valid values:'."\n" + ."\n" + .'* ear: async replication'."\n" + .'* lens: CloudLens for EBS'."\n" + .'* dbsc: Dedicated Block Storage Cluster'."\n" + ."\n" + .'Default value: ear.', + 'type' => 'string', + 'required' => false, + 'example' => 'ear', + ], + ], + [ + 'name' => 'AcceptLanguage', + 'in' => 'query', + 'schema' => [ + 'description' => 'The language in which the regions and zones are named. This parameter corresponds to the `LocalName` response parameter. Valid values:'."\n" + ."\n" + .'* zh-CN: Chinese'."\n" + .'* en-US: English'."\n" + .'* ja: Japanese'."\n" + ."\n" + .'Default value: zh-CN.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'zh-CN', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-beijing', + 'default' => 'cn-shanghai', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '17EE62D8-064E-5404-8B0D-72122478****', + ], + 'Regions' => [ + 'description' => 'Details about the regions.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LocalName' => [ + 'description' => 'The name of the region.'."\n", + 'type' => 'string', + 'example' => 'China (Hangzhou)', + ], + 'RegionEndpoint' => [ + 'description' => 'The endpoint of the region.'."\n", + 'type' => 'string', + 'example' => 'ebs.cn-hangzhou.aliyuncs.com', + ], + 'RegionId' => [ + 'description' => 'The ID of the region.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'Zones' => [ + 'description' => 'Details about the zones.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LocalName' => [ + 'description' => 'The name of the zone.'."\n", + 'type' => 'string', + 'example' => 'Hangzhou Zone H', + ], + 'ZoneId' => [ + 'description' => 'The ID of the zone.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-h', + ], + 'ResourceTypes' => [ + 'description' => 'The type of resource list.', + 'type' => 'array', + 'items' => [ + 'description' => 'The type of resource. Valid values:'."\n" + ."\n" + .'- ear: async replication'."\n" + ."\n" + .'- lens: CloudLens for EBS'."\n" + ."\n" + .'- dbsc: Dedicated Block Storage Cluster', + 'type' => 'string', + 'example' => 'ear', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"17EE62D8-064E-5404-8B0D-72122478****\\",\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"华东1(杭州)\\",\\n \\"RegionEndpoint\\": \\"ebs.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"杭州 可用区H\\",\\n \\"ZoneId\\": \\"cn-hangzhou-h\\",\\n \\"ResourceTypes\\": [\\n \\"ear\\"\\n ]\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeRegionsResponse>\\n <RequestId>17EE62D8-064E-5404-8B0D-72122478****</RequestId>\\n <Regions>\\n <LocalName>华东1(杭州)</LocalName>\\n <RegionEndpoint>ebs.cn-hangzhou.aliyuncs.com</RegionEndpoint>\\n <RegionId>cn-hangzhou</RegionId>\\n <Zones>\\n <LocalName>杭州 可用区H</LocalName>\\n <ZoneId>cn-hangzhou-h</ZoneId>\\n </Zones>\\n </Regions>\\n</DescribeRegionsResponse>","errorExample":""}]', + 'title' => 'DescribeRegions', + ], + 'ListReplicaEdgeSupported' => [ + 'summary' => '查询异步复制支持的目的地域和可用区', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '186462', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Azone', + 'in' => 'query', + 'schema' => [ + 'title' => '可用区ID。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou-h', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '查询凭证(Token)。取值为上一次调用该接口返回的NextToken参数值,初次调用接口时无需设置该参数。如果设置了NextToken,则请求参数PageSize和PageNumber将失效,且返回数据中的TotalCount无效。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'e71d8a535bd9c****', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'ListReplicaPairEdgeResponse', + 'description' => 'ListReplicaPairEdgeResponse', + 'type' => 'object', + 'properties' => [ + 'SupportedRegions' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RegionId' => [ + 'title' => '地域ID', + 'description' => '', + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'Zones' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ZoneId' => [ + 'title' => '可用区ID', + 'description' => '', + 'type' => 'string', + 'example' => 'cn-hangzhou-i', + ], + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => '', + 'type' => 'string', + 'example' => '17EE62D8-064E-5404-8B0D-72122478****', + ], + 'NextToken' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'e71d8a535bd9c****', + ], + 'MaxResults' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SupportedRegions\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Zones\\": [\\n {\\n \\"ZoneId\\": \\"cn-hangzhou-i\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"17EE62D8-064E-5404-8B0D-72122478****\\",\\n \\"NextToken\\": \\"e71d8a535bd9c****\\",\\n \\"MaxResults\\": 10\\n}","type":"json"}]', + ], + 'CreateDiskReplicaPair' => [ + 'summary' => 'Creates a replication pair to asynchronously replicate data between disks.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '42802', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region in which to create the replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'SourceZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The zone ID of the primary disk.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing-f', + ], + ], + [ + 'name' => 'DiskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the primary disk.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'd-iq80sgp4d0xbk24q****', + ], + ], + [ + 'name' => 'DestinationRegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the secondary disk. You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which async replication is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DestinationDiskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the secondary disk.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'd-sa1f82p58p1tdw9g****', + ], + ], + [ + 'name' => 'DestinationZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The zone ID of the secondary disk.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai-e', + ], + ], + [ + 'name' => 'PairName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the replication pair. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with `http://` or `https://`. The name can contain letters, digits, colons (:), underscores (\\_), periods (.), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestReplicaPair', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the replication pair. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'This is description.', + ], + ], + [ + 'name' => 'ChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing method of the replication pair. Valid values:'."\n" + ."\n" + .'* PREPAY: subscription'."\n" + .'* POSTPAY: pay-as-you-go'."\n" + ."\n" + .'Default value: POSTPAY.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'PREPAY', + ], + ], + [ + 'name' => 'Period', + 'in' => 'query', + 'schema' => [ + 'description' => 'The subscription duration of the replication pair. When `ChargeType` is set to PREPAY, this parameter must be specified. Valid values: 1, 2, 3, 6, 12, 24, 36, and 60. The subscription duration unit is specified by `PeriodUnit`.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PeriodUnit', + 'in' => 'query', + 'schema' => [ + 'description' => 'The unit of the subscription duration of the replication pair. Set the value to Month. Valid value: Month'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Month', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token to ensure the idempotency of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bandwidth to use to asynchronously replicate data from the primary disk to the secondary disk. Unit: Kbit/s. Valid values:'."\n" + ."\n" + .'* 10240'."\n" + .'* 20480'."\n" + .'* 51200'."\n" + .'* 102400'."\n" + ."\n" + .'Default value: 10240. When you set the ChargeType parameter to POSTPAY, the Bandwidth parameter is automatically set to 0 and cannot be modified. The value 0 indicates that bandwidth is dynamically allocated based on the volume of data that is asynchronously replicated from the primary disk to the secondary disk.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10240', + ], + ], + [ + 'name' => 'RPO', + 'in' => 'query', + 'schema' => [ + 'description' => 'The recovery point objective (RPO) of the replication pair. Unit: seconds. Valid value: 900.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '900', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group to which the replication pair belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmvs****', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签列表,最多包含20个子项', + 'description' => 'The tags to add to the replication pair-consistent group. You can specify up to 20 tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'title' => '异步复制对的标签值', + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + 'Key' => [ + 'title' => '异步复制对的标签键', + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'EnableRtc', + 'in' => 'query', + 'schema' => [ + 'title' => '是否开启RTC。默认关闭。', + 'description' => 'Whether to enable replication time control. By default, this parameter is disabled.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + 'ReplicaPairId' => [ + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'example' => 'pair-cn-dsa****', + ], + 'OrderId' => [ + 'description' => 'The order ID.'."\n", + 'type' => 'string', + 'example' => '123456****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IdempotentParameterMismatch', + 'errorMessage' => 'The specified parameter has changed while using an already used clientToken.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.QuotaExceed', + 'errorMessage' => 'The operation is not allowed due to quota exceed.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\",\\n \\"ReplicaPairId\\": \\"pair-cn-dsa****\\",\\n \\"OrderId\\": \\"123456****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDiskReplicaPairResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n <ReplicaPairId>pair-cn-dsa****</ReplicaPairId>\\n <OrderId>123456****</OrderId>\\n</CreateDiskReplicaPairResponse>","errorExample":""}]', + 'title' => 'CreateDiskReplicaPair', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'Async replication is a feature that protects data across regions by using the data replication capability of Elastic Block Storage (EBS). This feature can be used to asynchronously replicate data from a disk in one region to a disk in another region for disaster recovery purposes. You can use this feature to implement disaster recovery for critical business to protect data in your databases and improve business continuity. You are charged on a subscription basis for the bandwidth that is used by the async replication feature.'."\n" + ."\n" + .'Currently, the async replication feature can asynchronously replicate data only between enhanced SSDs (ESSDs). The functionality of disks in replication pairs is limited.'."\n" + ."\n" + .'Take note of the following items:'."\n" + ."\n" + .'* Make sure that the source disk (primary disk) from which to replicate data and the destination disk (secondary disk) to which to replicate data are created. You can call the [CreateDisk](~~25513~~) operation to create disks.'."\n" + .'* The secondary disk cannot reside in the same region as the primary disk. For information about the regions that support async replication, see [Overview](~~314563~~).'."\n" + .'* After you call this operation to create a replication pair for the primary disk and the secondary disk, you must call the [StartDiskReplicaPair](~~354205~~) operation to enable async replication to replicate data from the primary disk to the secondary disk cross regions on a periodic basis.'."\n", + ], + 'AddDiskReplicaPair' => [ + 'summary' => 'Adds a replication pair to a replication pair-consistent group. You can use a replication pair-consistent group to batch manage replication pairs. When you call this operation, you can specify parameters, such as ReplicaGroupId, ReplicaPairId, and ClientToken, in the request.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '115801', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ReplicaGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pg-myreplica****', + ], + ], + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query the IDs of existing replication pairs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-cn-dsa****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.GroupStatusCannotAddPair', + 'errorMessage' => 'The pair cannot be added in group current status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupAZoneConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupStatusConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', + ], + [ + 'errorCode' => 'OperationDenied.PairInAnotherGroup', + 'errorMessage' => 'The operation is not allowed because pair is already in another group.', + ], + [ + 'errorCode' => 'OperationDenied.PairInitializing', + 'errorMessage' => 'The operation is not allowed due to pair initializing, please try again later.', + ], + [ + 'errorCode' => 'OperationDenied.PairStatusCannotAddToGroup', + 'errorMessage' => 'The pair cannot be added in pair current status.', + ], + [ + 'errorCode' => 'OperationDenied.QuotaExceed', + 'errorMessage' => 'The operation is not allowed due to quota exceed.', + ], + [ + 'errorCode' => 'OperationDenied.PairsExceedInGroup', + 'errorMessage' => 'The operation is not allowed due to too much pair in the group.', + ], + [ + 'errorCode' => 'OperationDenied.GroupTotalDiskCapacityLimit', + 'errorMessage' => 'The disk space in the replication pair-consistent group exceeds the upper limit.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<AddDiskReplicaPairResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</AddDiskReplicaPairResponse>","errorExample":""}]', + 'title' => 'AddDiskReplicaPair', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which the replication pair-consistent group feature is available, see [Overview](~~314563~~).'."\n" + .'* A replication pair and a replication pair-consistent group replicate in the same direction if they have the same primary region (production region), primary zone (production zone), secondary region (disaster recovery region), and secondary zone (disaster recovery zone). A replication pair can be added only to a replication pair-consistent group that replicates in the same direction as the replication pair.'."\n" + .'* Before you can add a replication pair to a replication pair-consistent group, make sure that the pair and the group are in the **Created** (`created`) or **Stopped** (`stopped`) state.'."\n" + .'* Up to 17 replication pairs can be added to a single replication pair-consistent group.'."\n" + .'* After replication pairs are added to a replication pair-consistent group, the recovery point objective (RPO) of the group takes effect on the pairs in place of their original RPOs.'."\n", + ], + 'ModifyDiskReplicaPair' => [ + 'summary' => 'Modifies a replication pair.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '44716', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the primary or secondary disk in the replication pair. You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which async replication is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-cn-dsa****', + ], + ], + [ + 'name' => 'PairName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the replication pair.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestReplicaPair', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the replication pair.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'This is description.', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The bandwidth value. Unit: Kbit/s.'."\n" + ."\n" + .'> This parameter is not publicly available.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10240', + ], + ], + [ + 'name' => 'RPO', + 'in' => 'query', + 'schema' => [ + 'description' => 'The recovery point objective (RPO) of the replication pair-consistent group. Unit: seconds. Valid value: 900.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '900', + ], + ], + [ + 'name' => 'EnableRtc', + 'in' => 'query', + 'schema' => [ + 'title' => '是否开启RTC。', + 'description' => 'Whether to enable replication time control.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', + 'errorMessage' => 'Operation is not allowed on the primary site.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForStandby', + 'errorMessage' => 'Operation is not allowed on the secondary site.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDiskReplicaPairResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</ModifyDiskReplicaPairResponse>","errorExample":""}]', + 'title' => 'ModifyDiskReplicaPair', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which async replication is available, see [Overview](~~314563~~).'."\n" + .'* Only replication pairs that are in the **Created** (`created`) or **Stopped** (`stopped`) state can have their names or descriptions modified.'."\n", + ], + 'StartDiskReplicaPair' => [ + 'summary' => 'Activates the async replication feature for a specific replication pair.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '48741', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the primary or secondary disk in the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query the region information of replication pairs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-cn-dsa****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'OneShot', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to immediately synchronize data. Valid values:'."\n" + ."\n" + .'* true: immediately synchronizes data.'."\n" + .'* false: synchronizes data based on the recovery point objective (RPO).'."\n" + ."\n" + .'Default value: false.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A37597A6-BB99-19B3-85EA-4C2B91F0****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationDenied.StandbyDeviceAttached', + 'errorMessage' => 'The secondary disk is attached.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.ManualSyncLimit', + 'errorMessage' => 'One shot start manual syncing too frequently, please try again later.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A37597A6-BB99-19B3-85EA-4C2B91F0****\\"\\n}","errorExample":""},{"type":"xml","example":"<StartDiskReplicaPairResponse>\\n <RequestId>A37597A6-BB99-19B3-85EA-4C2B91F0****</RequestId>\\n</StartDiskReplicaPairResponse>","errorExample":""}]', + 'title' => 'StartDiskReplicaPair', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which async replication is available, see [Overview](~~314563~~).'."\n" + .'* Only replication pairs that are in the **Created** (`created`) or **Stopped** (`stopped`) state can be activated.'."\n" + .'* After a replication pair is activated, it enters the **Initial Syncing** (`initial_syncing`) state and the system performs the first asynchronous replication to replicate all data from the primary disk to the secondary disk.'."\n", + ], + 'StopDiskReplicaPair' => [ + 'summary' => 'Stops a replication pair.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'abilityTreeCode' => '48742', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the primary or secondary disk in the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query the region information of replication pairs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-cn-dsa****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The schema of the response.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'A37597A6-BB99-19B3-85EA-4C2B91F0****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A37597A6-BB99-19B3-85EA-4C2B91F0****\\"\\n}","errorExample":""},{"type":"xml","example":"<StopDiskReplicaPairResponse>\\n <RequestId>A37597A6-BB99-19B3-85EA-4C2B91F0****</RequestId>\\n</StopDiskReplicaPairResponse>","errorExample":""}]', + 'title' => 'StopDiskReplicaPair', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which async replication is available, see [Overview](~~314563~~).'."\n" + .'* Only replication pairs that are in the **Initial Syncing** (`initial_syncing`), **Syncing** (`syncing`), **One-time Syncing** (`manual_syncing`), or **Normal** (`normal`) state can be stopped. When a replication pair is stopped, it enters the Stopped (`stopped`) state. The secondary disk rolls back to the point in time when the last async replication was complete and drops all the data that is being replicated from the primary disk.'."\n", + ], + 'ReprotectDiskReplicaPair' => [ + 'summary' => 'Enables the reverse replication feature for a replication pair.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '71806', + 'abilityTreeNodes' => [ + 'FEATUREdiskAQUAFH', + 'FEATUREdiskVW208V', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the secondary disk in the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query region IDs of secondary disks in replication pairs.'."\n" + ."\n" + .'> The reverse replication feature must be enabled from the region where the secondary disk is located.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-cn-dsa****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'ReverseReplicate', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the reverse replication sub-feature. Valid values: true and false. Default value: true.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.NoPairInGroup', + 'errorMessage' => 'The operation is not allowed because no pair in the group.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupAZoneConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupStatusConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', + ], + [ + 'errorCode' => 'OperationDenied.PairNotInGroup', + 'errorMessage' => 'The operation is not allowed because pair is not in any group.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', + 'errorMessage' => 'Operation is not allowed on the primary site.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForStandby', + 'errorMessage' => 'Operation is not allowed on the secondary site.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<ReprotectDiskReplicaPairResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</ReprotectDiskReplicaPairResponse>","errorExample":""}]', + 'title' => 'ReprotectDiskReplicaPair', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which async replication is available, see [Overview](~~314563~~).'."\n" + .'* The replication pair for which you want to enable reverse replication must be in the **Failovered** (`failovered`) state. You can call the [FailoverDiskReplicaPair](~~354358~~) operation to enable failover.'."\n" + .'* The primary disk must be detached from its associated Elastic Compute Service (ECS) instance and is in the Unattached state. You can call the [DetachDisk](~~25516~~) operation to detach the disk.'."\n" + .'* After you enable reverse replication, you must call the [StartDiskReplicaPair](~~354205~~) operation again to activate the replication pair before data can be replicated from the original secondary disk to the original primary disk.'."\n" + .'* You can set the ReverseReplicate parameter to false to cancel the **Failovered** (`failovered`) state and restore the original replication direction.'."\n", + ], + 'FailoverDiskReplicaPair' => [ + 'summary' => 'Enables the failover feature for replication pairs.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '71755', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the secondary disk in the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query region IDs of secondary disks in replication pairs.'."\n" + ."\n" + .'> The failover feature must be enabled for the region where the secondary disk is located.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-cn-dsa****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The schema of the response.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', + 'errorMessage' => 'Operation is not allowed on the primary site.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForStandby', + 'errorMessage' => 'Operation is not allowed on the secondary site.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<FailoverDiskReplicaPairResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</FailoverDiskReplicaPairResponse>","errorExample":""}]', + 'title' => 'FailoverDiskReplicaPair', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which async replication is available, see [Overview](~~314563~~).'."\n" + .'* The replication pair for which you want to enable failover cannot be in the **Invalid** (`invalid`) or **Deleted** (`deleted`) state.'."\n" + .'* After a failover is performed, the replication pair enters the **Failovered** (`failovered`) state.'."\n", + ], + 'DescribeDiskReplicaPairProgress' => [ + 'summary' => 'Queries the replication progress of a replication pair.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '118925', + 'abilityTreeNodes' => [ + 'FEATUREdiskAQUAFH', + 'FEATUREdiskVW208V', + ], + ], + 'parameters' => [ + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~)operation to query the IDs of existing replication pairs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-cn-tl32ribst0z', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeReplicaPairProgressResponse', + 'description' => 'DescribeReplicaPairProgressResponse'."\n", + 'type' => 'object', + 'properties' => [ + 'Progress' => [ + 'title' => '同步进度', + 'description' => 'The replication progress of the replication pair.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'RecoverPoint' => [ + 'title' => '最近一次恢复点的时间戳。有条件返回,复制对start后,才会返回该字段。', + 'description' => 'The timestamp that indicates the last recovery point in time. The value is returned only after the replication pair works for replicating data.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1661917424', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****'."\n", + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Progress\\": 100,\\n \\"RecoverPoint\\": 1661917424,\\n \\"RequestId\\": \\"AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****\\\\n\\"\\n}","type":"json"}]', + 'title' => 'DescribeDiskReplicaPairProgress', + ], + 'DeleteDiskReplicaPair' => [ + 'summary' => 'Deletes replication pairs.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'abilityTreeCode' => '48744', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the primary disk in the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query the region information of replication pairs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-cn-dsa****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotency of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The schema of the response.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'A37597A6-BB99-19B3-85EA-4C2B91F0****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A37597A6-BB99-19B3-85EA-4C2B91F0****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDiskReplicaPairResponse>\\n <RequestId>A37597A6-BB99-19B3-85EA-4C2B91F0****</RequestId>\\n</DeleteDiskReplicaPairResponse>","errorExample":""}]', + 'title' => 'DeleteDiskReplicaPair', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which async replication is available, see [Overview](~~314563~~).'."\n" + .'* Only replication pairs that are in the **Stopped** (`stopped`), **Invalid** (`invalid`), or **Failovered** (`failovered`) state can be deleted. This operation deletes only replication pairs. The primary and secondary disks in the deleted replication pairs are retained.'."\n" + .'* To delete a replication pair, you must call this operation in the region where the primary disk is located. After the replication pair is deleted, the functionality limits are lifted from the primary and secondary disks. For example, you can attach the secondary disk, resize the disk, or read data from or write data to the disk.'."\n", + ], + 'DescribeDiskReplicaPairs' => [ + 'summary' => 'Queries information about replication pairs in a specific region.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '42727', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the primary or secondary disk in the replication pair. You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which async replication is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时每页的最大条目数。取值范围:1~500'."\n" + ."\n" + .'默认值:10', + 'description' => 'The maximum number of entries per page. You can use this parameter together with NextToken.'."\n" + ."\n" + .'Valid values: 1 to 500.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '查询凭证(Token)。取值为上一次调用该接口返回的NextToken参数值,初次调用接口时无需设置该参数。如果设置了NextToken,则请求参数PageSize和PageNumber将失效,且返回数据中的TotalCount无效。', + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken. If you specify NextToken, the PageSize and PageNumber request parameters do not take effect, and the TotalCount response parameter is invalid.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAdDWBF2****', + ], + ], + [ + 'name' => 'PairIds', + 'in' => 'query', + 'schema' => [ + 'title' => '异步复制关系ID列表。您可以指定一个或多个异步复制关系ID进行查询。格式为:pair-cn-dsa****,pair-cn-asd****。'."\n" + ."\n" + .'默认值为空,表示查询当前地域下所有的异步复制关系。', + 'description' => 'The IDs of replication pairs. You can specify the IDs of one or more replication pairs and separate the IDs with commas (,). Example: `pair-cn-dsa****,pair-cn-asd****`.'."\n" + ."\n" + .'This parameter is empty by default, which indicates that all replication pairs in the specified region are queried. You can specify a maximum of 100 replication pair IDs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pair-cn-dsa****', + ], + ], + [ + 'name' => 'Site', + 'in' => 'query', + 'schema' => [ + 'title' => 'production或backup,表示获取本地为生产站点或灾备站点的复制对数据,默认为production。', + 'description' => 'The type of the site from which the information of replication pairs is retrieved. Valid value:'."\n" + ."\n" + .'* production: primary site'."\n" + .'* backup: secondary site'."\n" + ."\n" + .'Default value: production.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'production', + ], + ], + [ + 'name' => 'ReplicaGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '所属复制组id。', + 'description' => 'The ID of the replication pair-consistent group. You can specify the ID of a replication pair-consistent group to query the replication pairs in the group. Example: `pg-****`.'."\n" + ."\n" + .'This parameter is empty by default, which indicates that all replication pairs in the specified region are queried.'."\n" + ."\n" + .'> If this parameter is set to`-`, replication pairs that are not added to any replication pair-consistent groups are returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pg-****', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时的页码。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时设置的每页行数。', + 'description' => 'The number of entries per page. Valid values: 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group to which the replication pair belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmvs******', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'title' => '复制对名称,支持模糊搜索。', + 'description' => 'The name of the replication pair. Fuzzy search is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'name***', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签列表,最多包含20个子项', + 'description' => 'The tags. Up to 20 tags are supported.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The value of tag N used for exact search of EBS resources. The tag value must be 1 to 128 characters in length. Valid values of N: 1 to 20.'."\n", + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'title' => '异步复制对的标签值', + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + 'Key' => [ + 'title' => '异步复制对的标签键', + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****', + ], + 'NextToken' => [ + 'title' => '查询凭证(Token)。取值为上一次调用该接口返回的NextToken参数值,初次调用接口时无需设置该参数。如果设置了NextToken,则请求参数PageSize和PageNumber将失效,且返回数据中的TotalCount无效。', + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n", + 'type' => 'string', + 'example' => 'AAAAAdDWBF2****', + ], + 'ReplicaPairs' => [ + 'description' => 'Details of the replication pairs.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Site' => [ + 'title' => '复制对信息的后端站点来源,production或backup。', + 'description' => 'The type of the site from which the information about the replication pairs and replication pair-consistent group was obtained. Valid values:'."\n" + ."\n" + .'* production: primary site'."\n" + .'* backup: secondary site'."\n", + 'type' => 'string', + 'example' => 'production', + ], + 'DestinationDiskId' => [ + 'description' => 'The ID of the secondary disk.'."\n", + 'type' => 'string', + 'example' => 'd-asdfjl2342kj2l3k4****', + ], + 'Description' => [ + 'description' => 'The description of the replication pair.'."\n", + 'type' => 'string', + 'example' => 'This is description.', + ], + 'StandbyZone' => [ + 'title' => '复制对的初始目的可用区。', + 'description' => 'The initial destination zone (secondary zone) of the replication pair.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai-b', + ], + 'ResourceGroupId' => [ + 'title' => '异步复制对所在的企业资源组ID。', + 'description' => 'The ID of the resource group to which the replication pair belongs.'."\n", + 'type' => 'string', + 'example' => 'rg-acfmvs*****', + ], + 'DestinationRegion' => [ + 'description' => 'The region ID of the secondary disk.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'ReplicaPairId' => [ + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'example' => 'pair-cn-dsa****', + ], + 'LastRecoverPoint' => [ + 'title' => '最近一次异步复制操作完成的时间。该参数以时间戳的形式提供返回值。单位为秒。', + 'description' => 'The time when data was last replicated from the primary disk to the secondary disk in the replication pair. The value of this parameter is a timestamp. Unit: seconds. 86,400 seconds is equivalent to 24 hours.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1649751977', + ], + 'ReplicaGroupId' => [ + 'title' => '所属复制组id。', + 'description' => 'The ID of the replication pair-consistent group to which the replication pair belongs.'."\n", + 'type' => 'string', + 'example' => 'pg-xxxx****', + ], + 'SourceDiskId' => [ + 'description' => 'The ID of the primary disk.'."\n", + 'type' => 'string', + 'example' => 'd-bp131n0q38u3a4zi****', + ], + 'RPO' => [ + 'title' => '复制对的RPO值。单位为秒。', + 'description' => 'The recovery point objective (RPO) of the replication pair. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '900', + ], + 'PairName' => [ + 'description' => 'The name of the replication pair.'."\n", + 'type' => 'string', + 'example' => 'TestReplicaPair', + ], + 'Bandwidth' => [ + 'title' => '异步复制时使用的带宽。单位为Kbps。', + 'description' => 'The bandwidth used to asynchronously replicate data from the primary disk to the secondary disk. Unit: Kbit/s.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10240', + ], + 'ExpiredTime' => [ + 'description' => 'The time when the replication pair expires. The value of this parameter is a timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1649750977', + ], + 'PrimaryZone' => [ + 'title' => '复制对的初始源可用区。', + 'description' => 'The initial source zone (primary zone) of the replication pair.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing-a', + ], + 'SourceZoneId' => [ + 'title' => '主盘所属的可用区。', + 'description' => 'The zone ID of the primary disk.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing-a', + ], + 'Tags' => [ + 'title' => '异步复制对的标签', + 'description' => 'The tags of the replication pair.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'title' => '异步复制对的标签键', + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'example' => 'testKey', + ], + 'TagValue' => [ + 'title' => '异步复制对的标签值', + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'example' => 'testValue', + ], + ], + ], + ], + 'Status' => [ + 'title' => '异步复制关系的状态。可能值:'."\n" + ."\n" + .'- invalid:失效。该状态表示异步复制关系存在异常。'."\n" + .'- creating:创建中。'."\n" + .'- created:已创建。'."\n" + .'- create_failed:创建失败。'."\n" + .'- initial_syncing:初始同步中。异步复制在创建并启动后,主盘数据初次异步复制到从盘的过程中,将处于该状态。'."\n" + .'- syncing:同步中。主盘和从盘之间非第一次进行异步复制数据时,将处于该状态。'."\n" + .'- manual_syncing:单次同步中。单次同步,同步完成后恢复到stopped状态。如果是第一次单次同步,则同步中也显示为状态manual_syncing。'."\n" + .'- normal:正常。当异步复制的当前周期内数据复制完成时,将处于该状态。'."\n" + .'- stopping:停止中。'."\n" + .'- stopped:已停止。'."\n" + .'- stop_failed:停止失败。'."\n" + .'- failovering:故障切换中。'."\n" + .'- failovered:故障切换完成。'."\n" + .'- failover_failed:故障切换失败。'."\n" + .'- reprotecting:反向复制操作中。'."\n" + .'- reprotect_failed:反向复制失败。'."\n" + .'- deleting:删除中。'."\n" + .'- delete_failed:删除失败。'."\n" + .'- deleted:已删除。', + 'description' => 'The status of the replication pair. Valid values:'."\n" + ."\n" + .'* invalid: The replication pair was invalid. When a replication pair becomes abnormal, it enters this state.'."\n" + .'* creating: The replication pair was being created.'."\n" + .'* created: The replication pair was created.'."\n" + .'* create_failed: The replication pair failed to be created.'."\n" + .'* initial_syncing: Data was synchronized from the primary disk to the secondary disk for the first time. After a replication pair is created and activated, the replication pair is in this state the first time data is synchronized from the primary disk to the secondary disk.'."\n" + .'* manual_syncing: Data was being manually synchronized from the primary disk to the secondary disk. After data is manually synchronized from the primary disk to the secondary disk, the replication pair returns to the stopped state. The first time data is manually synchronized from the primary disk to the secondary disk, the replication pair is in the manual_syncing state during the synchronization.'."\n" + .'* syncing: Data was being synchronized from the primary disk to the secondary disk. When data is being asynchronously replicated from the primary disk to the secondary disk again in subsequent operations, the replication pair is in this state.'."\n" + .'* normal: The replication pair was working as expected. When the system finishes replicating data from the primary disk to the secondary disk within the current replication cycle, the replication pair enters this state.'."\n" + .'* stopping: The replication pair was being stopped.'."\n" + .'* stopped: The replication pair was stopped.'."\n" + .'* stop_failed: The replication pair failed to be stopped.'."\n" + .'* failovering: A failover was being performed.'."\n" + .'* failovered: A failover was performed.'."\n" + .'* failover_failed: A failover failed to be performed.'."\n" + .'* reprotecting: A reverse replication was being performed.'."\n" + .'* reprotect_failed: A reverse replication failed to be performed.'."\n" + .'* deleting: The replication pair was being deleted.'."\n" + .'* delete_failed: The replication pair failed to be deleted.'."\n" + .'* deleted: The replication pair was deleted.'."\n", + 'type' => 'string', + 'example' => 'created', + ], + 'PrimaryRegion' => [ + 'title' => '复制对的初始源地域。', + 'description' => 'The initial source region (primary region) of the replication pair.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + 'CreateTime' => [ + 'title' => '创建时间。1970年1月1日0点0分以来的秒数。', + 'description' => 'The time when the replication pair was created. The value of this parameter is a timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1649750977', + ], + 'SourceRegion' => [ + 'description' => 'The region ID of the primary disk.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + 'StatusMessage' => [ + 'title' => '复制对的状态提示信息。比如invalid时,可能值:DeviceRemoved:主盘或者从盘被删除。DeviceKeyChanged:主盘或从盘的DeviceKey映射发生变化。', + 'description' => 'The message that describes the state of the replication pair. This parameter has a value when `Status` has a value of invalid or `create_failed`. Valid values:'."\n" + ."\n" + .'* PrePayOrderExpired: The replication pair has expired.'."\n" + .'* PostPayOrderCeaseService: The pay-as-you-go replication pair has been stopped due to an overdue payment.'."\n" + .'* DeviceRemoved: The primary or secondary disk has been deleted.'."\n" + .'* DeviceKeyChanged: The `DeviceKey` mapping of the primary or secondary disk has changed.'."\n" + .'* DeviceSizeChanged: The `DeviceSize` value of the primary or secondary disk has changed.'."\n" + .'* OperationDenied.QuotaExceed: The maximum number of replication pairs that can be created has been reached.'."\n", + 'type' => 'string', + 'example' => 'PrePayOrderExpired', + ], + 'EnableRtc' => [ + 'title' => 'RTC开关。', + 'description' => 'Whether the replication time control is enabled. If the replication pair has been added to a replication group, it is consistent with the attributes of the replication group.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'ChargeType' => [ + 'title' => '付费类型。PREPAY:预付费;POSTPAY:后付费。', + 'description' => 'The billing method of the replication pair. Valid values:'."\n" + ."\n" + .'* PREPAY: subscription'."\n" + .'* POSTPAY: pay-as-you-go'."\n", + 'type' => 'string', + 'example' => 'PREPAY', + ], + 'DestinationZoneId' => [ + 'title' => '从盘所属的可用区。', + 'description' => 'The zone ID of the secondary disk.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai-b', + ], + 'ReplicaGroupName' => [ + 'title' => '所属复制组名称。', + 'description' => 'The name of the replication pair-consistent group to which the replication pair belongs.'."\n", + 'type' => 'string', + 'example' => 'pg-name****', + ], + 'StandbyRegion' => [ + 'title' => '复制对的初始目的地域。', + 'description' => 'The initial destination region (secondary region) of the replication pair.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + ], + 'description' => '', + ], + ], + 'PageNumber' => [ + 'title' => '参数页码。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'title' => '参数页行数。', + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalCount' => [ + 'title' => '分页查询时的结果总条数。', + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '60', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****\\",\\n \\"NextToken\\": \\"AAAAAdDWBF2****\\",\\n \\"ReplicaPairs\\": [\\n {\\n \\"Site\\": \\"production\\",\\n \\"DestinationDiskId\\": \\"d-asdfjl2342kj2l3k4****\\",\\n \\"Description\\": \\"This is description.\\",\\n \\"StandbyZone\\": \\"cn-shanghai-b\\",\\n \\"ResourceGroupId\\": \\"rg-acfmvs*****\\",\\n \\"DestinationRegion\\": \\"cn-shanghai\\",\\n \\"ReplicaPairId\\": \\"pair-cn-dsa****\\",\\n \\"LastRecoverPoint\\": 1649751977,\\n \\"ReplicaGroupId\\": \\"pg-xxxx****\\",\\n \\"SourceDiskId\\": \\"d-bp131n0q38u3a4zi****\\",\\n \\"RPO\\": 900,\\n \\"PairName\\": \\"TestReplicaPair\\",\\n \\"Bandwidth\\": 10240,\\n \\"ExpiredTime\\": 1649750977,\\n \\"PrimaryZone\\": \\"cn-beijing-a\\",\\n \\"SourceZoneId\\": \\"cn-beijing-a\\",\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"testKey\\",\\n \\"TagValue\\": \\"testValue\\"\\n }\\n ],\\n \\"Status\\": \\"created\\",\\n \\"PrimaryRegion\\": \\"cn-beijing\\",\\n \\"CreateTime\\": 1649750977,\\n \\"SourceRegion\\": \\"cn-beijing\\",\\n \\"StatusMessage\\": \\"PrePayOrderExpired\\",\\n \\"EnableRtc\\": true,\\n \\"ChargeType\\": \\"PREPAY\\",\\n \\"DestinationZoneId\\": \\"cn-shanghai-b\\",\\n \\"ReplicaGroupName\\": \\"pg-name****\\",\\n \\"StandbyRegion\\": \\"cn-shanghai\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 60\\n}","errorExample":""},{"type":"xml","example":"<DescribeDiskReplicaPairsResponse>\\n <RequestId>AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****</RequestId>\\n <NextToken>AAAAAdDWBF2****</NextToken>\\n <ReplicaPairs>\\n <ReplicaPairId>pair-cn-dsa****</ReplicaPairId>\\n <SourceRegion>cn-beijing</SourceRegion>\\n <SourceZoneId>cn-beijing-a</SourceZoneId>\\n <SourceDiskId>d-bp131n0q38u3a4zi****</SourceDiskId>\\n <DestinationRegion>cn-shanghai</DestinationRegion>\\n <DestinationZoneId>cn-shanghai-b</DestinationZoneId>\\n <DestinationDiskId>d-asdfjl2342kj2l3k4****</DestinationDiskId>\\n <PairName>TestReplicaPair</PairName>\\n <Description>This is description.</Description>\\n <Status>created</Status>\\n <RPO>900</RPO>\\n <Bandwidth>10240</Bandwidth>\\n <StatusMessage>PrePayOrderExpired</StatusMessage>\\n <LastRecoverPoint>1649751977</LastRecoverPoint>\\n <ReplicaGroupId>pg-xxxx****</ReplicaGroupId>\\n <CreateTime>1649750977</CreateTime>\\n <ReplicaGroupName>pg-name****</ReplicaGroupName>\\n <Site>production</Site>\\n <PrimaryRegion>cn-beijing</PrimaryRegion>\\n <StandbyRegion>cn-shanghai</StandbyRegion>\\n <PrimaryZone>cn-beijing-a</PrimaryZone>\\n <StandbyZone>cn-shanghai-b</StandbyZone>\\n <ChargeType>PREPAY</ChargeType>\\n <ExpiredTime>1649750977</ExpiredTime>\\n <ResourceGroupId>rg-acfmvs*****</ResourceGroupId>\\n <Tags>\\n <TagKey>testKey</TagKey>\\n <TagValue>testValue</TagValue>\\n </Tags>\\n </ReplicaPairs>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <TotalCount>60</TotalCount>\\n</DescribeDiskReplicaPairsResponse>","errorExample":""}]', + 'title' => 'DescribeDiskReplicaPairs', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which async replication is available, see [Overview](~~314563~~).'."\n" + .'* When you call this operation for a specific region, if the primary disk (source disk) or secondary disk (destination disk) of a replication pair resides in the region, information about the replication pair is displayed in the response.'."\n" + .'* If you want to perform a paged query, configure the `NextToken` and `MaxResults` parameters. During a paged query, when you call the DescribeDiskReplicaPairs operation to retrieve the first page of results, set `MaxResults` to limit the maximum number of entries to return in the call. The return value of NextToken is a pagination token, which can be used in the next call to retrieve a new page of results. When you call the DescribeDiskReplicaPairs operation to retrieve a new page of results, set NextToken to the NextToken value returned in the previous call and set MaxResults to specify the maximum number of entries to return in this call.'."\n", + ], + 'RemoveDiskReplicaPair' => [ + 'summary' => 'Removes a replication pair from a replication pair-consistent group. After a replication pair is removed from a replication pair-consistent group, the pair is disassociated from the group but is not deleted.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '115802', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ReplicaGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group.'."\n" + ."\n" + .'You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query the IDs of replication pair-consistent groups.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pg-myreplica****', + ], + ], + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-cn-dsa****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.GroupStatusCannotRemovePair', + 'errorMessage' => 'The pair cannot be removed in group current status.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.NoPairInGroup', + 'errorMessage' => 'The operation is not allowed because no pair in the group.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupAZoneConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupStatusConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', + ], + [ + 'errorCode' => 'OperationDenied.PairInAnotherGroup', + 'errorMessage' => 'The operation is not allowed because pair is already in another group.', + ], + [ + 'errorCode' => 'OperationDenied.PairNotInGroup', + 'errorMessage' => 'The operation is not allowed because pair is not in any group.', + ], + [ + 'errorCode' => 'OperationDenied.PairStatusCannotRemoveFromGroup', + 'errorMessage' => 'The pair cannot be removed in pair current status.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<RemoveDiskReplicaPairResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</RemoveDiskReplicaPairResponse>","errorExample":""}]', + 'title' => 'RemoveDiskReplicaPair', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which the replication pair-consistent group feature is available, see [Overview](~~314563~~).'."\n" + .'* The replication pair-consistent group from which you want to remove a replication pair must be in the **Created** (`created`), **Stopped** (`stopped`), or **Invalid** (`invalid`) state.'."\n", + ], + 'DescribePairDrills' => [ + 'summary' => 'Queries the disaster recovery drills that were performed on the replication pair whose secondary disk resides in a specific region.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'abilityTreeCode' => '186462', + 'abilityTreeNodes' => [ + 'FEATUREdiskAQUAFH', + 'FEATUREdiskVW208V', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the primary or secondary disk in the async replication pair. You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which async replication is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DrillId', + 'in' => 'query', + 'schema' => [ + 'title' => '演练ID。', + 'description' => 'The ID of the drill.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'drill-xxxx', + ], + ], + [ + 'name' => 'PairId', + 'in' => 'query', + 'schema' => [ + 'title' => '复制对ID。', + 'description' => 'The ID of the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query a list of asynchronous replication pairs, including replication pair IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-xxxx', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时每页的最大条目数。取值范围:1~500'."\n" + ."\n" + .'默认值:10', + 'description' => 'The maximum number of entries to be returned. You can use this parameter together with NextToken.'."\n" + ."\n" + .'Valid values: 1 to 500.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '查询凭证(Token)。取值为上一次调用该接口返回的NextToken参数值,初次调用接口时无需设置该参数。如果设置了NextToken,则请求参数PageSize和PageNumber将失效,且返回数据中的TotalCount无效。', + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Set the value to the NextToken value returned in the previous call to the DescribeDiskReplicaPairs operation. Leave this parameter empty the first time you call this operation. When you specify NextToken, the PageSize and PageNumber request parameters do not take effect and the TotalCount response parameter is invalid.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAdDWBF2****', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时的页码。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时设置的每页行数。', + 'description' => 'The number of entries per page. Valid values: 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribePairDrillResponse', + 'description' => 'The schema of the response.'."\n", + 'type' => 'object', + 'properties' => [ + 'Drills' => [ + 'description' => 'The information of disaster recovery drills that were performed on the replication pair.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DrillId' => [ + 'title' => '演练ID', + 'description' => 'The ID of the drill.'."\n", + 'type' => 'string', + 'example' => 'drill-xxx', + ], + 'Status' => [ + 'title' => '演练状态', + 'description' => 'The status of the drill. Valid values:'."\n" + ."\n" + .'* execute_failed'."\n" + .'* executed'."\n" + .'* executing'."\n" + .'* clear_failed'."\n" + .'* clearing'."\n", + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'executing', + ], + 'DrillDiskId' => [ + 'title' => '演练盘ID', + 'description' => 'The ID of the drill disk.'."\n", + 'type' => 'string', + 'example' => 'd-xxx', + ], + 'DrillDiskStatus' => [ + 'title' => '演练盘状态', + 'description' => 'The status of the drill disk. Valid values:'."\n" + ."\n" + .'* created'."\n" + .'* deleted'."\n" + .'* creating'."\n" + .'* deleting'."\n" + ."\n" + .'> This parameter can also display error code details if your drill disk fails to be created or deleted.'."\n", + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'created', + ], + 'StartAt' => [ + 'title' => '启动时间', + 'description' => 'The beginning time of the drill. The value of this parameter is a timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1690855888', + ], + 'RecoverPoint' => [ + 'title' => '该演练对应的恢复点。', + 'description' => 'The recovery point of the drill. The value of this parameter is a timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1690855931', + ], + 'StatusMessage' => [ + 'title' => '任务执行失败的错误提示信息。', + 'description' => 'The error message that was displayed if the drill failed to be executed.'."\n", + 'type' => 'string', + 'example' => 'PAIR_SYNCPOINT_NOT_FOUND', + ], + ], + ], + ], + 'NextToken' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'AAAAAdDWBF2****'."\n", + ], + 'PageNumber' => [ + 'title' => '分页模式查询时的页数。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'title' => '分页模式查询时的单页记录数量。', + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalCount' => [ + 'title' => '总个数', + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C46FF5A8-C5F0-4024-8262-B16B6392****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Drills\\": [\\n {\\n \\"DrillId\\": \\"drill-xxx\\",\\n \\"Status\\": \\"executing\\",\\n \\"DrillDiskId\\": \\"d-xxx\\",\\n \\"DrillDiskStatus\\": \\"created\\",\\n \\"StartAt\\": 1690855888,\\n \\"RecoverPoint\\": 1690855931,\\n \\"StatusMessage\\": \\"PAIR_SYNCPOINT_NOT_FOUND\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAdDWBF2****\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"C46FF5A8-C5F0-4024-8262-B16B6392****\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribePairDrillsResponse>\\n <Drills>\\n <DrillId>drill-xxx</DrillId>\\n <Status>executing</Status>\\n <DrillDiskId>d-xxx</DrillDiskId>\\n <DrillDiskStatus>created</DrillDiskStatus>\\n <StartAt>1690855888</StartAt>\\n <RecoverPoint>1690855931</RecoverPoint>\\n <StatusMessage>PAIR_SYNCPOINT_NOT_FOUND</StatusMessage>\\n </Drills>\\n <NextToken>AAAAAdDWBF2****</NextToken>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <TotalCount>1</TotalCount>\\n <RequestId>C46FF5A8-C5F0-4024-8262-B16B6392****</RequestId>\\n</DescribePairDrillsResponse>","errorExample":""}]', + 'title' => 'DescribePairDrills', + ], + 'StartPairDrill' => [ + 'summary' => 'Starts a disaster recovery drill to ensure the continued replication and clone the data from the last recovery point of the secondary disk to a new disk. This helps you test the completeness and correctness of applications that are deployed on the disaster recovery site on a regular basis.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '186458', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the secondary disk in the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query the region in which the secondary disk of the replication pair resides.'."\n" + ."\n" + .'> You must enable the disaster recovery drill feature in the region in which the secondary site resides.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PairId', + 'in' => 'query', + 'schema' => [ + 'title' => '复制对ID。', + 'description' => 'The ID of the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query a list of replication pairs, including replication pair IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-xxxx', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'StartPairDrillResponse', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'DrillId' => [ + 'title' => '演练ID。', + 'description' => 'The drill ID.'."\n", + 'type' => 'string', + 'example' => 'drill-xxx', + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.RecoverPointNotFound', + 'errorMessage' => 'Recover point is not found.', + ], + [ + 'errorCode' => 'OperationDenied.StartDrillShouldOnDestRegion', + 'errorMessage' => 'Operation should be executed on the secondary region.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DrillId\\": \\"drill-xxx\\",\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<StartPairDrillResponse>\\n <DrillId>drill-xxx</DrillId>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</StartPairDrillResponse>","errorExample":""}]', + 'title' => 'StartPairDrill', + 'description' => 'After the disaster recovery drill is complete on the secondary disk, a pay-as-you-go drill disk that has the same capacity and category as the secondary disk is created in the zone where the secondary disk resides. The drill disk contains last-recovery-point data that can be used to test the completeness and correctness of applications.'."\n", + ], + 'ClearPairDrill' => [ + 'summary' => 'Clears the disaster recovery drills that were initiated from the secondary disk of a replication pair and deletes the auto-created drill disks.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'abilityTreeCode' => '186459', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID. You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which async replication is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PairId', + 'in' => 'query', + 'schema' => [ + 'title' => '复制对ID。', + 'description' => 'The ID of the replication pair. You can call the [DescribeDiskReplicaPairs](~~354206~~) operation to query the most recent list of replication pairs, including replication pair IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-xxxx', + ], + ], + [ + 'name' => 'DrillId', + 'in' => 'query', + 'schema' => [ + 'title' => '演练ID。', + 'description' => 'The ID of the drill. You can call the [DescribePairDrills](~~2584480~~) operation to query the disaster recovery drills that were performed on replication pairs in a specific region.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'drill-xxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '20758A-585D-4A41-A9B2-28DA8F4F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"20758A-585D-4A41-A9B2-28DA8F4F****\\"\\n}","errorExample":""},{"type":"xml","example":"<ClearPairDrillResponse>\\n <RequestId>20758A-585D-4A41-A9B2-28DA8F4F****</RequestId>\\n</ClearPairDrillResponse>","errorExample":""}]', + 'title' => 'ClearPairDrill', + ], + 'CreateDiskReplicaGroup' => [ + 'summary' => 'Creates a replication pair-consistent group.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region in which to create the replication pair-consistent group. The primary site is deployed in the specified region.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'SourceZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The zone ID of the primary site.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing-f', + ], + ], + [ + 'name' => 'DestinationRegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the secondary site.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'DestinationZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The zone ID of the secondary site.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai-e', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the replication pair-consistent group. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with `http://` or `https://`. The name can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'myreplicagrouptest', + 'maxLength' => 128, + 'minLength' => 2, + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the replication pair-consistent group. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'This is description.', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotency of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'RPO', + 'in' => 'query', + 'schema' => [ + 'description' => 'The RPO of the replication pair-consistent group. Unit: seconds. Valid value: 900.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'enumValueTitles' => [ + 900 => '900', + ], + 'example' => '900', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'title' => '带宽值,单位为Kbps。公共云暂不支持。', + 'description' => 'The bandwidth value. Unit: Mbit/s.'."\n" + ."\n" + .'> This parameter is not publicly available.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10240', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group to which the replication pair-consistent group belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmvs*******', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签列表,最多包含20个子项', + 'description' => 'The tags. Up to 20 tags are supported.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'title' => '异步复制对的标签值', + 'description' => 'The value of tag N of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tag-value', + ], + 'Key' => [ + 'title' => '异步复制对的标签键', + 'description' => 'The key of tag N of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tag-key', + ], + ], + 'required' => false, + 'description' => 'The value of tag N used for exact search of EBS resources. The tag value must be 1 to 128 characters in length. Valid values of N: 1 to 20.'."\n", + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'EnableRtc', + 'in' => 'query', + 'schema' => [ + 'title' => '是否开启RTC。默认关闭。', + 'description' => 'Whether to enable replication time control. By default, this parameter is disabled.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The schema of the response.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + 'ReplicaGroupId' => [ + 'description' => 'The ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'pg-xxxxxxx', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.QuotaExceed', + 'errorMessage' => 'The operation is not allowed due to quota exceed.', + ], + [ + 'errorCode' => 'OperationDenied.TooMuchEmptyGroup', + 'errorMessage' => 'Operation failed because of too many empty groups.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\",\\n \\"ReplicaGroupId\\": \\"pg-xxxxxxx\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDiskReplicaGroupResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n <ReplicaGroupId>pg-xxxxxxx</ReplicaGroupId>\\n</CreateDiskReplicaGroupResponse>","errorExample":""}]', + 'title' => 'CreateDiskReplicaGroup', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'The replication pair-consistent group feature allows you to batch manage multiple disks in disaster recovery scenarios. You can restore the data of all disks in the same replication pair-consistent group to the same point in time to allow for disaster recovery of instances.'."\n" + ."\n" + .'Take note of the following items:'."\n" + ."\n" + .'* For information about the regions in which the replication pair-consistent group feature is available, see [Overview](~~314563~~).'."\n" + .'* Replication pair-consistent groups can be used to implement disaster recovery across zones within the same region and disaster recovery across regions.'."\n" + .'* A replication pair and a replication pair-consistent group can replicate in the same direction if they have the same primary region (production region), primary zone (production zone), secondary region (disaster recovery region), and secondary zone (disaster recovery zone). A replication pair can be added to only a replication pair-consistent group that replicates in the same direction as the replication pair.'."\n" + .'* After replication pairs are added to a replication pair-consistent group, the recovery point objective (RPO) of the group takes effect on the pairs instead of their original RPOs.'."\n", + ], + 'DescribeDiskReplicaGroups' => [ + 'summary' => 'Queries the details of replication pair-consistent groups in a specific region.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '115793', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region to which the replication pair-consistent group belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum number of entries per page. You can use this parameter together with NextToken.'."\n" + ."\n" + .'Valid values: 1 to 500.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '查询凭证(Token)。取值为上一次调用该接口返回的NextToken参数值,初次调用接口时无需设置该参数。如果设置了NextToken,则请求参数PageSize和PageNumber将失效,且返回数据中的TotalCount无效。', + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken. If you specify NextToken, the PageSize and PageNumber request parameters do not take effect, and the TotalCount response parameter is invalid.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAdDWBF2****', + ], + ], + [ + 'name' => 'GroupIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the replication pair-consistent groups. You can specify the IDs of one or more replication pair-consistent groups. Separate the IDs with commas (,).'."\n" + ."\n" + .'This parameter is empty by default, which indicates that all replication pair-consistent groups in the specified region are queried. You can specify up to the IDs of 100 replication pair-consistent groups.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAdDWBF2****', + ], + ], + [ + 'name' => 'Site', + 'in' => 'query', + 'schema' => [ + 'title' => 'production或backup,表示数据从主或备站点获取,默认为production。', + 'description' => 'The type of the site from which the information of replication pair-consistent groups is retrieved. This parameter is used for scenarios where data is replicated across zones in replication pairs.'."\n" + ."\n" + .'* If this parameter is not specified, information such as the status of replication pair-consistent groups at the primary site is queried and returned.'."\n" + ."\n" + .'* Otherwise, information such as the state of replication pairs at the site specified by the Site parameter is queried and returned. Valid values:'."\n" + ."\n" + .' * production: primary site'."\n" + .' * backup: secondary site'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'production', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时的页码。', + 'description' => 'The number of the page to return.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时设置的每页行数。', + 'description' => 'The number of entries to return on each page. Valid values: 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group to which the replication pair-consistent group belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekz*****', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'title' => '复制组名称,支持模糊搜索。', + 'description' => 'The name of the replication pair-consistent group. You can perform a fuzzy search.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pg-name***', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签列表,最多包含20个子项', + 'description' => 'The tags to add to the replication pair-consistent group. You can specify up to 20 tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'title' => '复制组的标签值', + 'description' => 'The value of tag N of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tag-value', + ], + 'Key' => [ + 'title' => '复制组的标签键', + 'description' => 'The key of tag N of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tag-key', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****', + ], + 'NextToken' => [ + 'title' => '查询凭证(Token)。取值为上一次调用该接口返回的NextToken参数值,初次调用接口时无需设置该参数。如果设置了NextToken,则请求参数PageSize和PageNumber将失效,且返回数据中的TotalCount无效。', + 'description' => 'A pagination token.'."\n", + 'type' => 'string', + 'example' => 'AAAAAdDWBF2****', + ], + 'ReplicaGroups' => [ + 'description' => 'The information about the replication pair-consistent groups.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GroupName' => [ + 'description' => 'The name of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'myreplicagrouptest', + ], + 'Site' => [ + 'title' => 'pair信息的后端站点来源,production或backup', + 'description' => 'The type of the site from which the information about the replication pairs and replication pair-consistent group was obtained. Valid values:'."\n" + ."\n" + .'* production: primary site'."\n" + .'* backup: secondary site'."\n", + 'type' => 'string', + 'example' => 'production', + ], + 'Description' => [ + 'description' => 'The description of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'This is description.', + ], + 'StandbyZone' => [ + 'title' => '复制组的初始目的可用区。', + 'description' => 'The initial destination zone (secondary zone) of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai-e', + ], + 'ResourceGroupId' => [ + 'title' => '复制组所在的企业资源组ID。', + 'description' => 'The ID of the resource group to which the replication pair-consistent group belongs.'."\n", + 'type' => 'string', + 'example' => 'rg-aek2a*******', + ], + 'LastRecoverPoint' => [ + 'description' => 'The time when data was last replicated from the primary disks to the secondary disks in the replication pair-consistent group. The value of this parameter is a timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1637835114', + ], + 'ReplicaGroupId' => [ + 'description' => 'The IDs of the replication pair-consistent groups.'."\n", + 'type' => 'string', + 'example' => 'pg-myreplica****', + ], + 'RPO' => [ + 'description' => 'The recovery point objective (RPO) of the replication pair-consistent group. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '180', + ], + 'SourceRegionId' => [ + 'description' => 'The ID of the region in which the primary site is deployed.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + 'DestinationRegionId' => [ + 'description' => 'The ID of the region in which the secondary site is deployed.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai', + ], + 'Bandwidth' => [ + 'title' => '带宽值,单位为Kbps。公共云暂不支持。', + 'description' => 'The bandwidth value. Unit: Kbit/s. This parameter is not publicly available and has a system-preset value.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'PrimaryZone' => [ + 'title' => '复制组的初始源可用区。', + 'description' => 'The initial source zone (primary zone) of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing-h', + ], + 'SourceZoneId' => [ + 'description' => 'The ID of the zone in which the primary site is deployed.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing-f', + ], + 'Tags' => [ + 'title' => '复制组的标签', + 'description' => 'The tags of the replication pair-consistent group.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'title' => '复制组的标签键', + 'description' => 'The tag key of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'testKey', + ], + 'TagValue' => [ + 'title' => '复制组的标签值', + 'description' => 'The tag value of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'testValue', + ], + ], + 'description' => '', + ], + ], + 'Status' => [ + 'description' => 'The status of the replication pair-consistent group. Valid values:'."\n" + ."\n" + .'* invalid: The replication pair-consistent group is invalid, which indicates that abnormal replication pairs are present in the replication pair-consistent group.'."\n" + .'* creating: The replication pair-consistent group is being created.'."\n" + .'* created: The replication pair-consistent group was created.'."\n" + .'* create_failed: The replication pair-consistent group failed to be created.'."\n" + .'* manual_syncing: Data was being manually synchronized between the disks in the replication pair-consistent group. When data was being manually synchronized for the first time, the replication pair is in this state.'."\n" + .'* syncing: Data was being synchronized between the disks. When data is being asynchronously replicated from the primary disk to the secondary disk again in subsequent operations, the replication pair is in this state.'."\n" + .'* normal: The replication pair was working as expected. When the system finishes replicating data from the primary disk to the secondary disk within the current replication cycle, the replication pair enters this state.'."\n" + .'* stopping: The replication pair was being stopped.'."\n" + .'* stopped: The replication pair was stopped.'."\n" + .'* stop_failed: The replication pair failed to be stopped.'."\n" + .'* failovering: A failover was being performed.'."\n" + .'* failovered: A failover was performed.'."\n" + .'* failover_failed: A failover failed to be performed.'."\n" + .'* reprotecting: A reverse replication was being performed.'."\n" + .'* reprotect_failed: A reverse replication failed to be performed.'."\n" + .'* deleting: The replication pair was being deleted.'."\n" + .'* delete_failed: The replication pair failed to be deleted.'."\n" + .'* deleted: The replication pair was deleted.'."\n", + 'type' => 'string', + 'example' => 'created', + ], + 'PairNumber' => [ + 'title' => '复制组中的复制对个数', + 'description' => 'The number of replication pairs that belong to the replication pair-consistent group.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'PrimaryRegion' => [ + 'title' => '复制组的初始源地域。', + 'description' => 'The initial source region (primary region) of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + 'PairIds' => [ + 'description' => 'The IDs of replication pairs that belong to the replication pair-consistent group.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IDs of replication pairs that belong to the replication pair-consistent group.'."\n", + 'type' => 'string', + 'format' => 'byte', + 'example' => 'pair-cn-dsa****,pair-cn-asd****', + ], + ], + 'EnableRtc' => [ + 'title' => 'RTC开关。', + 'description' => 'Indicates whether to enable replication time control.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'DestinationZoneId' => [ + 'description' => 'The ID of the zone in which the secondary site is deployed.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai-e', + ], + 'StandbyRegion' => [ + 'title' => '复制组的初始目的地域。', + 'description' => 'The initial destination region (secondary region) of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai'."\n", + ], + ], + 'description' => '', + ], + ], + 'PageNumber' => [ + 'title' => '参数页码。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'title' => '参数页行数。', + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalCount' => [ + 'title' => '分页查询时的结果总条数。', + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '60', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****\\",\\n \\"NextToken\\": \\"AAAAAdDWBF2****\\",\\n \\"ReplicaGroups\\": [\\n {\\n \\"GroupName\\": \\"myreplicagrouptest\\",\\n \\"Site\\": \\"production\\",\\n \\"Description\\": \\"This is description.\\",\\n \\"StandbyZone\\": \\"cn-shanghai-e\\",\\n \\"ResourceGroupId\\": \\"rg-aek2a*******\\",\\n \\"LastRecoverPoint\\": 1637835114,\\n \\"ReplicaGroupId\\": \\"pg-myreplica****\\",\\n \\"RPO\\": 180,\\n \\"SourceRegionId\\": \\"cn-beijing\\",\\n \\"DestinationRegionId\\": \\"cn-shanghai\\",\\n \\"Bandwidth\\": 0,\\n \\"PrimaryZone\\": \\"cn-beijing-h\\",\\n \\"SourceZoneId\\": \\"cn-beijing-f\\",\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"testKey\\",\\n \\"TagValue\\": \\"testValue\\"\\n }\\n ],\\n \\"Status\\": \\"created\\",\\n \\"PairNumber\\": 2,\\n \\"PrimaryRegion\\": \\"cn-beijing\\",\\n \\"PairIds\\": [\\n \\"pair-cn-dsa****,pair-cn-asd****\\"\\n ],\\n \\"EnableRtc\\": true,\\n \\"DestinationZoneId\\": \\"cn-shanghai-e\\",\\n \\"StandbyRegion\\": \\"cn-shanghai\\\\n\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 60\\n}","errorExample":""},{"type":"xml","example":"<DescribeDiskReplicaGroupsResponse>\\n <RequestId>AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****</RequestId>\\n <NextToken>AAAAAdDWBF2****</NextToken>\\n <ReplicaGroups>\\n <ReplicaGroupId>pg-myreplica****</ReplicaGroupId>\\n <SourceRegionId>cn-beijing</SourceRegionId>\\n <SourceZoneId>cn-beijing-f</SourceZoneId>\\n <DestinationRegionId>cn-shanghai</DestinationRegionId>\\n <DestinationZoneId>cn-shanghai-e</DestinationZoneId>\\n <GroupName>myreplicagrouptest</GroupName>\\n <Description>This is description.</Description>\\n <Status>created</Status>\\n <RPO>180</RPO>\\n <LastRecoverPoint>1637835114</LastRecoverPoint>\\n <Site>production</Site>\\n <PairIds>pair-cn-dsa****,pair-cn-asd****</PairIds>\\n <PairNumber>2</PairNumber>\\n </ReplicaGroups>\\n</DescribeDiskReplicaGroupsResponse>","errorExample":""}]', + 'title' => 'DescribeDiskReplicaGroups', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'To perform a paged query, specify the MaxResults and NextToken parameters.'."\n" + ."\n" + .'During a paged query, when you call the DescribeDiskReplicaGroups operation to retrieve the first page of results, set `MaxResults` to specify the maximum number of entries to return in the call. The return value of `NextToken` is a pagination token, which can be used in the next call to retrieve a new page of results. When you call the DescribeDiskReplicaGroups operation to retrieve a new page of results, set NextToken to the NextToken value returned in the previous call and set MaxResults to specify the maximum number of entries to return in this call.', + ], + 'ModifyDiskReplicaGroup' => [ + 'summary' => 'Modifies the name, description, or recovery point objective (RPO) of a replication pair-consistent group.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '115799', + 'abilityTreeNodes' => [ + 'FEATUREdiskPPYCY9', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ReplicaGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query the IDs of replication pair-consistent groups.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pg-myreplica****', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the replication pair-consistent group. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'myreplicagrouptest', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the replication pair-consistent group. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'This is description.', + ], + ], + [ + 'name' => 'RPO', + 'in' => 'query', + 'schema' => [ + 'description' => 'The RPO of the replication pair-consistent group. Unit: seconds. Valid value: 900.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '900', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'title' => '带宽值,单位kbps。公共云暂不支持。', + 'description' => 'The bandwidth value. Unit: Kbit/s.'."\n" + ."\n" + .'> This parameter is not publicly available.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '-', + ], + ], + [ + 'name' => 'EnableRtc', + 'in' => 'query', + 'schema' => [ + 'title' => '是否开启RTC。', + 'description' => 'Whether to enable replication time control.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.GroupHasPair', + 'errorMessage' => 'The group cannot be deleted due to not empty.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', + 'errorMessage' => 'Operation is not allowed on the primary site.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForStandby', + 'errorMessage' => 'Operation is not allowed on the secondary site.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDiskReplicaGroupResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</ModifyDiskReplicaGroupResponse>","errorExample":""}]', + 'title' => 'ModifyDiskReplicaGroup', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which the replication pair-consistent group feature is available, see [Overview](~~314563~~).'."\n" + .'* The replication pair-consistent group must be in the **Created** (`created`) or **Stopped** (`stopped`) state.'."\n", + ], + 'StartDiskReplicaGroup' => [ + 'summary' => 'Enables the async replication feature for replication pairs that belong to a replication pair-consistent group. The first time the async replication feature is enabled for the replication pairs, the system performs a full synchronization to synchronize all data from disks at the primary site (primary disks) to disks at the secondary site (secondary disks). Then, the system periodically synchronizes incremental data based on the recovery point objective (RPO) of the replication pair-consistent group.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ReplicaGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query the IDs of replication pair-consistent groups.', + 'type' => 'string', + 'required' => true, + 'example' => 'pg-myreplica****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that the value is unique among different requests. The ClientToken value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).', + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'OneShot', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to immediately synchronize data once. Valid values:'."\n" + ."\n" + .'* true: immediately synchronizes data once.'."\n" + .'* false: synchronizes data based on the RPO of the replication pair-consistent group.'."\n" + ."\n" + .'Default value: false.', + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationDenied.StandbyDeviceAttached', + 'errorMessage' => 'The secondary disk is attached.', + ], + ], + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.ManualSyncLimit', + 'errorMessage' => 'One shot start manual syncing too frequently, please try again later.', + ], + [ + 'errorCode' => 'OperationDenied.NoPairInGroup', + 'errorMessage' => 'The operation is not allowed because no pair in the group.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupStatusConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupAZoneConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', + ], + [ + 'errorCode' => 'OperationDenied.PairNotInGroup', + 'errorMessage' => 'The operation is not allowed because pair is not in any group.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<StartDiskReplicaGroupResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</StartDiskReplicaGroupResponse>","errorExample":""}]', + 'title' => 'StartDiskReplicaGroup', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which the replication pair-consistent group feature is available, see [Overview](~~314563~~).'."\n" + .'* If you set the `OneShot` to `false`, the replication pair-consistent group must be in the **Created** (`created` ), **Synchronizing** (`syncing` ), **Normal** (`normal` ), or **Stopped** (`stopped`) state.'."\n" + .'* If you set `OneShot` to `true`, the replication pair-consistent group must be in the **Created** (`created` ), **One-time Syncing** (`manual_syncing` ), or **Stopped** (`stopped`) state. The time interval between two consecutive one-time synchronizations must be longer than one half of the recovery point objective (RPO).'."\n" + .'* After a replication pair-consistent group is activated, the group enters the **Initial Syncing** (`initial_syncing`) state and the system performs the first async replication to replicate all data from the primary disks to secondary disks.'."\n", + ], + 'StopDiskReplicaGroup' => [ + 'summary' => 'Stops a replication pair-consistent group. This operation stops all replication pairs in the replication pair-consistent group.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '115796', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ReplicaGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query the IDs of replication pair-consistent groups.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pg-myreplica****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<StopDiskReplicaGroupResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</StopDiskReplicaGroupResponse>","errorExample":""}]', + 'title' => 'StopDiskReplicaGroup', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which the replication pair-consistent group feature is available, see [Overview](~~314563~~).'."\n" + .'* The replication pair-consistent group that you want to stop must be in the **One-time Syncing** (`manual_syncing`), **Syncing** (`syncing`), **Normal** (`normal`), **Stopping** (`stopping`), **Stop Failed** (`stop_failed`), or **Stopped** (`stopped`) state.'."\n" + .'* When a replication pair-consistent group is stopped, it enters the **Stopped** (`stopped`) state. If a replication pair-consistent group cannot be stopped, the state of the group remains unchanged or changes to **Stop Failed** (`stop_failed`). In this case, try again later.'."\n", + ], + 'FailoverDiskReplicaGroup' => [ + 'summary' => 'Enables the failover feature for replication pairs in a replication pair-consistent group. When the primary disks of specific replication pairs in a replication pair-consistent group fail, you can call this operation to enable the read and write permissions on the secondary disks.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '115797', + 'abilityTreeNodes' => [ + 'FEATUREdiskPPYCY9', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the secondary site of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ReplicaGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'group-myreplica****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The schema of the response.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.NoPairInGroup', + 'errorMessage' => 'The operation is not allowed because no pair in the group.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupStatusConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', + ], + [ + 'errorCode' => 'OperationDenied.PairGroupAZoneConflict', + 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', + ], + [ + 'errorCode' => 'OperationDenied.PairInAnotherGroup', + 'errorMessage' => 'The operation is not allowed because pair is already in another group.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', + 'errorMessage' => 'Operation is not allowed on the primary site.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForStandby', + 'errorMessage' => 'Operation is not allowed on the secondary site.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<FailoverDiskReplicaGroupResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</FailoverDiskReplicaGroupResponse>","errorExample":""}]', + 'title' => 'FailoverDiskReplicaGroup', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which the replication pair-consistent group feature is available, see [Overview](~~314563~~).'."\n" + .'* The replication pair-consistent group must be in the **One-time Syncing** (`manual_syncing`), **Syncing** (`syncing`), **Normal** (`normal`), **Stopping** (`stopping`), **Stop Failed** (`stop_failed`), **Stopped** (`stopped`), **In Failover** (`failovering`), **Failover Failed** (`failover_failed`), or **Failovered** (`failovered`) state.'."\n" + .'* After a failover is performed, the replication pair-consistent group enters the **Failovered** (`failovered`) state.'."\n" + .'* Before you perform a failover, make sure that the first full data synchronization is completed between the primary site and secondary site.'."\n", + ], + 'ReprotectDiskReplicaGroup' => [ + 'summary' => 'Enables the reverse replication feature for replication pairs that belong to a replication pair-consistent group. After reverse replication is enabled, data stored on the original secondary disks is replicated to the original primary disks. When a reverse replication is being performed, the primary and secondary sites of the replication pair-consistent group remain unchanged, but data is replicated from the secondary site to the primary site.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '115794', + 'abilityTreeNodes' => [ + 'FEATUREdiskAQUAFH', + 'FEATUREdiskVW208V', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query the IDs of replication pair-consistent groups.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'ReplicaGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query the IDs of replication pair-consistent groups.', + 'type' => 'string', + 'required' => true, + 'example' => 'pg-myreplica****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).', + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'ReverseReplicate', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the reverse replication sub-feature. Valid values: true and false. Default value: true.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'OperationDenied.NoPairInGroup', + 'errorMessage' => 'The operation is not allowed because no pair in the group.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', + 'errorMessage' => 'Operation is not allowed on the primary site.', + ], + [ + 'errorCode' => 'OperationDenied.OperateNotAllowedForStandby', + 'errorMessage' => 'Operation is not allowed on the secondary site.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<ReprotectDiskReplicaGroupResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</ReprotectDiskReplicaGroupResponse>","errorExample":""}]', + 'title' => 'ReprotectDiskReplicaGroup', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which the replication pair-consistent group feature is available, see [Overview](~~314563~~).'."\n" + .'* The replication pair-consistent group for which you want to enable reverse replication must be in the **Failovered** (`failovered`) state. You can call the `FailoverDiskReplicaPair` operation to enable failover.'."\n" + .'* Before a reverse replication is performed, the primary disks must be detached from its associated Elastic Compute Service (ECS) instance and must be in the Unattached state. You can call the [DetachDisk](~~25516~~) operation to detach the disks.'."\n" + .'* After you enable reverse replication, you must call the `StartDiskReplicaPair` operation again to enable the async replication feature before data can be replicated from the original secondary disks to the original primary disks.'."\n" + .'* You can set the ReverseReplicate parameter to false to cancel the **Failovered** (`failovered`) state and restore the original replication direction.'."\n", + ], + 'DeleteDiskReplicaGroup' => [ + 'summary' => 'Deletes a replication pair-consistent group.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'abilityTreeCode' => '115800', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ReplicaGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the replication pair-consistent group. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query the IDs of replication pair-consistent groups.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pg-myreplica****', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The schema of the response.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.GroupHasPair', + 'errorMessage' => 'The group cannot be deleted due to not empty.', + ], + [ + 'errorCode' => 'OperationDenied.InvalidStatus', + 'errorMessage' => 'The operation is not allowed in current status.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDiskReplicaGroupResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</DeleteDiskReplicaGroupResponse>","errorExample":""}]', + 'title' => 'DeleteDiskReplicaGroup', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* For information about the regions in which the replication pair-consistent group feature is available, see [Overview](~~314563~~).'."\n" + .'* Before you can delete a replication pair-consistent group, make sure that no replication pairs exist in the group.'."\n" + .'* The replication pair-consistent group that you want to delete must be in the **Created** (`created`), **Creation Failed** (`create_failed`), **Stopped** (`stopped`), **Failovered** (`failovered`), **Deleting** (`deleting`), **Deletion Failed** (`delete_failed`), or **Invalid** (`invalid`) state.'."\n", + ], + 'DescribeReplicaGroupDrills' => [ + 'summary' => 'Queries the disaster recovery drills that were performed on the replication pair-consistent group whose secondary disk resides in a specific region.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'abilityTreeCode' => '189140', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID。', + 'description' => 'The region ID of the primary or secondary disk in the async replication pair-consistent group. You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which async replication is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '复制组ID。', + 'description' => 'The ID of the replication pair-consistent group. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query a list of async replication pair-consistent groups, including group IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pg-xxxx', + ], + ], + [ + 'name' => 'DrillId', + 'in' => 'query', + 'schema' => [ + 'title' => '演练ID。', + 'description' => 'The ID of the drill.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pg-drill-xxxx', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken. When you specify NextToken, the PageSize and PageNumber request parameters do not take effect and the TotalCount response parameter is invalid.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAdDWBF2****', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => 'Token方式最大个数。', + 'description' => 'The maximum number of entries to be returned. You can use this parameter together with NextToken.'."\n" + ."\n" + .'Valid values: 1 to 500.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时设置的每页行数。', + 'description' => 'The number of entries per page. Valid values: 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'title' => '分页模式查询时的页数。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '5', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribePairGroupDrillsResponse', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'Drills' => [ + 'description' => 'The information of disaster recovery drills that were performed on the replication pair-consistent group.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DrillId' => [ + 'title' => '演练ID。', + 'description' => 'The ID of the drill.'."\n", + 'type' => 'string', + 'example' => 'pg-drill-xxx', + ], + 'GroupId' => [ + 'title' => '复制组ID。', + 'description' => 'The ID of the replication pair-consistent group.'."\n", + 'type' => 'string', + 'example' => 'pg-xxx', + ], + 'Status' => [ + 'title' => '执行状态。', + 'description' => 'The status of the drill. Valid values:'."\n" + ."\n" + .'* execute_failed'."\n" + .'* executed'."\n" + .'* executing'."\n" + .'* clear_failed'."\n" + .'* clearing'."\n", + 'type' => 'string', + 'enumValueTitles' => [ + 'execute_failed' => 'execute_failed', + 'executed' => 'executed', + 'executing' => 'executing', + 'clear_failed' => 'clear_failed', + 'clearing' => 'clearing', + ], + 'example' => 'executed', + ], + 'PairsInfo' => [ + 'title' => '复制对信息。', + 'description' => 'The information of replication pairs.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PairId' => [ + 'title' => '复制对ID。', + 'description' => 'The ID of the replication pair.'."\n", + 'type' => 'string', + 'example' => 'pair-xxx', + ], + 'DrillDiskId' => [ + 'title' => '演练盘ID。', + 'description' => 'The ID of the drill disk.'."\n", + 'type' => 'string', + 'example' => 'd-xxx', + ], + 'DrillDiskStatus' => [ + 'title' => '演练盘状态。', + 'description' => 'The status of the drill disk. Valid values:'."\n" + ."\n" + .'* created'."\n" + .'* deleted'."\n" + .'* creating'."\n" + .'* deleting'."\n" + ."\n" + .'> This parameter can also display error code details if your drill disk fails to be created or deleted.'."\n", + 'type' => 'string', + 'example' => 'created', + ], + ], + ], + ], + 'StartAt' => [ + 'title' => '演练启动时间。该参数以时间戳的形式提供返回值。单位:秒。', + 'description' => 'The beginning time of the drill. The value of this parameter is a timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1649750977', + ], + 'RecoverPoint' => [ + 'title' => '该演练对应的恢复点。', + 'description' => 'The recovery point of the drill. The value of this parameter is a timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1691114995', + ], + 'StatusMessage' => [ + 'title' => '任务执行失败的错误提示信息。', + 'description' => 'The error message that appears if the drill fails to be executed.'."\n", + 'type' => 'string', + 'example' => 'GROUP_SYNCPOINT_NOT_FOUND', + ], + ], + ], + ], + 'NextToken' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n", + 'type' => 'string', + 'example' => 'AAAAAdDWBF2****'."\n", + ], + 'PageNumber' => [ + 'title' => '分页模式查询时的页数。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'title' => '分页模式查询时的单页记录数量。', + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalCount' => [ + 'title' => '总个数', + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Drills\\": [\\n {\\n \\"DrillId\\": \\"pg-drill-xxx\\",\\n \\"GroupId\\": \\"pg-xxx\\",\\n \\"Status\\": \\"executed\\",\\n \\"PairsInfo\\": [\\n {\\n \\"PairId\\": \\"pair-xxx\\",\\n \\"DrillDiskId\\": \\"d-xxx\\",\\n \\"DrillDiskStatus\\": \\"created\\"\\n }\\n ],\\n \\"StartAt\\": 1649750977,\\n \\"RecoverPoint\\": 1691114995,\\n \\"StatusMessage\\": \\"GROUP_SYNCPOINT_NOT_FOUND\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAdDWBF2****\\\\n\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeReplicaGroupDrillsResponse>\\n <Drills>\\n <DrillId>pg-drill-xxx</DrillId>\\n <GroupId>pg-xxx</GroupId>\\n <Status>executed</Status>\\n <PairsInfo>\\n <PairId>pair-xxx</PairId>\\n <DrillDiskId>d-xxx</DrillDiskId>\\n <DrillDiskStatus>created</DrillDiskStatus>\\n </PairsInfo>\\n <StartAt>1649750977</StartAt>\\n <RecoverPoint>1691114995</RecoverPoint>\\n <StatusMessage>GROUP_SYNCPOINT_NOT_FOUND</StatusMessage>\\n </Drills>\\n <NextToken>AAAAAdDWBF2****\\n</NextToken>\\n <PageNumber>1</PageNumber>\\n <PageSize>10</PageSize>\\n <TotalCount>1</TotalCount>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</DescribeReplicaGroupDrillsResponse>","errorExample":""}]', + 'title' => 'DescribeReplicaGroupDrills', + ], + 'StartReplicaGroupDrill' => [ + 'summary' => 'Starts a disaster recovery drill in a replication pair-consistent group to ensure the continued replication and restores data from the latest recovery point of secondary disks to new disks. This helps test the completeness and correctness of applications that are deployed on the disaster recovery site on a regular basis.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '189135', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID。', + 'description' => 'The ID of the region where the secondary site in the replication pair-consistent group is located. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query the region where the secondary site in the replication pair-consistent group is located.'."\n" + ."\n" + .'> You must enable the disaster recovery drill feature in the region in which the secondary site resides.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '复制组ID。', + 'description' => 'The ID of the replication pair-consistent group ID. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation the most recent list of async replication pair-consistent groups, including group IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pg-xxxx', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'StartPairGroupDrillResponse', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'DrillId' => [ + 'title' => '演练ID。', + 'description' => 'The drill ID.'."\n", + 'type' => 'string', + 'example' => 'pg-drill-xxxx', + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'OperationDenied.RecoverPointNotFound', + 'errorMessage' => 'Recover point is not found.', + ], + [ + 'errorCode' => 'OperationDenied.StartDrillShouldOnDestRegion', + 'errorMessage' => 'Operation should be executed on the secondary region.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DrillId\\": \\"pg-drill-xxxx\\",\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<StartReplicaGroupDrillResponse>\\n <DrillId>pg-drill-xxxx</DrillId>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</StartReplicaGroupDrillResponse>","errorExample":""}]', + 'title' => 'StartReplicaGroupDrill', + 'description' => 'After the disaster recovery drill is complete on secondary disks, a pay-as-you-go drill disk is created in the zone where the secondary disk of each replication pair resides. The latest-recovery-point data is restored to the drill disks to test the completeness and correctness of applications.'."\n", + ], + 'ClearReplicaGroupDrill' => [ + 'summary' => 'Clears the disaster recovery drills that were initiated from the secondary disks of a replication pair-consistent group and deletes the auto-created drill disks.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '189138', + 'abilityTreeNodes' => [ + 'FEATUREdiskVW208V', + 'FEATUREdiskAQUAFH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID。', + 'description' => 'The region ID. You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which async replication is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '复制组ID。', + 'description' => 'The ID of the replication pair-consistent group. You can call the [DescribeDiskReplicaGroups](~~426614~~) operation to query the most recent list of replication pair-consistent groups, including group IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pg-xxxx', + ], + ], + [ + 'name' => 'DrillId', + 'in' => 'query', + 'schema' => [ + 'title' => '演练ID。', + 'description' => 'The ID of the drill. You can call the [DescribeReplicaGroupDrills](~~2584481~~) operation to query disaster recovery drills that were performed on replication pairs in a specific region.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pg-drill-xxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","errorExample":""},{"type":"xml","example":"<ClearReplicaGroupDrillResponse>\\n <RequestId>C123F94F-4E38-19AE-942A-A8D6F44F****</RequestId>\\n</ClearReplicaGroupDrillResponse>","errorExample":""}]', + 'title' => 'ClearReplicaGroupDrill', + ], + 'CreateDedicatedBlockStorageCluster' => [ + 'summary' => 'Creates a dedicated block storage cluster. When you call this operation, you can specify parameters, such as Azone, Capacity, Type, and PeriodUnit, in the request.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '116777', + 'abilityTreeNodes' => [ + 'FEATUREdisk1O4P8E', + ], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '专属块存储集群所在的地域ID。您可以调用DescribeRegions'."\n" + .'查看最新的阿里云地域列表。', + 'description' => 'The ID of the region in which to create the dedicated block storage cluster. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-heyuan', + ], + ], + [ + 'name' => 'Azone', + 'in' => 'query', + 'schema' => [ + 'title' => '专属块存储集群所在的可用区ID。您可以调用DescribeZones'."\n" + .'查看阿里云地域下的可用区。', + 'description' => 'The ID of the zone in which to create the dedicated block storage cluster. You can call the [DescribeZones](~~25610~~) operation to query the most recent zone list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-heyuan-b', + ], + ], + [ + 'name' => 'DbscName', + 'in' => 'query', + 'schema' => [ + 'title' => '专属集群名称', + 'description' => 'The name of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'myDBSCCluster', + ], + ], + [ + 'name' => 'Capacity', + 'in' => 'query', + 'schema' => [ + 'title' => '专属集群容量,单位为GiB,范围为[61440, 2334720],最小递增步长为12288GiB', + 'description' => 'The capacity of the dedicated block storage cluster. Valid values: 61440 to 2334720. Unit: GiB. 2,334,720 GiB is equal to 2,280 TiB. The capacity increases in a minimum increment of 12,288 GiB.'."\n" + ."\n" + .'> If the capacity of a dedicated block storage cluster is less than 576 TiB, the maximum throughput per TiB cannot exceed 52 MB/s. If the capacity of a dedicated block storage cluster is greater than 576 TiB, the maximum throughput per TiB cannot exceed 26 MB/s.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'maximum' => '2334720', + 'minimum' => '61440', + 'example' => '61440', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'title' => '专属块存储集群性能类型。可能值:'."\n" + .'Standard:基础型。该类型的专属块存储集群中可创建ESSD PL0云盘。'."\n" + .'Premium:性能型。该类型的专属块存储集群中可创建ESSD PL1云盘。', + 'description' => 'The type of the dedicated block storage cluster. Valid values:'."\n" + ."\n" + .'* Standard: basic dedicated block storage cluster. Enterprise SSDs (ESSDs) at performance level 0 (PL0 ESSDs) can be created in basic dedicated block storage clusters.'."\n" + .'* Premium: performance dedicated block storage cluster. ESSDs at performance level 1 (PL1 ESSDs) can be created in performance dedicated block storage clusters.'."\n" + ."\n" + .'Default value: Premium.'."\n" + ."\n" + .'For more information about ESSDs, see [ESSDs](~~122389~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'Premium', + 'enum' => [ + 'Standard', + 'Premium', + 'Elastic', + ], + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '专属集群所在的企业资源组ID。', + 'description' => 'The ID of the resource group to which to assign the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmvs*******', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags to add to the dedicated block storage cluster. You can specify up to 20 tags.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N to add to the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'tag-key', + ], + 'Value' => [ + 'description' => 'The value of tag N to add to the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'tag-value', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'Period', + 'in' => 'query', + 'schema' => [ + 'description' => 'The subscription duration of the dedicated block storage cluster. Valid values: 6, 7, 8, 9, 10, 11, 12, 24, and 36.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '12', + ], + ], + [ + 'name' => 'PeriodUnit', + 'in' => 'query', + 'schema' => [ + 'title' => '目前仅支持Month', + 'description' => 'The unit of the subscription duration specified by `Period`. Set the value to Month.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Month', + 'enum' => [ + 'Month', + ], + ], + ], + [ + 'name' => 'DbscId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'This parameter is deprecated.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'required' => false, + 'example' => 'test1233', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '20758A-585D-4A41-A9B2-28DA8F4F****', + ], + 'OrderId' => [ + 'title' => 'Id of the order', + 'description' => 'The order ID.'."\n", + 'type' => 'string', + 'example' => '50155660025****', + ], + 'DbscId' => [ + 'title' => 'Id of the dbsc', + 'description' => 'The ID of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'dbsc-f8z4d3k4nsgg9okb****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'InvalidPayMethod', + 'errorMessage' => 'The specified pay method is not valid.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'InvalidRegionId.NotFound', + 'errorMessage' => 'The specified RegionId does not exist.', + ], + [ + 'errorCode' => 'InvalidResourceId.NotFound', + 'errorMessage' => 'The specified ResourceIds are not found in our records.', + ], + [ + 'errorCode' => 'MissingParameter.ResourceType', + 'errorMessage' => 'The parameter - ResourceType should not be null', + ], + [ + 'errorCode' => 'InvalidResourceGroup.NotFound', + 'errorMessage' => 'The ResourceGroup provided does not exist in our records.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"20758A-585D-4A41-A9B2-28DA8F4F****\\",\\n \\"OrderId\\": \\"50155660025****\\",\\n \\"DbscId\\": \\"dbsc-f8z4d3k4nsgg9okb****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDedicatedBlockStorageClusterResponse>\\n <RequestId>20758A-585D-4A41-A9B2-28DA8F4F****</RequestId>\\n <OrderId>50155660025****</OrderId>\\n <DbscId>dbsc-f8z4d3k4nsgg9okb****</DbscId>\\n</CreateDedicatedBlockStorageClusterResponse>","errorExample":""}]', + 'title' => 'CreateDedicatedBlockStorageCluster', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'* Dedicated block storage clusters are physically isolated from public block storage clusters. The owner of each dedicated block storage cluster has exclusive access to all resources in the cluster.'."\n" + .'* Disks created in a dedicated block storage cluster can be attached only to Elastic Compute Service (ECS) instances that reside in the same zone as the cluster. Before you create a dedicated block storage cluster, decide the regions and zones in which to deploy your cloud resources.'."\n" + .'* Dedicated block storage clusters are classified into basic and performance types. When you create a dedicated block storage cluster, select a cluster type based on your business requirements.'."\n" + .'* You are charged for creating dedicated block storage clusters.'."\n", + ], + 'DescribeDedicatedBlockStorageClusters' => [ + 'summary' => 'Queries dedicated clusters.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '104950', + 'abilityTreeNodes' => [ + 'FEATUREdisk1O4P8E', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The region ID of the dedicated block storage cluster. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-heyuan', + 'title' => '', + ], + ], + [ + 'name' => 'AzoneId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The zone ID of the dedicated block storage cluster. You can call the [DescribeZones](~~25610~~) operation to query the most recent zone list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-heyuan-b', + 'title' => '', + ], + ], + [ + 'name' => 'DedicatedBlockStorageClusterId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The IDs of the dedicated block storage clusters. You can specify the IDs of multiple dedicated block storage clusters in a request.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of dedicated block storage cluster N. You can specify the IDs of multiple dedicated block storage clusters in a single request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'dbsc-f8z4d3k4nsgg9okb****', + 'title' => '', + ], + 'required' => false, + 'maxItems' => 10, + 'title' => '', + ], + ], + [ + 'name' => 'Status', + 'in' => 'formData', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '专属集群状态列表,可同时设置多个状态', + 'description' => 'The states of dedicated block storage clusters. Valid values:'."\n" + ."\n" + .'* Preparing'."\n" + .'* Running'."\n" + .'* Expired'."\n" + .'* Offline'."\n" + ."\n" + .'Multiple states can be specified. Valid values of N: 1, 2, 3, and 4.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The state of the dedicated block storage cluster. Valid values:'."\n" + ."\n" + .'* Preparing'."\n" + .'* Running'."\n" + .'* Expired'."\n" + .'* Offline'."\n" + ."\n" + .'N indicates that multiple states can be specified. Valid values of N: 1, 2, 3, and 4.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Running', + ], + 'required' => false, + 'enumValueTitles' => [ + 'Running' => 'Running', + 'Offline' => 'Offline', + 'Expired' => 'Expired', + 'Preparing' => 'Preparing', + ], + 'maxItems' => 10, + ], + ], + [ + 'name' => 'Category', + 'in' => 'formData', + 'schema' => [ + 'title' => '专属支持创建的云盘类型 (ephemeral: 本地 sata xen, ephemeral_hio: 本地 ssd xen, cloud: 普通云盘, cloud_ssd: 目前公共云没有io5了?, local_ssd: 预配置ssd 本地ssd kvm, cloud_efficiency: 高效云盘, instance_storage_ssd: instance_storage_ssd 容量随规格绑定售卖, spool, local_ssd_pro: 实例存储的IO密集型,设计上瑶池标记为io10,后羿实际为io9, local_hdd_pro: 实例存储吞吐密集型,实例存储不用填数据盘大小范围, cloud_essd: ESSD, cloud_gt: 通用型云盘 集团大促使用, cloud_xssd: 性能型云盘 集团大促使用, cloud_pperf: 专有云环境高级性能云盘, cloud_sperf: 专有云环境标准性能云盘, cloud_auto: auto pl 磁盘size为40GB起卖, cloud_plx: pl-x)', + 'description' => 'The category of disks that can be created in the dedicated block storage cluster.'."\n" + ."\n" + .'Set the value to cloud_essd. Only enhanced SSDs (ESSDs) can be created in dedicated block storage clusters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cloud_essd', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签键值对。n的取值范围为 [1, 20]', + 'description' => 'The tags. Up to 20 tags are supported.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '资源的标签键', + 'description' => 'The tag key of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'title' => '资源的标签值', + 'description' => 'The tag value of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源组ID', + 'description' => 'The ID of the resource group to which the dedicated block storage cluster belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmvs4****', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'The query token. Set the value to the NextToken value that is returned in the last call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAdDWBF2', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => 'Token方式最大个数。', + 'description' => 'The maximum number of entries to return in each request that uses a token to perform a query.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时设置的每页行数。', + 'description' => 'The number of entries per page. Valid values: 1 to 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'title' => '分页模式查询时的页数。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => 'A string generated by the server as an identifier for clients to send requests.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-426655440000', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeDedicatedBlockStorageClustersResponse', + 'description' => 'The response.'."\n", + 'type' => 'object', + 'properties' => [ + 'DedicatedBlockStorageClusters' => [ + 'description' => 'Details about the dedicated block storage clusters.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DedicatedBlockStorageClusterId' => [ + 'description' => 'The ID of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'dbsc-f8z4d3k4nsgg9okb****', + 'title' => '', + ], + 'DedicatedBlockStorageClusterName' => [ + 'description' => 'The name of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'myDBSCCluster', + 'title' => '', + ], + 'Description' => [ + 'description' => 'The description of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'This is description.', + 'title' => '', + ], + 'RegionId' => [ + 'description' => 'The region ID of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'cn-heyuan', + 'title' => '', + ], + 'ZoneId' => [ + 'description' => 'The zone ID of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'cn-heyuan-b', + 'title' => '', + ], + 'Status' => [ + 'title' => 'Unknown: 未知状态, Init: 初始化, Preparing: 待交付, Running: 运行中, Expired: 集群到期, Offline: 下线, Deleted: 删除', + 'description' => 'The state of the dedicated block storage cluster. Valid values:'."\n" + ."\n" + .'* Preparing'."\n" + .'* Running'."\n" + .'* Expired'."\n" + .'* Offline'."\n", + 'type' => 'string', + 'example' => 'Running', + ], + 'Category' => [ + 'description' => 'The category of disks that can be created in the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'cloud_essd', + 'title' => '', + ], + 'Type' => [ + 'description' => 'The type of the dedicated block storage cluster. Valid values:'."\n" + ."\n" + .'* Standard: basic dedicated block storage cluster. ESSDs at performance level 0 (PL0 ESSDs) can be created in basic dedicated block storage clusters.'."\n" + .'* Premium: performance dedicated block storage cluster. ESSDs at performance level 1 (PL1 ESSDs) can be created in performance dedicated block storage clusters.'."\n", + 'type' => 'string', + 'example' => 'Standard', + 'title' => '', + ], + 'PerformanceLevel' => [ + 'title' => 'DEFAULT: DEFAULT, PL0: PL0, PL1: PL1, PL2: PL2, PL3: PL3, NULL: PL null。NULL有两种含义:1.ECS中的DEFAULT存储为NULL,适配ECS 2.真实的NULL', + 'description' => 'The performance level of disks. Valid values:'."\n" + ."\n" + .'* PL0'."\n" + .'* PL1'."\n" + .'* PL2'."\n" + .'* PL3'."\n" + ."\n" + .'> This parameter is valid only when the SupportedCategory value is cloud_essd.'."\n", + 'type' => 'string', + 'example' => 'PL0', + ], + 'SupportedCategory' => [ + 'description' => 'This parameter is not supported.'."\n", + 'type' => 'string', + 'example' => 'cloud_essd', + 'title' => '', + ], + 'CreateTime' => [ + 'description' => 'The time when the dedicated block storage cluster was created. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '1657113211', + 'title' => '', + ], + 'ExpiredTime' => [ + 'description' => 'The time when the dedicated block storage cluster expires. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'string', + 'example' => '1673020800', + 'title' => '', + ], + 'DedicatedBlockStorageClusterCapacity' => [ + 'description' => 'Details about the storage capacity of the dedicated block storage cluster.'."\n", + 'type' => 'object', + 'properties' => [ + 'AvailableCapacity' => [ + 'title' => '当前集群可用的容量,单位为GB', + 'description' => 'The available capacity of the dedicated block storage cluster. Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '61440', + ], + 'TotalCapacity' => [ + 'title' => '当前集群总容量,单位为GB', + 'description' => 'The total capacity of the dedicated block storage cluster. Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '61440', + ], + 'DeliveryCapacity' => [ + 'title' => '待交付容量,单位为GB', + 'description' => 'The capacity to be delivered for the dedicated block storage cluster. Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'UsedCapacity' => [ + 'title' => '已使用容量,单位为GB', + 'description' => 'The used capacity of the dedicated block storage cluster. Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1440', + ], + 'ClusterDeliveryCapacity' => [ + 'title' => '待交付专属集群订单容量,单位为GB', + 'description' => 'The capacity of the dedicated block storage cluster that is to be delivered in orders. Unit: GB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'ClusterAvailableCapacity' => [ + 'title' => '已交付专属集群订单容量,单位为GB', + 'description' => 'The capacity of the dedicated block storage cluster that was delivered in orders. Unit: GB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '61440', + ], + 'AvailableDeviceCapacity' => [ + 'title' => '当前集群允许创盘总容量(已交付订单容量),单位为GB', + 'description' => 'The total capacity of the dedicated block storage cluster that was delivered in disk creation orders. Unit: GB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '61440', + ], + 'TotalDeviceCapacity' => [ + 'title' => '当前集群总创盘容量(已下单订单容量),单位为GB', + 'description' => 'The total capacity of the dedicated block storage cluster that is to be delivered in disk creation orders. Unit: GB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '61440', + ], + 'UsedDeviceCapacity' => [ + 'title' => '实际创盘容量,单位为GB', + 'description' => 'The capacity of the dedicated block storage cluster that was used to create disks. Unit: GB.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '32000', + ], + 'AvailableSpaceCapacity' => [ + 'title' => '开启精简配置后显示', + 'description' => 'This parameter is displayed only if Thin Provision is enabled.'."\n", + 'type' => 'number', + 'format' => 'double', + 'example' => '40000.3', + ], + 'TotalSpaceCapacity' => [ + 'title' => '开启精简配置后显示', + 'description' => 'This parameter is displayed only if Thin Provision is enabled.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '73728', + ], + 'UsedSpaceCapacity' => [ + 'title' => '开启精简配置后显示', + 'description' => 'This parameter is displayed only if Thin Provision is enabled.'."\n", + 'type' => 'number', + 'format' => 'double', + 'example' => '33727.7', + ], + ], + 'title' => '', + ], + 'AliUid' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'example' => '12345601234560***', + ], + 'StorageDomain' => [ + 'description' => 'StorageDomain'."\n", + 'type' => 'string', + 'example' => 'StorageDomain', + ], + 'EnableThinProvision' => [ + 'description' => 'Indicates whether Thin Provision is enabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'SizeOverSoldRatio' => [ + 'description' => 'The capacity oversold ratio.'."\n", + 'type' => 'number', + 'format' => 'double', + 'example' => '1.2', + ], + 'Tags' => [ + 'title' => 'the dbsc tags', + 'description' => 'The tags of the dedicated block storage cluster.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'title' => '资源的标签键', + 'description' => 'The tag key of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'testKey', + ], + 'TagValue' => [ + 'title' => '资源的标签值', + 'description' => 'The tag value of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'testValue', + ], + ], + ], + ], + 'ResourceGroupId' => [ + 'title' => 'the resource group id', + 'description' => 'The ID of the resource group to which the dedicated block storage cluster belongs. You can call the [ListResourceGroups](~~158855~~) operation to obtain the ID of the resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-aekzsoux****', + ], + ], + ], + 'title' => '', + ], + 'NextToken' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'AAAAAdDWBF2', + ], + 'PageNumber' => [ + 'title' => '分页模式查询时的页数。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'title' => '分页模式查询时的单页记录数量。', + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalCount' => [ + 'title' => '总个数', + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidDiskCategory.NotSupported', + 'errorMessage' => 'The specified disk category is not supported.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'InvalidRegionId.NotFound', + 'errorMessage' => 'The specified RegionId does not exist.', + ], + [ + 'errorCode' => 'InvalidResourceId.NotFound', + 'errorMessage' => 'The specified ResourceIds are not found in our records.', + ], + [ + 'errorCode' => 'InvalidResourceType.NotFound', + 'errorMessage' => 'The ResourceType provided does not exist in our records.', + ], + [ + 'errorCode' => 'InvalidZoneId.NotFound', + 'errorMessage' => 'The specified ZoneId does not exist.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DedicatedBlockStorageClusters\\": [\\n {\\n \\"DedicatedBlockStorageClusterId\\": \\"dbsc-f8z4d3k4nsgg9okb****\\",\\n \\"DedicatedBlockStorageClusterName\\": \\"myDBSCCluster\\",\\n \\"Description\\": \\"This is description.\\",\\n \\"RegionId\\": \\"cn-heyuan\\",\\n \\"ZoneId\\": \\"cn-heyuan-b\\",\\n \\"Status\\": \\"Running\\",\\n \\"Category\\": \\"cloud_essd\\",\\n \\"Type\\": \\"Standard\\",\\n \\"PerformanceLevel\\": \\"PL0\\",\\n \\"SupportedCategory\\": \\"cloud_essd\\",\\n \\"CreateTime\\": \\"1657113211\\",\\n \\"ExpiredTime\\": \\"1673020800\\",\\n \\"DedicatedBlockStorageClusterCapacity\\": {\\n \\"AvailableCapacity\\": 61440,\\n \\"TotalCapacity\\": 61440,\\n \\"DeliveryCapacity\\": 0,\\n \\"UsedCapacity\\": 1440,\\n \\"ClusterDeliveryCapacity\\": 0,\\n \\"ClusterAvailableCapacity\\": 61440,\\n \\"AvailableDeviceCapacity\\": 61440,\\n \\"TotalDeviceCapacity\\": 61440,\\n \\"UsedDeviceCapacity\\": 32000,\\n \\"AvailableSpaceCapacity\\": 40000.3,\\n \\"TotalSpaceCapacity\\": 73728,\\n \\"UsedSpaceCapacity\\": 33727.7\\n },\\n \\"AliUid\\": \\"1234560123456****\\",\\n \\"StorageDomain\\": \\"StorageDomain\\",\\n \\"EnableThinProvision\\": true,\\n \\"SizeOverSoldRatio\\": 1.2,\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"testKey\\",\\n \\"TagValue\\": \\"testValue\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-aekzsoux****\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAdDWBF2\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 20,\\n \\"RequestId\\": \\"11B55F58-D3A4-4A9B-9596-342420D0****\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDedicatedBlockStorageClustersResponse>\\n <RequestId>11B55F58-D3A4-4A9B-9596-342420D0****</RequestId>\\n <NextToken>AAAAAdDWBF2</NextToken>\\n <DedicatedBlockStorageClusters>\\n <DedicatedBlockStorageClusterId>dbsc-f8z4d3k4nsgg9okb****</DedicatedBlockStorageClusterId>\\n <DedicatedBlockStorageClusterName>myDBSCCluster</DedicatedBlockStorageClusterName>\\n <Description>This is description.</Description>\\n <RegionId>cn-heyuan</RegionId>\\n <ZoneId>cn-heyuan-b</ZoneId>\\n <Status>Running</Status>\\n <Category>cloud_essd</Category>\\n <Type>Standard</Type>\\n <PerformanceLevel>PL0</PerformanceLevel>\\n <SupportedCategory>cloud_essd</SupportedCategory>\\n <CreateTime>2022-07-07 16:45:45</CreateTime>\\n <ExpiredTime>2023-03-09 00:00:00</ExpiredTime>\\n <DedicatedBlockStorageClusterCapacity>\\n <AvailableCapacity>61440</AvailableCapacity>\\n <TotalCapacity>61440</TotalCapacity>\\n </DedicatedBlockStorageClusterCapacity>\\n </DedicatedBlockStorageClusters>\\n</DescribeDedicatedBlockStorageClustersResponse>","errorExample":""}]', + 'title' => 'DescribeDedicatedBlockStorageClusters', + 'description' => '## [](#)Usage notes'."\n" + ."\n" + .'> The Dedicated Block Storage Cluster feature is available only in the China (Heyuan), Indonesia (Jakarta), and China (Shenzhen) regions.'."\n" + ."\n" + .'* You can specify multiple request parameters to be queried. Specified parameters are evaluated by using the AND operator. Only the specified parameters are included in the filter conditions.'."\n" + .'* We recommend that you use NextToken and MaxResults to perform paged queries. We recommend that you use MaxResults to specify the maximum number of entries to return in each request. The return value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. When you call the DescribeDedicatedBlockStorageClusters operation to retrieve a new page of results, set NextToken to the NextToken value that is returned in the previous call and specify MaxResults to limit the number of entries returned.'."\n", + ], + 'ModifyDedicatedBlockStorageClusterAttribute' => [ + 'summary' => 'Modifies the information of a dedicated elastic block storage cluster.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '138430', + 'abilityTreeNodes' => [ + 'FEATUREdisk1O4P8E', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '专属块存储集群所在的地域ID。您可以调用DescribeRegions'."\n" + .'查看最新的阿里云地域列表。', + 'description' => 'The region ID of the dedicated block storage cluster. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-heyuan', + ], + ], + [ + 'name' => 'DbscId', + 'in' => 'query', + 'schema' => [ + 'title' => '专属集群ID', + 'description' => 'The ID of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'dbsc-cn-od43bf****', + ], + ], + [ + 'name' => 'DbscName', + 'in' => 'query', + 'schema' => [ + 'title' => '修改后的专属集群名称,不为空', + 'description' => 'The new name of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'my-test-dbsc', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'title' => '修改后的专属集群描述信息', + 'description' => 'The new description of dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '客户端幂等token', + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that it is unique among different requests.'."\n" + ."\n" + .'The ClientToken value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure idempotence ](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'InvalidRegionId.NotFound', + 'errorMessage' => 'The specified RegionId does not exist.', + ], + [ + 'errorCode' => 'InvalidResourceId.NotFound', + 'errorMessage' => 'The specified ResourceIds are not found in our records.', + ], + [ + 'errorCode' => 'InvalidResourceType.NotFound', + 'errorMessage' => 'The ResourceType provided does not exist in our records.', + ], + [ + 'errorCode' => 'MissingParameter.ResourceType', + 'errorMessage' => 'The parameter - ResourceType should not be null', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"11B55F58-D3A4-4A9B-9596-342420D0****\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDedicatedBlockStorageClusterAttributeResponse>\\n <RequestId>11B55F58-D3A4-4A9B-9596-342420D0****</RequestId>\\n</ModifyDedicatedBlockStorageClusterAttributeResponse>","errorExample":""}]', + 'title' => 'ModifyDedicatedBlockStorageClusterAttribute', + 'description' => 'You can call this operation to modify the information of a dedicated block storage cluster. The information includes the name and description of the cluster.', + ], + 'DescribeDedicatedBlockStorageClusterDisks' => [ + 'summary' => 'Queries information about cloud disks in a dedicated block storage cluster.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '124946', + 'abilityTreeNodes' => [ + 'FEATUREdisk1O4P8E', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '专属块存储集群所在的地域ID。您可以调用DescribeRegions'."\n" + .'查看最新的阿里云地域列表。', + 'description' => 'The ID of the region where the dedicated block storage cluster resides. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-heyuan', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时每页的最大条目数。最大值为500。'."\n" + ."\n" + .'默认值:10', + 'description' => 'The maximum number of entries to return on each page. Maximum value: 500.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '查询凭证(Token)。取值为上一次调用该接口返回的NextToken参数值,初次调用接口时无需设置该参数。', + 'description' => 'The query token. Set the value to the NextToken value returned in the previous call to the DescribeDedicatedBlockStorageClusterDisks operation. Leave this parameter empty the first time you call this operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAdDWBF2', + ], + ], + [ + 'name' => 'DbscId', + 'in' => 'query', + 'schema' => [ + 'title' => '专属块存储集群ID', + 'description' => 'The ID of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'dbsc-cn-od43bf****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****', + ], + 'NextToken' => [ + 'title' => '本次调用返回的查询凭证值。', + 'description' => 'The query token returned in this call.'."\n", + 'type' => 'string', + 'example' => 'AAAAAdDWBF2', + ], + 'Disks' => [ + 'description' => 'Details about the cloud disks.'."\n", + 'type' => 'object', + 'properties' => [ + 'Disk' => [ + 'title' => '参考ECS DescribeDisks接口的返回结果'."\n" + .'https://help.aliyun.com/document_detail/25514.html', + 'description' => 'Details about the cloud disks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DiskId' => [ + 'description' => 'The ID of the cloud disk.'."\n", + 'type' => 'string', + 'example' => 'd-bp67acfmxazb4p****', + ], + 'DiskName' => [ + 'description' => 'The name of the cloud disk.'."\n", + 'type' => 'string', + 'example' => 'testDiskName', + ], + 'Status' => [ + 'description' => 'The state of the cloud disk. For more information, see [Disk states](~~25689~~). Valid values:'."\n" + ."\n" + .'* In_use'."\n" + .'* Available'."\n" + .'* Attaching'."\n" + .'* Detaching'."\n" + .'* Creating'."\n" + .'* ReIniting'."\n", + 'type' => 'string', + 'example' => 'In_use', + ], + 'Type' => [ + 'description' => 'The type of the disk. Valid values:'."\n" + ."\n" + .'* system: system disk'."\n" + .'* data: data disk'."\n", + 'type' => 'string', + 'example' => 'all', + ], + 'PerformanceLevel' => [ + 'description' => 'The performance level of the enhanced SSD (ESSD). Valid values:'."\n" + ."\n" + .'* PL0: A single ESSD can deliver up to 10,000 random read/write IOPS.'."\n" + .'* PL1: A single ESSD can deliver up to 50,000 random read/write IOPS.'."\n" + .'* PL2: A single ESSD can deliver up to 100,000 random read/write IOPS.'."\n" + .'* PL3: A single ESSD can deliver up to 1,000,000 random read/write IOPS.'."\n", + 'type' => 'string', + 'example' => 'PL0', + ], + 'BdfId' => [ + 'description' => 'This parameter is currently in invitational preview and unavailable for general users.'."\n", + 'type' => 'string', + 'example' => 'null', + ], + 'EnableAutoSnapshot' => [ + 'description' => 'Indicates whether the automatic snapshot policy feature is enabled for the cloud disk.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'StorageSetId' => [ + 'description' => 'The ID of the storage set.'."\n", + 'type' => 'string', + 'example' => 'ss-i-bp1j4i2jdf3owlhe****', + ], + 'StorageSetPartitionNumber' => [ + 'description' => 'The maximum number of partitions in the storage set.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '11', + ], + 'DeleteAutoSnapshot' => [ + 'description' => 'Indicates whether the automatic snapshots of the cloud disk are deleted when the disk is released. Valid values:'."\n" + ."\n" + .'* true: The automatic snapshots of the cloud disk are deleted when the disk is released.'."\n" + .'* false: The automatic snapshots of the cloud disk are retained when the disk is released.'."\n" + ."\n" + .'Snapshots that are created by calling the [CreateSnapshot](~~25524~~) operation or by using the Elastic Compute Service (ECS) console are retained and not affected by this parameter.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'StorageClusterId' => [ + 'description' => 'The ID of the dedicated block storage cluster to which the cloud disk belongs. If your cloud disk belongs to the public block storage cluster, an empty value is returned.'."\n", + 'type' => 'string', + 'example' => 'dbsc-j5e1sf2vaf5he8m2****', + ], + 'Encrypted' => [ + 'description' => 'Indicates whether the cloud disk is encrypted.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'MountInstanceNum' => [ + 'description' => 'The number of instances to which the Shared Block Storage device is attached.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Description' => [ + 'description' => 'The description of the cloud disk.'."\n", + 'type' => 'string', + 'example' => 'testDescription', + ], + 'Device' => [ + 'description' => 'The device name of the cloud disk on its associated instance. Example: /dev/xvdb. Take note of the following items:'."\n" + ."\n" + .'* This parameter has a value only when the `Status` value is `In_use`.'."\n" + .'* This parameter is empty for cloud disks that have the multi-attach feature enabled. You can query the attachment information of the cloud disk based on the `Attachment` values.'."\n" + ."\n" + .'> This parameter will be removed in the future. We recommend that you use other parameters to ensure future compatibility.'."\n", + 'type' => 'string', + 'example' => '/dev/xvdb', + ], + 'Portable' => [ + 'description' => 'Indicates whether the cloud disk is removable.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'ImageId' => [ + 'description' => 'The ID of the image that was used to create the instance. This parameter is empty unless the cloud disk was created from an image. The value of this parameter remains unchanged throughout the lifecycle of the cloud disk.'."\n", + 'type' => 'string', + 'example' => 'm-bp13aqm171qynt3u***', + ], + 'KMSKeyId' => [ + 'description' => 'The ID of the Key Management Service (KMS) key used by the cloud disk.'."\n", + 'type' => 'string', + 'example' => '0e478b7a-4262-4802-b8cb-00d3fb40****', + ], + 'DeleteWithInstance' => [ + 'description' => 'Indicates whether the cloud disk is released when its associated instance is released. Valid values:'."\n" + ."\n" + .'* true: The cloud disk is released when its associated instance is released.'."\n" + .'* false: The cloud disk is retained when its associated instance is released.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'DetachedTime' => [ + 'description' => 'The time when the cloud disk was last detached.'."\n", + 'type' => 'string', + 'example' => '2021-06-07T21:01:22Z', + ], + 'SourceSnapshotId' => [ + 'description' => 'The ID of the snapshot that was used to create the cloud disk.'."\n" + ."\n" + .'This parameter is empty unless the cloud disk was created from a snapshot. The value of this parameter remains unchanged throughout the lifecycle of the cloud disk.'."\n", + 'type' => 'string', + 'example' => 's-bp67acfmxazb4p****', + ], + 'InstanceId' => [ + 'description' => 'The ID of the instance to which the cloud disk is attached. Take note of the following items:'."\n" + ."\n" + .'* This parameter has a value only when the `Status` value is `In_use`.'."\n" + .'* This parameter is empty for cloud disks that have the multi-attach feature enabled. You can query the attachment information of the cloud disk based on the `Attachment` values.'."\n", + 'type' => 'string', + 'example' => 'i-bp67acfmxazb4q****', + ], + 'Size' => [ + 'description' => 'The size of the disk. Unit: GiB.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '60', + ], + 'RegionId' => [ + 'description' => 'The region ID of cloud disk.'."\n", + 'type' => 'string', + 'example' => 'cn-heyuan', + ], + 'ZoneId' => [ + 'description' => 'The zone ID of cloud disk.'."\n", + 'type' => 'string', + 'example' => 'cn-heyuan-i', + ], + 'AttachedTime' => [ + 'description' => 'The time when the cloud disk was last attached. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mmZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2021-06-07T06:08:56Z', + ], + 'Category' => [ + 'description' => 'The category of the disk. A value of cloud_essd indicates that the disk is an ESSD.'."\n", + 'type' => 'string', + 'example' => 'cloud_essd', + ], + 'MultiAttach' => [ + 'description' => 'Indicates whether the multi-attach feature was enabled for the cloud disk.'."\n", + 'type' => 'string', + 'example' => 'Disabled', + ], + 'Tags' => [ + 'description' => 'The tags of the cloud disk.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The tag value of the cloud disk.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + 'TagKey' => [ + 'description' => 'The tag key of the cloud disk.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + ], + ], + ], + 'DiskChargeType' => [ + 'description' => 'The billing method of the cloud disk. Valid values:'."\n" + ."\n" + .'* PrePaid: subscription'."\n" + .'* PostPaid: pay-as-you-go'."\n", + 'type' => 'string', + 'example' => 'PrePaid', + ], + 'IOPS' => [ + 'description' => 'The maximum number of IOPS.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '4000', + ], + 'Throughput' => [ + 'description' => 'The maximum number of BPS.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '350', + ], + 'ProvisionedIops' => [ + 'description' => 'The provisioned read/write IOPS of the ESSD AutoPL disk. '."\n" + .'> This parameter is available only if the DiskCategory parameter is set to cloud_auto. For more information, see [ESSD AutoPL disks](~~368372~~) and [Modify the performance configurations of an ESSD AutoPL disk](~~413275~~).', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '50000', + ], + 'BurstingEnabled' => [ + 'description' => 'Whether the ESSD AutoPL disk is enabled burst IOPS / BPS. This parameter is available only if the DiskCategory parameter is set to cloud_auto. For more information, see [ESSD AutoPL disks](~~368372~~).', + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"11B55F58-D3A4-4A9B-9596-342420D0****\\",\\n \\"NextToken\\": \\"AAAAAdDWBF2\\",\\n \\"Disks\\": {\\n \\"Disk\\": [\\n {\\n \\"DiskId\\": \\"d-bp67acfmxazb4p****\\",\\n \\"DiskName\\": \\"testDiskName\\",\\n \\"Status\\": \\"In_use\\",\\n \\"Type\\": \\"system\\",\\n \\"PerformanceLevel\\": \\"PL0\\",\\n \\"BdfId\\": \\"null\\",\\n \\"EnableAutoSnapshot\\": false,\\n \\"StorageSetId\\": \\"ss-i-bp1j4i2jdf3owlhe****\\",\\n \\"StorageSetPartitionNumber\\": 11,\\n \\"DeleteAutoSnapshot\\": false,\\n \\"StorageClusterId\\": \\"dbsc-j5e1sf2vaf5he8m2****\\",\\n \\"Encrypted\\": false,\\n \\"MountInstanceNum\\": 1,\\n \\"Description\\": \\"testDescription\\",\\n \\"Device\\": \\"/dev/xvdb\\",\\n \\"Portable\\": false,\\n \\"ImageId\\": \\"m-bp13aqm171qynt3u***\\",\\n \\"KMSKeyId\\": \\"0e478b7a-4262-4802-b8cb-00d3fb40****\\",\\n \\"DeleteWithInstance\\": true,\\n \\"DetachedTime\\": \\"2021-06-07T21:01:22Z\\",\\n \\"SourceSnapshotId\\": \\"s-bp67acfmxazb4p****\\",\\n \\"InstanceId\\": \\"i-bp67acfmxazb4q****\\",\\n \\"Size\\": 60,\\n \\"RegionId\\": \\"cn-heyuan\\",\\n \\"ZoneId\\": \\"cn-heyuan-i\\",\\n \\"AttachedTime\\": \\"2021-06-07T06:08:56Z\\",\\n \\"Category\\": \\"cloud_essd\\",\\n \\"MultiAttach\\": \\"Disabled\\",\\n \\"Tags\\": [\\n {\\n \\"TagValue\\": \\"TestValue\\",\\n \\"TagKey\\": \\"TestKey\\"\\n }\\n ],\\n \\"DiskChargeType\\": \\"PrePaid\\",\\n \\"IOPS\\": 4000,\\n \\"Throughput\\": 100,\\n \\"ProvisionedIops\\": 40000,\\n \\"BurstingEnabled\\": false\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeDedicatedBlockStorageClusterDisks', + 'description' => '* You can use one of the following methods to check the responses:'."\n" + ."\n" + .' * Method 1: Use `NextToken` to configure the query token. Set the value to the `NextToken` value that is returned in the last call to the DescribeDisks operation. Then, use `MaxResults` to specify the maximum number of entries to return on each page.'."\n" + ."\n" + .' * Method 2: Use `PageSize` to specify the number of entries to return on each page and then use `PageNumber` to specify the number of the page to return.'."\n" + ."\n" + .' You can use only one of the preceding methods. If a large number of entries are to be returned, we recommend that you use method 1. When `NextToken` is specified, `PageSize` and `PageNumber` do not take effect and `TotalCount` in the response is invalid.'."\n" + ."\n" + .'* A disk that has the multi-attach feature enabled can be attached to multiple instances. You can query the attachment information of the disk based on the `Attachment` values in the response.'."\n" + ."\n" + .'When you call an API operation by using Alibaba Cloud CLI, you must specify request parameter values of different data types in the required formats. For more information, see [Parameter format overview](~~110340~~).', + ], + 'QueryDedicatedBlockStorageClusterInventoryData' => [ + 'summary' => 'Queries the capacity trend data of a dedicated Elastic Block Storage (EBS) cluster within a specific time period, including the available capacity and total capacity.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '149411', + 'abilityTreeNodes' => [ + 'FEATUREdisk1O4P8E', + ], + ], + 'parameters' => [ + [ + 'name' => 'DbscId', + 'in' => 'formData', + 'schema' => [ + 'title' => '专属块存储集群Id', + 'description' => 'The ID of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'dbsc-xxx', + ], + ], + [ + 'name' => 'Period', + 'in' => 'formData', + 'schema' => [ + 'title' => '数据返回点的间隔时间(秒)', + 'description' => 'The time interval (seconds) between data retrieval points.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'enumValueTitles' => [ + 60 => '60', + 3600 => '3600', + 86400 => '86400', + ], + 'example' => '60', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => [ + 'title' => '查询开始秒级时间戳', + 'description' => 'Start timestamp of trend data.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1606303800', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => [ + 'title' => '查询结束秒级时间戳', + 'description' => 'End timestamp of trend data.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1606403800', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The region ID of the dedicated block storage cluster.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shenzhen', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that it is unique among different requests.'."\n" + ."\n" + .'The ClientToken value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How do I ensure idempotence ](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeDbscInventoryDataResponse', + 'description' => 'DescribeDbscInventoryDataResponse', + 'type' => 'object', + 'properties' => [ + 'DbscId' => [ + 'title' => '专属块存储集群Id', + 'description' => 'The ID of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'dbsc-xxx', + ], + 'DbscName' => [ + 'title' => '专属块存储集群名', + 'description' => 'The name of the dedicated block storage cluster.'."\n", + 'type' => 'string', + 'example' => 'myDBSCCluster', + ], + 'DiskCategory' => [ + 'title' => 'IO类型', + 'description' => 'The type of the disk. Valid values:'."\n" + ."\n" + .'* cloud_essd: enhanced SSD (ESSD).', + 'type' => 'string', + 'example' => 'cloud_essd', + ], + 'TotalCount' => [ + 'title' => '查询到的数据总数', + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '60', + ], + 'Data' => [ + 'title' => '云盘的监控数据集合', + 'description' => 'The returned data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the array object.'."\n", + 'type' => 'object', + 'properties' => [ + 'MonitorItems' => [ + 'description' => 'The returned metrics.', + 'type' => 'object', + 'properties' => [ + 'AvailableSize' => [ + 'description' => 'Available capacity size of the dedicated block storage cluster.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '61360', + ], + 'TotalSize' => [ + 'description' => 'Total capacity size of the dedicated block storage cluster.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '61440', + ], + ], + ], + 'Timestamp' => [ + 'title' => '查询监控信息的时间戳', + 'description' => 'The timestamp when the data is collected.', + 'type' => 'string', + 'example' => '1606403800', + ], + 'ResourceId' => [ + 'title' => '资源Id', + 'description' => 'The ID list of the resource.', + 'type' => 'string', + 'example' => 'dbsc-xxx', + ], + ], + ], + ], + 'RequestId' => [ + 'title' => '请求ID', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'F1A4258A-0C8C-5329-B495-BC5AD7AD****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidTime.Malformed', + 'errorMessage' => 'The specified parameter StartTime or EndTime is not valid.', + ], + [ + 'errorCode' => 'InvalidParameter.EndTime', + 'errorMessage' => 'The specified parameter EndTime is earlier than StartTime.', + ], + [ + 'errorCode' => 'InvalidPeriod.ValueNotSupported', + 'errorMessage' => 'The specified parameter Period is not valid', + ], + [ + 'errorCode' => 'InvalidParameter.TooManyDataQueried', + 'errorMessage' => 'Too many data queried.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DbscId\\": \\"dbsc-xxx\\",\\n \\"DbscName\\": \\"myDBSCCluster\\",\\n \\"DiskCategory\\": \\"cloud_essd\\",\\n \\"TotalCount\\": 60,\\n \\"Data\\": [\\n {\\n \\"MonitorItems\\": {\\n \\"AvailableSize\\": 61360,\\n \\"TotalSize\\": 61440\\n },\\n \\"Timestamp\\": \\"1606403800\\",\\n \\"ResourceId\\": \\"dbsc-xxx\\"\\n }\\n ],\\n \\"RequestId\\": \\"F1A4258A-0C8C-5329-B495-BC5AD7AD****\\"\\n}","type":"json"}]', + 'title' => 'QueryDedicatedBlockStorageClusterInventoryData', + 'description' => 'Period is the time interval between data retrieval points. When set to 60 (minute interval), a maximum of 1440 data points can be returned; when set to 3600 (hour interval), a maximum of 744 data points can be returned; and when set to 86400 (day interval), a maximum of 366 data points can be returned.', + ], + 'CreateEnterpriseSnapshotPolicy' => [ + 'summary' => 'Create an enterprise-level snapshot policy', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '159104', + 'abilityTreeNodes' => [ + 'FEATUREdisk493RYF', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID', + 'description' => 'The region ID . You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which snapshot policy is supported.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'title' => '名称', + 'description' => 'The name of the policy.', + 'type' => 'string', + 'required' => true, + 'example' => 'xx', + ], + ], + [ + 'name' => 'TargetType', + 'in' => 'query', + 'schema' => [ + 'title' => '类型', + 'description' => 'Binding target type, valid value:'."\n" + ."\n" + .'- DISK', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => [ + 'DISK' => 'DISK', + ], + 'example' => 'DISK', + ], + ], + [ + 'name' => 'State', + 'in' => 'query', + 'schema' => [ + 'title' => '状态', + 'description' => 'The status of the policy. Valid values:'."\n" + ."\n" + .'- ENABLED: Enable snapshot policy execution.'."\n" + ."\n" + .'- DISABLED: Disable snapshot policy execution.', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'DISABLED' => 'DISABLED', + 'ENABLED' => 'ENABLED', + ], + 'example' => 'ENABLED', + ], + ], + [ + 'name' => 'Desc', + 'in' => 'query', + 'schema' => [ + 'title' => '描述信息', + 'description' => 'The description of the policy.', + 'type' => 'string', + 'required' => false, + 'example' => 'xxx', + ], + ], + [ + 'name' => 'Schedule', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '调度规则', + 'description' => 'The rule for scheduling.', + 'type' => 'object', + 'properties' => [ + 'CronExpression' => [ + 'title' => 'cron tab 表达式', + 'description' => 'The time when the policy will to be scheduled. Valid values: Set the parameter in a cron expression.'."\n" + ."\n" + .'For example, you can use 0 0 4 1/1 * ? to specify 04:00:00 (UTC+8) on the first day of each month.', + 'type' => 'string', + 'required' => true, + 'example' => '0 0 */24 * * *', + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'RetainRule', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '保留规则', + 'description' => 'The snapshot retention rule.', + 'type' => 'object', + 'properties' => [ + 'Number' => [ + 'title' => '保留个数', + 'description' => 'Maximum number of retained snapshots.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + 'TimeInterval' => [ + 'title' => '保留时间值', + 'description' => 'The time interval , valid value greater than 1.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '14', + ], + 'TimeUnit' => [ + 'title' => '保留时间单位', + 'description' => 'The unit of time, valid values:'."\n" + ."\n" + .'- DAYS'."\n" + ."\n" + .'- WEEKS', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'WEEKS' => 'WEEKS', + 'DAYS' => 'DAYS', + ], + 'example' => 'DAYS', + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'StorageRule', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '策略存储规则', + 'description' => 'Advanced snapshot features.', + 'type' => 'object', + 'properties' => [ + 'EnableImmediateAccess' => [ + 'title' => '是否启动快照极速可用', + 'description' => 'Whether to enable the rapid availability of snapshots. The range of values:'."\n" + ."\n" + .'- true'."\n" + ."\n" + .'- false', + 'type' => 'boolean', + 'required' => false, + 'enumValueTitles' => [ + 'true' => 'true', + 'false' => 'false', + ], + 'example' => 'false', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'CrossRegionCopyInfo', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '快照复制信息', + 'description' => 'Snapshot replication destination information.', + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'title' => '是否启用跨地域复制', + 'description' => 'Whether cross-region replication is enabled. The range of values:'."\n" + ."\n" + .'- true'."\n" + ."\n" + .'- false', + 'type' => 'boolean', + 'required' => false, + 'enumValueTitles' => [ + 'true' => 'true', + 'false' => 'false', + ], + 'example' => 'false', + ], + 'Regions' => [ + 'title' => '目的地域信息', + 'description' => 'The list of destination regions.', + 'type' => 'array', + 'items' => [ + 'description' => 'Destination region.', + 'type' => 'object', + 'properties' => [ + 'RegionId' => [ + 'title' => '快照复制目的地', + 'description' => 'The region ID of the destination. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + 'RetainDays' => [ + 'title' => '目的地快照保留天数', + 'description' => 'Number of days to retain the destination snapshot. The range of values is greater than 1.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '7', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签键值对。n的取值范围为 [1, 20]', + 'description' => 'The list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '资源的标签键', + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'tag-key', + ], + 'Value' => [ + 'title' => '资源的标签值', + 'description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be 0 to 128 characters in length, and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key must have a unique tag value. You can specify at most 20 tag values in each call.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'tag-value', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源组ID', + 'description' => 'The ID of the resource group to which to assign the snapshot policy.', + 'type' => 'string', + 'required' => false, + 'example' => 'xxx', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotency of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'SpecialRetainRules', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => 'The special snapshot retention rules.', + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'title' => '是否启用特殊保留时间', + 'description' => 'Indicates whether the special retention is enabled.'."\n" + ."\n" + .'* true: enable'."\n" + .'* false: disable', + 'type' => 'boolean', + 'required' => false, + 'enumValueTitles' => [ + 'true' => 'true', + 'false' => 'false', + ], + 'example' => 'true', + ], + 'Rules' => [ + 'title' => '特殊保留规则', + 'description' => 'The special retention rules.', + 'type' => 'array', + 'items' => [ + 'description' => 'The special retention rule.', + 'type' => 'object', + 'properties' => [ + 'SpecialPeriodUnit' => [ + 'title' => '特殊周期单位', + 'description' => 'The periodic unit for specially retained snapshots. If configured to WEEKS, it provides special retention for the first snapshot of each week. The retention period is determined by TimeUnit and TimeInterval. The range of values are:'."\n" + .'- WEEKS'."\n" + .'- MONTHS'."\n" + .'- YEARS', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'MONTHS' => 'MONTHS', + 'YEARS' => 'YEARS', + 'WEEKS' => 'WEEKS', + ], + 'example' => 'WEEKS', + ], + 'TimeInterval' => [ + 'title' => '保留时间值', + 'description' => 'Retention Time Value. The range of values is greater than 1.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '14', + ], + 'TimeUnit' => [ + 'title' => '保留时间单位', + 'description' => 'Retention time unit for special snapshots. The range of values:'."\n" + ."\n" + .'- DAYS'."\n" + ."\n" + .'- WEEKS', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'WEEKS' => 'WEEKS', + 'DAYS' => 'DAYS', + ], + 'example' => 'WEEKS', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'CreateSnapshotPolicyResponse', + 'description' => 'Response', + 'type' => 'object', + 'properties' => [ + 'PolicyId' => [ + 'title' => '策略ID', + 'description' => 'The id of a policy.', + 'type' => 'string', + 'example' => 'esp-xxx', + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7A8959DA-1E04-5724-8288-58334031454E', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PolicyId\\": \\"esp-xxx\\",\\n \\"RequestId\\": \\"F13483A9-17E2-5085-9B2E-2155B0487FF7\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateEnterpriseSnapshotPolicyResponse>\\n <PolicyId>esp-xxx</PolicyId>\\n <RequestId>xxx</RequestId>\\n</CreateEnterpriseSnapshotPolicyResponse>","errorExample":""}]', + 'title' => 'CreateEnterpriseSnapshotPolicy', + ], + 'DescribeEnterpriseSnapshotPolicy' => [ + 'summary' => 'Queries the information about enterprise-level snapshot policies. When you call this operation, you can specify parameters, such as PolicyIds, ResourceGroupId, and Tag, in the request.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'abilityTreeCode' => '159098', + 'abilityTreeNodes' => [ + 'FEATUREdiskHAF1DK', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID', + 'description' => 'The region ID. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '策略ID列表', + 'description' => 'The IDs of enterprise-level snapshot policies.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'esp-xxx', + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'DiskIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '磁盘ID列表', + 'description' => 'The IDs of disks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the disk.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["d-bp67acfmxazb4p****","d-bp67acfmxazs5t****"]', + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源组ID', + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'xxx', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken. If you specify NextToken, the PageSize and PageNumber request parameters do not take effect, and the TotalCount response parameter is invalid.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'xxx', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => 'Token方式最大个数。', + 'description' => 'The maximum number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '100', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时设置的每页行数。', + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'title' => '分页模式查询时的页数。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '资源标签键。N的取值范围为1~20。', + 'description' => 'The tags of the enterprise-level snapshot policies. Valid values of N: 1 to 20.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag of the policy.', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '资源的标签键。N的取值范围为 [1, 20]。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以aliyun和acs:开头,不能包含http://或者https://。', + 'description' => 'The key of tag N of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'tag-key', + ], + 'Value' => [ + 'title' => '资源的标签值。n 的取值范围为 [1, 20]。一旦传入该值,可以为空字符串。最多支持128个字符,不能以acs:开头,不能包含http://或者https://。', + 'description' => 'The value of tag N of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'tag-value', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeSnapshotPolicyResponse', + 'description' => 'The response.'."\n", + 'type' => 'object', + 'properties' => [ + 'Policies' => [ + 'title' => '策略列表', + 'description' => 'The returned snapshot policies.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Details about the snapshot policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'Name' => [ + 'title' => '快照策略名称', + 'description' => 'The name of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'xxx', + ], + 'PolicyId' => [ + 'title' => '快照策略ID', + 'description' => 'The ID of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'esp-xxx', + ], + 'TargetType' => [ + 'title' => '快照策略类型', + 'description' => 'The type of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'DISK', + ], + 'State' => [ + 'title' => '快照策略状态', + 'description' => 'The status of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'DISABLED', + ], + 'ManagedForEcs' => [ + 'title' => '快照托管状态', + 'description' => 'Indicates whether snapshots are managed.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'Desc' => [ + 'title' => '快照策略描述信息', + 'description' => 'The description of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'xxx', + ], + 'Schedule' => [ + 'title' => '快照策略调度规则', + 'description' => 'The scheduling rule of the enterprise-level snapshot policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'CronExpression' => [ + 'title' => 'cron tab 表达式', + 'description' => 'The cron expression of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'example' => '1 1 1 */1 * ?', + ], + ], + ], + 'RetainRule' => [ + 'title' => '快照策略保留规则', + 'description' => 'The retention rule of the enterprise-level snapshot policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'Number' => [ + 'title' => '保留个数', + 'description' => 'The maximum number of snapshots that can be retained.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TimeInterval' => [ + 'title' => '保留时间值', + 'description' => 'The value of the retention period of snapshots.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '14', + ], + 'TimeUnit' => [ + 'title' => '保留时间单位', + 'description' => 'The unit of the retention period of snapshots.'."\n", + 'type' => 'string', + 'example' => 'DAYS', + ], + ], + ], + 'StorageRule' => [ + 'title' => '快照策略存储规则', + 'description' => 'The storage rule of snapshots in the enterprise-level snapshot policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'EnableImmediateAccess' => [ + 'title' => '是否启动快照极速可用', + 'description' => 'Indicates whether the instant access feature is enabled.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + ], + ], + 'CrossRegionCopyInfo' => [ + 'title' => '快照快照复制信息', + 'description' => 'The replication rule of snapshots in the enterprise-level snapshot policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'title' => '是否启用跨地域复制', + 'description' => 'Indicates whether the cross-region replication feature is enabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Regions' => [ + 'title' => '目的地域信息', + 'description' => 'The destination regions that store snapshot copies.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Destination region information.', + 'type' => 'object', + 'properties' => [ + 'RegionId' => [ + 'title' => '快照复制目的地', + 'description' => 'The ID of the destination region.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'RetainDays' => [ + 'title' => '目的地快照保留天数', + 'description' => 'The retention period of snapshot copies in the destination region. Unit: day.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '7', + ], + ], + ], + ], + ], + ], + 'CreateTime' => [ + 'title' => '创建时间', + 'description' => 'The time when the enterprise-level snapshot policy was created.'."\n", + 'type' => 'string', + 'example' => '2023-06-24T06:03:35Z', + ], + 'TargetCount' => [ + 'title' => '已经绑定的目标个数', + 'description' => 'The number of objects that are associated with the enterprise-level snapshot policy.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'Tags' => [ + 'title' => 'the pair tags', + 'description' => 'the pair tags'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'title' => '资源的标签键', + 'description' => 'The key of the tag of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'key', + ], + 'TagValue' => [ + 'title' => '资源的标签值', + 'description' => 'The value of the tag of the enterprise-level snapshot policy.'."\n", + 'type' => 'string', + 'example' => 'value', + ], + ], + 'description' => 'The tag.', + ], + ], + 'ResourceGroupId' => [ + 'title' => 'the resource group', + 'description' => 'the resource group'."\n", + 'type' => 'string', + 'example' => 'rg-xxx', + ], + 'SpecialRetainRules' => [ + 'title' => '快照策略特殊保留规则', + 'description' => 'The special retention rules of the enterprise-level snapshot policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'title' => '是否启用特殊保留时间', + 'description' => 'Indicates whether the special retention period is enabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Rules' => [ + 'title' => '特殊保留规则', + 'description' => 'The special retention rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The special retention rule.', + 'type' => 'object', + 'properties' => [ + 'SpecialPeriodUnit' => [ + 'title' => '特殊周期单位', + 'description' => 'The unit of the special retention period.'."\n", + 'type' => 'string', + 'example' => 'WEEKS', + ], + 'TimeInterval' => [ + 'title' => '保留时间值', + 'description' => 'The value of the retention period.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TimeUnit' => [ + 'title' => '保留时间单位', + 'description' => 'The unit of the retention period.'."\n", + 'type' => 'string', + 'example' => 'WEEKS', + ], + ], + ], + ], + ], + ], + 'DiskIds' => [ + 'title' => '已绑定的磁盘列表', + 'description' => 'The disks that are associated with the snapshot policy.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the disk.'."\n", + 'type' => 'string', + 'example' => '["d-xxx"]', + ], + ], + ], + ], + ], + 'PageNumber' => [ + 'title' => '分页模式查询时的页数。', + 'description' => 'The page number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'title' => '分页模式查询时的单页记录数量。', + 'description' => 'The number of entries per page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalCount' => [ + 'title' => '总个数', + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'title' => '请求ID。无论调用接口成功与否,我们都会返回请求 ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '5CA35A83-8D8A-5B67-BAA0-2E124F194DA4', + ], + 'NextToken' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n", + 'type' => 'string', + 'example' => 'AAAAAdDWBF2', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Policies\\": [\\n {\\n \\"Name\\": \\"xxx\\",\\n \\"PolicyId\\": \\"esp-xxx\\",\\n \\"TargetType\\": \\"DISK\\",\\n \\"State\\": \\"DISABLED\\",\\n \\"ManagedForEcs\\": false,\\n \\"Desc\\": \\"xxx\\",\\n \\"Schedule\\": {\\n \\"CronExpression\\": \\"1 1 1 */1 * ?\\"\\n },\\n \\"RetainRule\\": {\\n \\"Number\\": 10,\\n \\"TimeInterval\\": 14,\\n \\"TimeUnit\\": \\"DAYS\\"\\n },\\n \\"StorageRule\\": {\\n \\"EnableImmediateAccess\\": false\\n },\\n \\"CrossRegionCopyInfo\\": {\\n \\"Enabled\\": true,\\n \\"Regions\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RetainDays\\": 7\\n }\\n ]\\n },\\n \\"CreateTime\\": \\"2023-06-24T06:03:35Z\\",\\n \\"TargetCount\\": 10,\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"key\\",\\n \\"TagValue\\": \\"value\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-xxx\\",\\n \\"SpecialRetainRules\\": {\\n \\"Enabled\\": true,\\n \\"Rules\\": [\\n {\\n \\"SpecialPeriodUnit\\": \\"WEEKS\\",\\n \\"TimeInterval\\": 1,\\n \\"TimeUnit\\": \\"WEEKS\\"\\n }\\n ]\\n },\\n \\"DiskIds\\": [\\n \\"\\\\\\"d-bp67acfmxazb4p****\\\\\\"\\\\n\\"\\n ]\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"549BB71F-6778-53CE-AA73-E94ACE802AB4\\",\\n \\"NextToken\\": \\"AAAAAdDWBF2****\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeEnterpriseSnapshotPolicyResponse>\\n <Policies>\\n <Schedule/>\\n <RetainRule/>\\n <StorageRule/>\\n <CrossRegionCopyInfo>\\n <Regions/>\\n </CrossRegionCopyInfo>\\n <Tags/>\\n </Policies>\\n</DescribeEnterpriseSnapshotPolicyResponse>","errorExample":""}]', + 'title' => 'DescribeEnterpriseSnapshotPolicy', + ], + 'UpdateEnterpriseSnapshotPolicy' => [ + 'summary' => 'Search for a enterprise-level snapshot policy.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '159103', + 'abilityTreeNodes' => [ + 'FEATUREdisk1W6OYH', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID', + 'description' => 'The region ID . You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which snapshot policy is supported.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'title' => '策略ID', + 'description' => 'The id of the policy.', + 'type' => 'string', + 'required' => true, + 'example' => 'esp-xxx', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'title' => '名称', + 'description' => 'The name of the policy.', + 'type' => 'string', + 'required' => false, + 'example' => 'xxx', + ], + ], + [ + 'name' => 'State', + 'in' => 'query', + 'schema' => [ + 'title' => '状态', + 'description' => 'The status of the policy. Valid values:'."\n" + ."\n" + .'* **ENABLED**: Enable snapshot policy execution.'."\n" + .'* **DISABLED**: Disable snapshot policy execution.', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'DISABLED' => 'DISABLED', + 'ENABLED' => 'ENABLED', + ], + 'example' => 'ENABLED', + ], + ], + [ + 'name' => 'Desc', + 'in' => 'query', + 'schema' => [ + 'title' => '描述', + 'description' => 'The description of the policy.', + 'type' => 'string', + 'required' => false, + 'example' => 'xxx', + ], + ], + [ + 'name' => 'Schedule', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '调度规则', + 'description' => 'The rule for scheduling.', + 'type' => 'object', + 'properties' => [ + 'CronExpression' => [ + 'title' => 'cron tab 表达式', + 'description' => 'The time when the policy will to be scheduled. Valid values: Set the parameter in a cron expression.'."\n" + ."\n" + .'For example, you can use `0 0 4 1/1 * ?` to specify 04:00:00 (UTC+8) on the first day of each month.', + 'type' => 'string', + 'required' => true, + 'example' => '0 0 */24 * * *', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'RetainRule', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '保留规则', + 'description' => 'Snapshot retention rule.', + 'type' => 'object', + 'properties' => [ + 'Number' => [ + 'title' => '保留个数', + 'description' => 'Maximum number of retained snapshots.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + 'TimeInterval' => [ + 'title' => '保留时间值', + 'description' => 'The time interval , valid value greater than 1.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '14', + ], + 'TimeUnit' => [ + 'title' => '保留时间单位', + 'description' => 'The unit of time, valid values:'."\n" + ."\n" + .'- DAYS'."\n" + .'- WEEKS', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'WEEKS' => 'WEEKS', + 'DAYS' => 'DAYS', + ], + 'example' => 'DAYS', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'SpecialRetainRules', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '特殊保留规则', + 'description' => 'The special snapshot retention rules.', + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'title' => '是否启用特殊保留时间', + 'description' => 'Indicates whether the special retention is enabled.'."\n" + ."\n" + .'* true: enable'."\n" + .'* false: disable', + 'type' => 'boolean', + 'required' => false, + 'enumValueTitles' => [ + 'true' => 'true', + 'false' => 'false', + ], + 'example' => 'false', + ], + 'Rules' => [ + 'title' => '特殊保留规则', + 'description' => 'The special retention rules.', + 'type' => 'array', + 'items' => [ + 'description' => 'The special retention rule.', + 'type' => 'object', + 'properties' => [ + 'SpecialPeriodUnit' => [ + 'title' => '特殊周期单位', + 'description' => 'The periodic unit for specially retained snapshots. If configured to WEEKS, it provides special retention for the first snapshot of each week. The retention period is determined by TimeUnit and TimeInterval. The range of values are:'."\n" + .'- WEEKS'."\n" + .'- MONTHS'."\n" + .'- YEARS"', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'MONTHS' => 'MONTHS', + 'YEARS' => 'YEARS', + 'WEEKS' => 'WEEKS', + ], + 'example' => 'WEEKS', + ], + 'TimeInterval' => [ + 'title' => '保留时间值', + 'description' => 'Retention Time Value. The range of values is greater than 1.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '30', + ], + 'TimeUnit' => [ + 'title' => '保留时间单位', + 'description' => 'Retention time unit for special snapshots. The range of values:'."\n" + ."\n" + .'- DAYS'."\n" + ."\n" + .'- WEEKS', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'WEEKS' => 'WEEKS', + 'DAYS' => 'DAYS', + ], + 'example' => 'WEEKS', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'CrossRegionCopyInfo', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '快照复制目的信息', + 'description' => 'Snapshot replication destination information.', + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'title' => '是否启用跨地域复制', + 'description' => 'Whether cross-region replication is enabled. The range of values:'."\n" + ."\n" + .'- true'."\n" + ."\n" + .'- false', + 'type' => 'boolean', + 'required' => false, + 'enumValueTitles' => [ + 'true' => 'true', + 'false' => 'false', + ], + 'example' => 'false', + ], + 'Regions' => [ + 'title' => '目的地域信息', + 'description' => 'Destination region information.', + 'type' => 'array', + 'items' => [ + 'description' => 'Destination region information.', + 'type' => 'object', + 'properties' => [ + 'RegionId' => [ + 'title' => '快照复制目的地', + 'description' => 'The region ID. You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which async replication is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + 'RetainDays' => [ + 'title' => '目的地快照保留天数', + 'description' => 'Number of days to retain the destination snapshot. The range of values is greater than 1.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '7', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'StorageRule', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => 'Advanced snapshot features.', + 'type' => 'object', + 'properties' => [ + 'EnableImmediateAccess' => [ + 'title' => '是否启动快照极速可用', + 'description' => 'Whether to enable the rapid availability of snapshots. The range of values:'."\n" + ."\n" + .'- true'."\n" + ."\n" + .'- false', + 'type' => 'boolean', + 'required' => false, + 'enumValueTitles' => [ + 'true' => 'true', + 'false' => 'false', + ], + 'example' => 'false', + ], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Response', + 'description' => 'Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BA903E56-48CE-5B81-9611-ED7962EED3DF', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"FED145A8-7D5F-5C60-B054-4EB2899A5996\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateEnterpriseSnapshotPolicyResponse>\\n <RequestId>xxx</RequestId>\\n</UpdateEnterpriseSnapshotPolicyResponse>","errorExample":""}]', + 'title' => 'UpdateEnterpriseSnapshotPolicy', + ], + 'BindEnterpriseSnapshotPolicy' => [ + 'summary' => 'Bind disks into a enterprise-level snapshot policy.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '159099', + 'abilityTreeNodes' => [ + 'FEATUREdiskTL976Y', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID', + 'description' => 'The region ID . You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which snapshot policy is supported.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'title' => '快照策略ID', + 'description' => 'The id of the policy.', + 'type' => 'string', + 'required' => true, + 'example' => 'esp-xxx', + ], + ], + [ + 'name' => 'DiskTargets', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => 'the disk targets', + 'description' => 'The list of disks.', + 'type' => 'array', + 'items' => [ + 'description' => 'The id of a disk.', + 'type' => 'string', + 'required' => false, + 'example' => 'd-xxx', + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Response', + 'description' => 'Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'EF4CA176-3358-5B74-B317-B1908B4B1F7D', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D763F3A9-EB16-5E85-BFD5-AA9E07D18CB9\\"\\n}","errorExample":""},{"type":"xml","example":"<BindEnterpriseSnapshotPolicyResponse>\\n <RequestId>xxx</RequestId>\\n</BindEnterpriseSnapshotPolicyResponse>","errorExample":""}]', + 'title' => 'BindEnterpriseSnapshotPolicy', + ], + 'UnbindEnterpriseSnapshotPolicy' => [ + 'summary' => 'Unbind disks from a enterprise-level snapshot policy.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '159100', + 'abilityTreeNodes' => [ + 'FEATUREdiskAAH44P', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID', + 'description' => 'The region ID . You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which snapshot policy is supported.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'title' => 'the id of the snapshot policy', + 'description' => 'The id of the policy.', + 'type' => 'string', + 'required' => true, + 'example' => 'esp-xxs', + ], + ], + [ + 'name' => 'DiskTargets', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => 'the disk targets', + 'description' => 'The list of disks.', + 'type' => 'array', + 'items' => [ + 'description' => 'The id of a disk.', + 'type' => 'string', + 'required' => false, + 'example' => 'd-xxx', + ], + 'required' => false, + 'maxItems' => 10, + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotency of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Response', + 'description' => 'Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '061DE1AB-08BA-5ACD-A03A-440117C6939A', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"061DE1AB-08BA-5ACD-A03A-440117C6939A\\"\\n}","errorExample":""},{"type":"xml","example":"<UnbindEnterpriseSnapshotPolicyResponse>\\n <RequestId>xxx</RequestId>\\n</UnbindEnterpriseSnapshotPolicyResponse>","errorExample":""}]', + 'title' => 'UnbindEnterpriseSnapshotPolicy', + ], + 'DeleteEnterpriseSnapshotPolicy' => [ + 'summary' => 'Delete a enterprise-level snapshot policy.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'abilityTreeCode' => '159101', + 'abilityTreeNodes' => [ + 'FEATUREdiskAAH44P', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域ID', + 'description' => 'The region ID . You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions in which snapshot policy is supported.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => [ + 'title' => 'the id of the snapshot policy', + 'description' => 'The id of the policy.', + 'type' => 'string', + 'required' => true, + 'example' => 'esp-xxx', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).', + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Response', + 'description' => 'Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'B9F716DF-FAFD-50FD-B962-BCE0C837639A', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"xxx\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteEnterpriseSnapshotPolicyResponse>\\n <RequestId>xxx</RequestId>\\n</DeleteEnterpriseSnapshotPolicyResponse>","errorExample":""}]', + 'title' => 'DeleteEnterpriseSnapshotPolicy', + ], + 'ApplyLensService' => [ + 'summary' => 'Cancels Elastic Block Storage data insight (CloudLens for EBS).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '138241', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + 'FEATUREdiskLP80G7', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<ApplyLensServiceResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n</ApplyLensServiceResponse>","errorExample":""}]', + 'title' => 'ApplyLensService', + 'description' => '## Usage notes'."\n" + ."\n" + .'CloudLens for EBS is in invitational preview in the China (Hangzhou), China (Shanghai), China (Zhangjiakou), China (Shenzhen), and China (Hong Kong) regions. To use the feature, [submit a ticket](https://workorder-intl.console.aliyun.com/#/ticket/createIndex).'."\n", + ], + 'DescribeLensServiceStatus' => [ + 'summary' => 'Queries the status of CloudLens for EBS.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '138260', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + 'FEATUREdiskLP80G7', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + 'Status' => [ + 'description' => 'The state of CloudLens for EBS. Valid values:'."\n" + ."\n" + .'* Applying'."\n" + .'* UnAvailable'."\n" + .'* Available'."\n", + 'type' => 'string', + 'example' => 'Available', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"Status\\": \\"Available\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeLensServiceStatusResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n <Status>Available</Status>\\n</DescribeLensServiceStatusResponse>","errorExample":""}]', + 'title' => 'DescribeLensServiceStatus', + 'description' => '## Usage notes'."\n" + ."\n" + .'CloudLens for EBS is in invitational preview in the China (Hangzhou), China (Shanghai), China (Zhangjiakou), China (Shenzhen), and China (Hong Kong) regions. To use the feature, [submit a ticket](https://workorder-intl.console.aliyun.com/#/ticket/createIndex).'."\n", + ], + 'CancelLensService' => [ + 'summary' => 'Cancels Elastic Block Storage data insight (CloudLens for EBS).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '138257', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + 'FEATUREdiskLP80G7', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<CancelLensServiceResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n</CancelLensServiceResponse>","errorExample":""}]', + 'title' => 'CancelLensService', + 'description' => '## Usage notes'."\n" + ."\n" + .'CloudLens for EBS is in invitational preview in the China (Hangzhou), China (Shanghai), China (Zhangjiakou), China (Shenzhen), and China (Hong Kong) regions. To use the feature, [submit a ticket](https://workorder-intl.console.aliyun.com/#/ticket/createIndex).'."\n", + ], + 'DescribeLensMonitorDisks' => [ + 'summary' => 'Queries one or more Elastic Block Storage (EBS) devices that you created.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '216732', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + 'FEATUREdiskLP80G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DiskIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '磁盘ID列表', + 'description' => 'The list of disks.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of disks.', + 'type' => 'string', + 'required' => false, + 'example' => 'd-cd40hxfu0v*****', + ], + 'required' => false, + 'example' => '[\'d-1\', \'d-2\']', + 'maxItems' => 100, + ], + ], + [ + 'name' => 'DiskCategory', + 'in' => 'query', + 'schema' => [ + 'title' => '磁盘类型', + 'description' => 'The type of the disk. Valid values:'."\n" + .'- cloud'."\n" + .'- cloud_efficiency'."\n" + .'- cloud_ssd'."\n" + .'- cloud_essd'."\n" + .'- cloud_auto'."\n" + .'- cloud_essd_entry', + 'type' => 'string', + 'required' => false, + 'example' => 'cloud_auto', + ], + ], + [ + 'name' => 'LensTags', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'Event tags of the disk, which are used to filter the disks on which the events associated with the specified tags occurred in the previous 24 hours. Valid values:'."\n" + ."\n" + .'* NoSnapshot: specifies the event that is triggered because no snapshot is created for the disk to protect data on the disk.'."\n" + .'* BurstIOTriggered: specifies the event that is triggered when a burst I/O operation is performed on the disk.'."\n" + .'* CostOptimizationNeeded: specifies the event that is triggered when cost optimization is required.'."\n" + .'* DiskSpecNotMatchedWithInstance: specifies the event that is triggered if the disk specifications do not match the instance to which the disk is attached.'."\n" + .'* DiskIONo4kAligned: specifies the event that is triggered if the physical and logical sectors involved in a read or write operation are not 4K aligned.'."\n" + .'* DiskIOHang: specifies the event that is triggered when an I/O hang occurs on the disk.'."\n" + .'* InstanceIOPSExceedInstanceMaxLimit: specifies the event that is triggered when the number of IOPS on the instance reaches the upper limit.'."\n" + .'* InstanceBPSExceedInstanceMaxLimit: specifies the event that is triggered when the number of BPS on the instance reaches the upper limit.'."\n" + .'* DiskIOPSExceedInstanceMaxLimit: specifies the event that is triggered when the number of IOPS on the disk reaches the upper limit of the instance.'."\n" + .'* DiskBPSExceedInstanceMaxLimit: specifies the event that is triggered when the number of BPS on the disk reaches the upper limit of the instance.'."\n" + .'* DiskIOPSExceedDiskMaxLimit: specifies the event that is triggered when the number of IOPS on the disk reaches the upper limit of the disk.'."\n" + .'* DiskBPSExceedDiskMaxLimit: specifies the event that is triggered when the number of BPS on the disk reaches the upper limit of the disk.', + 'type' => 'array', + 'items' => [ + 'description' => 'Event tags of the disk.', + 'type' => 'string', + 'required' => false, + 'example' => 'NoSnapshot', + ], + 'required' => false, + 'maxItems' => 100, + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '下一个Token', + 'description' => 'The token used to start the next query to retrieve more results.'."\n" + ."\n" + .'>The pagination token that is used in the next request to retrieve a new page of results. You must specify the token that is obtained from the previous query as the value of NextToken.', + 'type' => 'string', + 'required' => false, + 'example' => 'caeba0bbb2be03f84eb48b699f0a****', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => 'Token方式最大个数', + 'description' => 'The number of entries to return on each page. Valid values: 1 to 100. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'DiskIdPattern', + 'in' => 'query', + 'schema' => [ + 'description' => 'Regular matching fuzzy query to filter cloud disk IDs.', + 'type' => 'string', + 'required' => false, + 'example' => 'd-cd40hxfu0v**', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeLensMonitorDisksResponse', + 'description' => 'DescribeLensMonitorDisksResponse'."\n", + 'type' => 'object', + 'properties' => [ + 'DiskInfos' => [ + 'description' => 'The information about the disks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the disk.'."\n", + 'type' => 'object', + 'properties' => [ + 'DiskId' => [ + 'description' => 'The ID of the disk.'."\n", + 'type' => 'string', + 'example' => 'd-cd401****', + ], + 'DiskName' => [ + 'description' => 'The name of the disk.'."\n", + 'type' => 'string', + 'example' => 'disk-28c6b****', + ], + 'DiskType' => [ + 'description' => 'The disk type. Valid values:'."\n" + .'* system: system disk'."\n" + .'* data: data disk', + 'type' => 'string', + 'example' => 'system', + ], + 'DiskStatus' => [ + 'description' => 'The disk status. Valid values:'."\n" + ."\n" + .'- Available'."\n" + .'- Deleted', + 'type' => 'string', + 'example' => 'Available', + ], + 'RegionId' => [ + 'description' => 'The region ID of the disk.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'DiskCategory' => [ + 'description' => 'The type of the disk. Valid values:'."\n" + .'- cloud'."\n" + .'- cloud_efficiency'."\n" + .'- cloud_ssd'."\n" + .'- cloud_essd'."\n" + .'- cloud_auto'."\n" + .'- cloud_essd_entry', + 'type' => 'string', + 'example' => 'cloud_essd', + ], + 'PerformanceLevel' => [ + 'description' => 'The new performance level of the ESSD. Valid values:'."\n" + ."\n" + .'* PL0: An ESSD can deliver up to 10,000 random read/write IOPS.'."\n" + .'* PL1: An ESSD can deliver up to 50,000 random read/write IOPS.'."\n" + .'* PL2: An ESSD can deliver up to 100,000 random read/write IOPS.'."\n" + .'* PL3: An ESSD delivers up to 1,000,000 random read/write IOPS.', + 'type' => 'string', + 'example' => 'PL0', + ], + 'Tags' => [ + 'description' => 'Tags of the disk.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.', + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'user', + ], + 'TagKey' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'tag1', + ], + ], + ], + ], + 'ZoneId' => [ + 'description' => 'The ID of the zone.', + 'type' => 'string', + 'example' => 'cn-hangzhou-j', + ], + 'Size' => [ + 'description' => 'The size of the disk. Unit: GiB.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '64', + ], + 'Iops' => [ + 'description' => 'The IOPS.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4000', + ], + 'Bps' => [ + 'description' => 'The BPS.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '300', + ], + 'ProvisionedIops' => [ + 'description' => 'The provisioned read/write IOPS of the ESSD AutoPL disk to use as the system disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}.'."\n" + ."\n" + .'Baseline performance = min{1,800 + 50 × Capacity, 50,000}'."\n" + ."\n" + .'This parameter is available only if you set `DiskCategory` to `cloud_auto`. For more information, see [ESSD AutoPL disks](~~368372~~).'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4000', + ], + 'BurstingEnabled' => [ + 'description' => 'Indicates whether the performance burst feature is enabled. Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n" + ."\n" + .'This parameter is available only if you set `DiskCategory` to `cloud_auto`. For more information, see [ESSD AutoPL disks](~~368372~~).'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'LensTags' => [ + 'description' => 'Event tags of the disk.', + 'type' => 'array', + 'items' => [ + 'description' => 'Event tags of the disk.', + 'type' => 'string', + 'example' => '["NoSnapshot", "DiskIOHang"]', + ], + ], + 'SharingEnabled' => [ + 'type' => 'string', + ], + ], + ], + ], + 'NextToken' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.', + 'type' => 'string', + 'example' => 'caeba0bbb2be03f84eb48b699f0a****', + ], + 'TotalCount' => [ + 'title' => '总个数', + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '6', + ], + 'RequestId' => [ + 'title' => '请求ID。无论调用接口成功与否,我们都会返回请求 ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DiskInfos\\": [\\n {\\n \\"DiskId\\": \\"d-cd401****\\",\\n \\"DiskName\\": \\"disk-28c6b****\\",\\n \\"DiskType\\": \\"system\\",\\n \\"DiskStatus\\": \\"Available\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"DiskCategory\\": \\"cloud_essd\\",\\n \\"PerformanceLevel\\": \\"PL0\\",\\n \\"Tags\\": [\\n {\\n \\"TagValue\\": \\"user\\",\\n \\"TagKey\\": \\"tag1\\"\\n }\\n ],\\n \\"ZoneId\\": \\"cn-hangzhou-j\\",\\n \\"Size\\": 64,\\n \\"Iops\\": 4000,\\n \\"Bps\\": 300,\\n \\"ProvisionedIops\\": 4000,\\n \\"BurstingEnabled\\": true,\\n \\"LensTags\\": [\\n \\"[\\\\\\"NoSnapshot\\\\\\", \\\\\\"DiskIOHang\\\\\\"]\\"\\n ],\\n \\"SharingEnabled\\": \\"true\\"\\n }\\n ],\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"TotalCount\\": 6,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","type":"json"}]', + 'title' => 'DescribeLensMonitorDisks', + ], + 'DescribeEvents' => [ + 'summary' => 'Queries the risk events of a disk.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '191205', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID . You can call the [DescribeRegions](~~354276~~) operation to query the most recent list of regions supported.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'EventName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the event. Valid values:'."\n" + ."\n" + .'* NoSnapshot: indicates the event that is triggered because no snapshot is created for a disk to protect data on the disk.'."\n" + .'* BurstIOTriggered: indicates the event that is triggered when a burst I/O operation is performed on a disk.'."\n" + .'* CostOptimizationNeeded: indicates the event that is triggered when cost optimization is required.'."\n" + .'* DiskSpecNotMatchedWithInstance: indicates the event that is triggered because the specifications of a disk do not match the instance to which the disk is attached.'."\n" + .'* DiskIONo4kAligned: indicates the event that is triggered because the physical and logical sectors involved in a read or write operation are not 4K aligned.'."\n" + .'* DiskIOHang: indicates the event that is triggered when an I/O hang occurs on a disk.'."\n" + .'* InstanceIOPSExceedInstanceMaxLimit: indicates the event that is triggered when the number of IOPS on an instance reaches the upper limit.'."\n" + .'* InstanceBPSExceedInstanceMaxLimit: indicates the event that is triggered when the number of BPS on an instance reaches the upper limit.'."\n" + .'* DiskIOPSExceedInstanceMaxLimit: indicates the event that is triggered when the number of IOPS on a disk reaches the upper limit for the associated instance.'."\n" + .'* DiskBPSExceedInstanceMaxLimit: indicates the event that is triggered when the number of BPS on a disk reaches the upper limit for the associated instance.'."\n" + .'* DiskIOPSExceedDiskMaxLimit: indicates the event that is triggered when the number of IOPS on a disk reaches the upper limit for the disk.'."\n" + .'* DiskBPSExceedDiskMaxLimit: indicates the event that is triggered when the number of BPS on a disk reaches the upper limit for the disk.'."\n", + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'DiskIOHang', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'd-bp67acfmxazb4p****', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of resource. Valid values:'."\n" + ."\n" + .'* disk.'."\n" + ."\n" + .'Default value: disk.', + 'type' => 'string', + 'required' => false, + 'example' => 'disk', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of event. Valid values:'."\n" + ."\n" + .'- WillExecute'."\n" + .'- Executing'."\n" + .'- Executed'."\n" + .'- Ignore'."\n" + .'- Expired'."\n" + .'- Deleted', + 'type' => 'string', + 'required' => false, + 'example' => 'WillExecute', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Specify the time in the [ISO 8601](~~25696~~) standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2023-06-01T03:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Specify the time in the [ISO 8601](~~25696~~) standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2023-06-01T04:00:00Z', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page. If you specify MaxResults, `MaxResults` and `NextToken` are used for a paged query.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAdDWBF2****', + ], + ], + [ + 'name' => 'EventLevel', + 'in' => 'query', + 'schema' => [ + 'description' => 'The severity level of the event. Valid values:'."\n" + ."\n" + .'* **INFO**'."\n" + .'* **WARN**'."\n" + .'* **CRITICAL**', + 'type' => 'string', + 'required' => false, + 'example' => 'WARN', + ], + ], + ], + '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', + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + '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.'."\n", + 'type' => 'string', + 'example' => 'AAAAAdDWBF2****', + ], + 'ResourceEvents' => [ + 'description' => 'The events.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EventType' => [ + 'description' => 'The type of the event. Valid values:'."\n" + ."\n" + .'1. Notification'."\n" + .'2. SystemException'."\n" + .'3. Alert'."\n", + 'type' => 'string', + 'example' => 'Alert', + ], + 'EventName' => [ + 'description' => 'The name of the event. Valid values:'."\n" + ."\n" + .'* NoSnapshot: indicates the event that is triggered because no snapshot is created for a disk to protect data on the disk.'."\n" + .'* BurstIOTriggered: indicates the event that is triggered when a burst I/O operation is performed on a disk.'."\n" + .'* CostOptimizationNeeded: indicates the event that is triggered when cost optimization is required.'."\n" + .'* DiskSpecNotMatchedWithInstance: indicates the event that is triggered because the specifications of a disk do not match the instance to which the disk is attached.'."\n" + .'* DiskIONo4kAligned: indicates the event that is triggered because the physical and logical sectors involved in a read or write operation are not 4K aligned.'."\n" + .'* DiskIOHang: indicates the event that is triggered when an I/O hang occurs on a disk.'."\n" + .'* InstanceIOPSExceedInstanceMaxLimit: indicates the event that is triggered when the number of IOPS on an instance reaches the upper limit.'."\n" + .'* InstanceBPSExceedInstanceMaxLimit: indicates the event that is triggered when the number of BPS on an instance reaches the upper limit.'."\n" + .'* DiskIOPSExceedInstanceMaxLimit: indicates the event that is triggered when the number of IOPS on a disk reaches the upper limit for the associated instance.'."\n" + .'* DiskBPSExceedInstanceMaxLimit: indicates the event that is triggered when the number of BPS on a disk reaches the upper limit for the associated instance.'."\n" + .'* DiskIOPSExceedDiskMaxLimit: indicates the event that is triggered when the number of IOPS on a disk reaches the upper limit for the disk.'."\n" + .'* DiskBPSExceedDiskMaxLimit: indicates the event that is triggered when the number of BPS on a disk reaches the upper limit for the disk.'."\n", + 'type' => 'string', + 'example' => 'DiskIOHang', + ], + 'ResourceId' => [ + 'description' => 'The ID of the resource.'."\n", + 'type' => 'string', + 'example' => 'd-bp67acfmxazb4p****'."\n", + ], + 'ResourceType' => [ + 'description' => 'The type of the resource.'."\n", + 'type' => 'string', + 'example' => 'disk', + ], + 'Status' => [ + 'description' => 'The status of the event. Valid values:'."\n" + ."\n" + .'1. WillExecute'."\n" + .'2. Executing'."\n" + .'3. Executed'."\n" + .'4. Ignore'."\n" + .'5. Expired'."\n" + .'6. Deleted'."\n", + 'type' => 'string', + 'example' => 'WillExecute', + ], + 'StartTime' => [ + 'description' => 'The start time of the event, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.'."\n", + 'type' => 'string', + 'example' => '1684204822000', + ], + 'Description' => [ + 'description' => 'The description of the event.'."\n", + 'type' => 'string', + 'example' => 'need snapshot', + ], + 'RecommendAction' => [ + 'description' => 'The recommended action after the event occurred. Valid values:'."\n" + ."\n" + .'* ModifyDiskSpec'."\n" + .'* CreateSnapshot'."\n" + .'* ResizeDisk'."\n" + .'* AdjustProvision'."\n" + .'* ModifyInstanceSpec'."\n", + 'type' => 'string', + 'example' => 'AdjustProvision', + ], + 'RecommendParams' => [ + 'description' => 'The codes of the parameters for the recommended action after the event occurred.'."\n", + 'type' => 'string', + 'example' => '4296', + ], + 'EventLevel' => [ + 'description' => 'The level of the event. Valid values:'."\n" + ."\n" + .'1. INFO'."\n" + .'2. WARN'."\n" + .'3. CRITICAL'."\n", + 'type' => 'string', + 'example' => 'INFO', + ], + 'EndTime' => [ + 'description' => 'The end time of the event, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.'."\n", + 'type' => 'string', + 'example' => '1679538083000', + ], + 'ExtraAttributes' => [ + 'description' => 'Extra attributes of event, possible fields are:'."\n" + ."\n" + .'- EcsInstanceId: ECS instance ID where the cloud disk is mounted;'."\n" + .'- Adapter: cloud disk mount point.', + 'type' => 'string', + 'example' => '{\\"EcsInstanceId\\":\\"i-uf6dkn9qpcw6y94g7ag7\\",\\"Adapter\\":\\"hda\\"}', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'App.NumberExceed', + 'errorMessage' => 'The number of apps exceeded.', + ], + [ + 'errorCode' => 'DocumentConvertFailed.ExceedFileSizeLimit', + 'errorMessage' => 'The conversion has been failed, exceed file size limit.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The Tag.N.Key contain duplicate key.', + ], + [ + 'errorCode' => 'IdempotentParameterMismatch', + 'errorMessage' => 'The specified parameter has changed while using an already used clientToken.', + ], + [ + 'errorCode' => 'InvalidDiskSize.NotSupported', + 'errorMessage' => 'The specified parameter size is not valid.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.EndTime', + 'errorMessage' => 'The specified parameter EndTime is earlier than StartTime.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'InvalidParameter.TooManyDataQueried', + 'errorMessage' => 'Too many data queried.', + ], + ], + 403 => [ + [ + 'errorCode' => 'AliCroup2CloudUserCannotBuyNotInnerCommodity', + 'errorMessage' => 'There is no group cloud commodity label, and users within the group are not allowed to purchase.', + ], + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'IncorrectDiskStatus.CreatingSnapshot', + 'errorMessage' => 'A previous snapshot creation is in process.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'InvalidDiskCategory.NotSupported', + 'errorMessage' => 'The specified disk category is not supported.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"AAAAAdDWBF2****\\",\\n \\"ResourceEvents\\": [\\n {\\n \\"EventType\\": \\"Alert\\",\\n \\"EventName\\": \\"DiskIOHang\\",\\n \\"ResourceId\\": \\"d-bp67acfmxazb4p****\\\\n\\",\\n \\"ResourceType\\": \\"disk\\",\\n \\"Status\\": \\"WillExecute\\",\\n \\"StartTime\\": \\"1684204822000\\",\\n \\"Description\\": \\"可通过购买4296预配置IOPS以获得成本优化,根据您过往7天使用情况,预计成本可以下降16%。\\",\\n \\"RecommendAction\\": \\"AdjustProvision\\",\\n \\"RecommendParams\\": \\"4296\\",\\n \\"EventLevel\\": \\"INFO\\",\\n \\"EndTime\\": \\"1679538083000\\",\\n \\"ExtraAttributes\\": \\"{\\\\\\\\\\\\\\"EcsInstanceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"i-uf6dkn9qpcw6y94g7ag7\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Adapter\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"hda\\\\\\\\\\\\\\"}\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeEvents', + ], + 'DescribeMetricData' => [ + 'summary' => 'Query single metric monitoring information', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '185234', + 'abilityTreeNodes' => [ + 'FEATUREdiskLP80G7', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'MetricName', + 'in' => 'query', + 'schema' => [ + 'title' => '指标名称', + 'description' => 'Metric name. Possible values include:'."\n" + .' '."\n" + .'- disk_bps_percent'."\n" + .'- disk_iops_percent'."\n" + .'- disk_read_block_size'."\n" + .'- disk_read_bps'."\n" + .'- disk_read_iops'."\n" + .'- disk_write_block_size'."\n" + .'- disk_write_bps'."\n" + .'- disk_write_iops', + 'type' => 'string', + 'required' => true, + 'example' => 'disk_bps_percent', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'title' => '开始时间', + 'description' => 'The beginning of the time range to query. You can specify a point in time that is up to 30 days before the current time. If both StartTime and EndTime are left empty, the monitoring metric data of the most recent statistical period is queried. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2023-11-21T01:50:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'title' => '结束时间', + 'description' => 'The end time point for obtaining metric data. It should not be later than the current moment. Represented according to the ISO 8601 standard, using UTC +0 time, in the format yyyy-MM-ddTHH:mm:ssZ.', + 'type' => 'string', + 'required' => false, + 'example' => '2023-11-21T02:00:00Z', + ], + ], + [ + 'name' => 'Period', + 'in' => 'query', + 'schema' => [ + 'title' => '间隔时间(秒)', + 'description' => 'The granularity at which data is collected for the metric. Unit: seconds. Default value: 5. Valid values:'."\n" + ."\n" + .'* 5: 5 seconds. The query time range can be up to 12 hours.'."\n" + .'* 10: 10 seconds. The query time range can be up to 24 hours.'."\n" + .'* 60: 60 seconds. The query time range can be up to 7 days.'."\n" + .'* 300: 300 seconds. The query time range can be up to 30 days.'."\n" + .'* 600: 600 seconds. The query time range can be up to 30 days.'."\n" + .'* 3600: 3,600 seconds. The query time range can be up to 30 days.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => [], + 'example' => '60', + ], + ], + [ + 'name' => 'Dimensions', + 'in' => 'query', + 'schema' => [ + 'title' => '维度map', + 'description' => 'The dimension map, in the JSON format. Valid values:'."\n" + ."\n" + .'* DiskId: the disk name. Example: d-xxx.'."\n" + .'* DeviceType: the disk type. system indicates the system disk, and data indicates the data disk.'."\n" + .'* DeviceCategory: the disk category. Example: cloud_essd.'."\n" + .'* EcsInstanceId: the ECS instance name. Example: i-xxx.'."\n" + .'* Azone: the zone, such as cn-hangzhou-a.'."\n" + ."\n" + .'The returned result is the intersection of all dimension filtering conditions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{"DiskId":["d-bp14xxxx","d-bp11xxxx"], "DeviceCategory": ["cloud_essd"]}', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'Region ID.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'AggreOps', + 'in' => 'query', + 'schema' => [ + 'description' => 'Aggregation method over time. Possible values include:'."\n" + ."\n" + .'- SUM_OVER_TIME'."\n" + .'- COUNT_OVER_TIME'."\n" + .'- AVG_OVER_TIME'."\n" + .'- MAX_OVER_TIME'."\n" + .'- MIN_OVER_TIME'."\n" + .'- SUM_OVER_TIME_LCRO: Sum over a left-closed, right-open interval'."\n" + .'- AVG_OVER_TIME_LCRO: Average over a left-closed, right-open interval'."\n" + .'- SUM_OVER_TIME_LORC: Sum over a left-open, right-closed interval'."\n" + .'- AVG_OVER_TIME_LORC: Average over a left-open, right-closed interval', + 'type' => 'string', + 'required' => false, + 'example' => 'AVG_OVER_TIME', + ], + ], + [ + 'name' => 'AggreOverLineOps', + 'in' => 'query', + 'schema' => [ + 'description' => 'Aggregation method between lines. Possible values include:'."\n" + .'- NON: No aggregation'."\n" + .'- SUM: Sum'."\n" + .'- AVG: Average'."\n" + .'- COUNT: Count'."\n" + .'- MAX: Maximum'."\n" + .'- MIN: Minimum', + 'type' => 'string', + 'required' => false, + 'example' => 'NON', + ], + ], + [ + 'name' => 'GroupByLabels', + 'in' => 'query', + 'style' => 'simple', + 'schema' => [ + 'description' => 'The list of fields used for grouping and aggregation.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The field used for grouping. The optional fields are:'."\n" + ."\n" + .'* DiskId: the disk name. Example: d-xxx.'."\n" + .'* DeviceType: the disk type. system indicates the system disk, and data indicates the data disk.'."\n" + .'* DeviceCategory: the disk category. Example: cloud_essd.'."\n" + .'* EcsInstanceId: the ECS instance name. Example: i-xxx.'."\n" + .'* Azone: the zone, such as cn-hangzhou-a.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'DeviceType', + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeMetricDataResponse', + 'description' => 'DescribeMetricDataResponse', + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'title' => '查询到的数据总数', + 'description' => 'Total number of data points queried.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'DataList' => [ + 'title' => '云盘的监控数据集合', + 'description' => 'Collection of monitoring data for the cloud disk.', + 'type' => 'array', + 'items' => [ + 'description' => 'List of returned data.', + 'type' => 'object', + 'properties' => [ + 'Labels' => [ + 'description' => 'Labels.', + 'type' => 'any', + 'example' => '{"DiskId": "d-1234"}', + ], + 'Datapoints' => [ + 'description' => 'List of monitoring data, consisting of a series of consecutive second-level timestamps and the corresponding metric values at those times.', + 'type' => 'any', + 'example' => '{"1699258861": 1,"1699259461": 0}', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'Request ID.', + 'type' => 'string', + 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****', + ], + 'Warnings' => [ + 'description' => 'List of warning messages.', + 'type' => 'array', + 'items' => [ + 'description' => 'Warning message.', + 'type' => 'string', + 'example' => 'not complete.', + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 1,\\n \\"DataList\\": [\\n {\\n \\"Labels\\": \\"{\\\\\\"DiskId\\\\\\": \\\\\\"d-1234\\\\\\"}\\",\\n \\"Datapoints\\": \\"{\\\\\\"1699258861\\\\\\": 1,\\\\\\"1699259461\\\\\\": 0}\\"\\n }\\n ],\\n \\"RequestId\\": \\"11B55F58-D3A4-4A9B-9596-342420D0****\\",\\n \\"Warnings\\": [\\n \\"not complete.\\"\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeMetricData', + 'translator' => 'machine', + ], + 'DescribeDiskMonitorDataList' => [ + 'summary' => 'Queries fine-grained monitoring data of multiple disks. You can query only the burst performance data of ESSD AutoPL disks. The data is aggregated by hour.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'abilityTreeCode' => '140055', + 'abilityTreeNodes' => [ + 'FEATUREdiskLP80G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID. You can call the [DescribeRegions](~~354276~~) operation to query the list of regions that support CloudLens for EBS.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the monitoring data. Set the value to pro.'."\n" + ."\n" + .'pro: burst performance data, such as burst I/O operations.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pro', + ], + ], + [ + 'name' => 'DiskIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the disks. The value is a JSON array that contains multiple disk IDs. Separate the IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["d-bp67acfmxazb4p****","d-bp67acfmxazs5t****"]', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range during which you want to query the near real-time monitoring data of the disks. Specify the time in the [ISO 8601](~~25696~~) standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-06-01T03:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range during which you want to query the near real-time monitoring data of the disks. Specify the time in the [ISO 8601](~~25696~~) standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-06-01T05:00:00Z', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. If you specify this parameter, both `MaxResults` and `NextToken` are used for a paged query.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in this request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'e71d8a535bd9c****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + 'MonitorData' => [ + 'description' => 'The near real-time monitoring data of the disks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The near real-time monitoring data of the disks.'."\n", + 'type' => 'object', + 'properties' => [ + 'DiskId' => [ + 'description' => 'The ID of the disk.'."\n", + 'type' => 'string', + 'example' => 'd-bp67acfmxazb4p****', + ], + 'Timestamp' => [ + 'description' => 'The beginning of the time range during which the performance of the disk bursts. The time follows the [ISO 8601](~~25696~~) standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2022-06-01T08:00:00Z', + ], + 'BurstIOCount' => [ + 'description' => 'The number of burst I/O operations.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2000', + ], + ], + ], + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3', + ], + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n", + 'type' => 'string', + 'example' => 'e71d8a535bd9c****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"MonitorData\\": [\\n {\\n \\"DiskId\\": \\"d-bp67acfmxazb4p****\\",\\n \\"Timestamp\\": \\"2022-06-01T08:00:00Z\\",\\n \\"BurstIOCount\\": 2000\\n }\\n ],\\n \\"TotalCount\\": 3,\\n \\"NextToken\\": \\"e71d8a535bd9c****\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDiskMonitorDataListResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n <MonitorData>\\n <DiskId>d-bp67acfmxazb4p****</DiskId>\\n <Timestamp>2022-06-01T08:00:00Z</Timestamp>\\n <BurstIOCount>2000</BurstIOCount>\\n </MonitorData>\\n <TotalCount>3</TotalCount>\\n <NextToken>e71d8a535bd9c****</NextToken>\\n</DescribeDiskMonitorDataListResponse>","errorExample":""}]', + 'title' => 'DescribeDiskMonitorDataList', + 'description' => '## Usage notes'."\n" + ."\n" + .'CloudLens for EBS is in invitational preview in the China (Hangzhou), China (Shanghai), China (Zhangjiakou), China (Shenzhen), and China (Hong Kong) regions. To use the feature, [submit a ticket](https://workorder-intl.console.aliyun.com/#/ticket/createIndex).'."\n", + ], + 'DescribeDiskMonitorData' => [ + 'summary' => 'Queries fine-grained monitoring data of a disk.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '138275', + 'abilityTreeNodes' => [ + 'FEATUREdiskLP80G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the disk.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DiskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the disk.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'd-bp67acfmxazb4p****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range during which you want to query the near real-time monitoring data of the disk. Specify the time in the [ISO 8601](~~25696~~) standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-06-01T03:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range during which you want to query the near real-time monitoring data of the disk. Specify the time in the [ISO 8601](~~25696~~) standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2022-06-01T05:00:00Z', + ], + ], + [ + 'name' => 'Period', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval at which the near real-time monitoring data is collected. Unit: seconds. Valid values:'."\n" + ."\n" + .'* 5'."\n" + .'* 60'."\n" + ."\n" + .'Default value: 5.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '5', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the monitoring data. Valid values:'."\n" + ."\n" + .'* basic: baseline performance data.'."\n" + .'* pro: burst performance data, such as burst I/O operations.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'basic', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '15', + ], + 'MonitorData' => [ + 'description' => 'The near real-time monitoring data of the disk.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The near real-time monitoring data of the disk.'."\n", + 'type' => 'object', + 'properties' => [ + 'ReadBPS' => [ + 'description' => 'The read bandwidth of the disk. Unit: MByte/s.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'WriteBPS' => [ + 'description' => 'The write bandwidth of the disk. Unit: MByte/s.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '204', + ], + 'DiskId' => [ + 'description' => 'The ID of the disk.'."\n", + 'type' => 'string', + 'example' => 'd-bp1bq5g3dxxo1x4o****', + ], + 'ReadIOPS' => [ + 'description' => 'The maximum number of read IOPS.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2000', + ], + 'WriteIOPS' => [ + 'description' => 'The maximum number of write IOPS.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2000', + ], + 'IOPSPercent' => [ + 'description' => 'The percentage of IOPS.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '80(%)', + ], + 'BPSPercent' => [ + 'description' => 'The percentage of BPS.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '80(%)', + ], + 'Timestamp' => [ + 'description' => 'The timestamp that is used to query the near real-time monitoring data of the disk. The time follows the [ISO 8601](~~25696~~) standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2022-06-01T08:00:00Z', + ], + 'BurstIOCount' => [ + 'description' => 'The number of burst I/O operations.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'ReadBlockSize' => [ + 'description' => 'Read IO block size. Unit: Bytes', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '4096', + ], + 'WriteBlockSize' => [ + 'description' => 'Write IO block size. Unit: Bytes', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '4096', + ], + 'ReadLatency' => [ + 'description' => 'Read IO latency. Unit: microsecond', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'WriteLatency' => [ + 'description' => 'Write IO latency. Unit: microsecond', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"TotalCount\\": 15,\\n \\"MonitorData\\": [\\n {\\n \\"ReadBPS\\": 10,\\n \\"WriteBPS\\": 204,\\n \\"DiskId\\": \\"d-bp1bq5g3dxxo1x4o****\\",\\n \\"ReadIOPS\\": 2000,\\n \\"WriteIOPS\\": 2000,\\n \\"IOPSPercent\\": 0,\\n \\"BPSPercent\\": 0,\\n \\"Timestamp\\": \\"2022-06-01T08:00:00Z\\",\\n \\"BurstIOCount\\": 0,\\n \\"ReadBlockSize\\": 4096,\\n \\"WriteBlockSize\\": 4096,\\n \\"ReadLatency\\": 100,\\n \\"WriteLatency\\": 100\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDiskMonitorDataResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n <TotalCount>15</TotalCount>\\n <MonitorData>\\n <ReadBPS>10</ReadBPS>\\n <WriteBPS>204</WriteBPS>\\n <DiskId>d-bp1bq5g3dxxo1x4o****</DiskId>\\n <ReadIOPS>2000</ReadIOPS>\\n <WriteIOPS>2000</WriteIOPS>\\n <Timestamp>2022-06-01T08:00:00Z</Timestamp>\\n <BurstIOCount>0</BurstIOCount>\\n </MonitorData>\\n</DescribeDiskMonitorDataResponse>","errorExample":""}]', + 'title' => 'DescribeDiskMonitorData', + 'description' => '## Usage notes'."\n" + ."\n" + .'* CloudLens for EBS is in invitational preview in the China (Hangzhou), China (Shanghai), China (Zhangjiakou), China (Shenzhen), and China (Hong Kong) regions. To use the feature, [submit a ticket](https://workorder-intl.console.aliyun.com/#/ticket/createIndex).'."\n" + .'* Up to 400 monitoring data entries can be returned at a time. An error is returned if the value calculated based on the following formula is greater than 400: `(EndTime - StartTime)/Period`.'."\n" + .'* You can query the monitoring data collected in the last three days. An error is returned if the time specified by `StartTime` is more than three days prior to the current time.'."\n", + ], + 'DescribeDiskEvents' => [ + 'summary' => 'Queries the risk events of a disk. The operation is getting offline. Switch to the new operation DescribeEvents.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '114018', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the disk. You can call the [DescribeRegions](~~354276~~) operation to query the list of regions that support CloudLens for EBS.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DiskCategory', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the disk. Valid values:'."\n" + ."\n" + .'* cloud_efficiency: ultra disk.'."\n" + .'* cloud_ssd: standard SSD.'."\n" + .'* cloud_essd: enhanced SSD (ESSD).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cloud_essd', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The event type. Set the value to DataNeedProtect, which indicates that the disk data needs to be protected.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'DataNeedProtect', + ], + ], + [ + 'name' => 'DiskId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the disk.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'd-bp67acfmxazb4p****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Specify the time in the [ISO 8601](~~25696~~) standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-06-01T03:00:00Z', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Specify the time in the [ISO 8601](~~25696~~) standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '2022-06-01T05:00:00Z', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum number of entries per page. Valid values: 1 to 100.'."\n" + ."\n" + .'Default values:'."\n" + ."\n" + .'* If this parameter is not specified or is set to a value smaller than 10, the default value is 10.'."\n" + .'* If this parameter is set to a value greater than 100, the default value is 100.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The pagination token that is used in this request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of `NextToken`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'caeba0bbb2be03f84eb48b699f0a****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'NextToken' => [ + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'example' => 'caeba0bbb2be03f84eb48b699f0a****', + ], + 'DiskEvents' => [ + 'description' => 'The risk events of the disk.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The risk event of the disk.'."\n", + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the event. Only DataNeedProtect can be returned.'."\n", + 'type' => 'string', + 'example' => 'DataNeedProtect', + ], + 'DiskId' => [ + 'description' => 'The ID of the disk.'."\n", + 'type' => 'string', + 'example' => 'd-bp1bq5g3dxxo1x4o****', + ], + 'Status' => [ + 'description' => 'The state of the event. Valid values:'."\n" + ."\n" + .'* Solved'."\n" + .'* UnSolved'."\n", + 'type' => 'string', + 'example' => 'Solved', + ], + 'Timestamp' => [ + 'description' => 'The time when the event occurred. The time follows the [ISO 8601](~~25696~~) standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", + 'type' => 'string', + 'example' => '2022-06-01T08:00:00Z', + ], + 'Description' => [ + 'description' => 'The description of the event.'."\n", + 'type' => 'string', + 'example' => 'This is description.', + ], + 'RecommendAction' => [ + 'description' => 'The recommended action after the event occurred. Valid values:'."\n" + ."\n" + .'* Resize: resizes the disk.'."\n" + .'* ModifyDiskSpec: changes the category of the disk.'."\n" + .'* NoAction: performs no operation.'."\n", + 'type' => 'string', + 'example' => 'NoAction', + ], + 'RegionId' => [ + 'description' => 'The region ID of the disk.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"TotalCount\\": 20,\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"DiskEvents\\": [\\n {\\n \\"Type\\": \\"DataNeedProtect\\",\\n \\"DiskId\\": \\"d-bp1bq5g3dxxo1x4o****\\",\\n \\"Status\\": \\"Solved\\",\\n \\"Timestamp\\": \\"2022-06-01T08:00:00Z\\",\\n \\"Description\\": \\"This is description.\\",\\n \\"RecommendAction\\": \\"NoAction\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDiskEventsResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n <TotalCount>20</TotalCount>\\n <NextToken>caeba0bbb2be03f84eb48b699f0a****</NextToken>\\n <DiskEvents>\\n <Type>DataNeedProtect</Type>\\n <DiskId>d-bp1bq5g3dxxo1x4o****</DiskId>\\n <Status>Solved</Status>\\n <Timestamp>2022-06-01T08:00:00Z</Timestamp>\\n <Description>This is description.</Description>\\n <RecommendAction>NoAction</RecommendAction>\\n <RegionId>cn-hangzhou</RegionId>\\n </DiskEvents>\\n</DescribeDiskEventsResponse>","errorExample":""}]', + 'title' => 'DescribeDiskEvents', + 'description' => '## Usage notes'."\n" + ."\n" + .'CloudLens for EBS is in invitational preview in the China (Hangzhou), China (Shanghai), China (Zhangjiakou), China (Shenzhen), and China (Hong Kong) regions. To use the feature, [submit a ticket](https://workorder-intl.console.aliyun.com/#/ticket/createIndex).'."\n", + ], + 'UpdateSolutionInstanceAttribute' => [ + 'summary' => 'Updates the attributes of a solution instance.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '156758', + 'abilityTreeNodes' => [ + 'FEATUREdiskFDS0SW', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The ID of the region where the dedicated block storage cluster resides. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'SolutionInstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '解决方案示例id', + 'description' => 'The ID of the instance.', + 'type' => 'string', + 'required' => true, + 'example' => 'inst-***', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'title' => '解决方案示例名称', + 'description' => 'The name of the instance.', + 'type' => 'string', + 'required' => false, + 'example' => 'defaultName', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'title' => '解决方案示例描述', + 'description' => 'The description of the instance.', + 'type' => 'string', + 'required' => false, + 'example' => 'defaultDescription', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that it is unique among different requests. The **ClientToken** value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'UpdateSlnInstanceAttributeResponse', + 'description' => 'UpdateSlnInstanceAttributeResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '20758A-585D-4A41-A9B2-28DA8F4F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource.SlnInst', + 'errorMessage' => 'The specified solution instance is not found.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"20758A-585D-4A41-A9B2-28DA8F4F****\\"\\n}","type":"json"}]', + 'title' => 'UpdateSolutionInstanceAttribute', + ], + 'TagResources' => [ + 'summary' => 'Creates tags and adds the tags to Elastic Block Storage (EBS) resources.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '资源ID,n的取值范围为 [1, 50]', + 'description' => 'The ID list of the resources. You can specify up to 50 IDs in each request.', + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of resource N. Valid values of N: 1 to 50.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pair-cn-c4d2t7f****', + ], + 'required' => true, + 'example' => 'disk-123', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签键值对。n的取值范围为 [1, 20]', + 'description' => 'The resource tags. You can specify up to 20 tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The value of tag N used for exact search of EBS resources. The tag value must be 1 to 128 characters in length. Valid values of N: 1 to 20.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '资源的标签键', + 'description' => 'The key of tag N to add to the resource. Valid values of N: 1 to 20. The tag key cannot be an empty string. The tag key can be up to 128 characters in length and cannot contain `http://` or `https://`. It cannot start with `acs:` or `aliyun`.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'tag-key', + ], + 'Value' => [ + 'title' => '资源的标签值', + 'description' => 'The value of tag N to add to the resource. Valid values of N: 1 to 20. The tag value can be an empty string. The tag value can be up to 128 characters in length and cannot start with `acs:` or contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'tag-value', + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region ID of the resource. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'title' => '资源类型定义', + 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* dedicatedblockstoragecluster: dedicated block storage cluster'."\n" + .'* diskreplicapair: replication pair'."\n" + .'* diskreplicagroup: replication pair-consistent group', + 'type' => 'string', + 'required' => true, + 'example' => 'diskreplicagroup', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '客户端幂等token', + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that the value is unique among different requests. The **ClientToken** value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'TagResponse', + 'description' => 'TagResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求 ID。无论调用接口成功与否,我们都会返回请求 ID。', + 'description' => 'The ID of the request. The request ID is returned regardless of whether the call is successful.'."\n", + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The Tag.N.Key contain duplicate key.', + ], + [ + 'errorCode' => 'NumberExceed.ResourceIds', + 'errorMessage' => 'The ResourceIds parameter number is exceed , Valid : 50', + ], + [ + 'errorCode' => 'NumberExceed.Tags', + 'errorMessage' => 'NumberExceed.Tags', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'InvalidResourceId.NotFound', + 'errorMessage' => 'The specified ResourceIds are not found in our records.', + ], + [ + 'errorCode' => 'InvalidResourceType.NotFound', + 'errorMessage' => 'The ResourceType provided does not exist in our records.', + ], + [ + 'errorCode' => 'MissingParameter.ResourceType', + 'errorMessage' => 'The parameter - ResourceType should not be null', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","errorExample":""},{"type":"xml","example":"<TagResourcesResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>\\n</TagResourcesResponse>","errorExample":""}]', + 'title' => 'TagResources', + 'description' => 'Before you add tags to a resource, Alibaba Cloud checks the number of existing tags of the resource. If the maximum number of tags is reached, an error message is returned. For more information, see the "Tag limits" section in [Limits](~~25412~~).', + ], + 'ListTagResources' => [ + 'summary' => 'Queries the tags that are added to EBS resources, or queries the IDs and tags of resources in a non-default resource group.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'abilityTreeCode' => '140645', + 'abilityTreeNodes' => [ + 'FEATUREdiskFDS0SW', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '资源ID,n的取值范围为 [1, 50]', + 'description' => 'The ID list of the resource. You can specify up to 50 resource IDs in each call.', + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of resource N. Valid values of N: 1 to 50.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pair-cn-c4d2t7f****', + ], + 'required' => false, + 'example' => 'disk-123', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签键值对。n的取值范围为 [1, 20]', + 'description' => 'The information about the tags.'."\n" + ."\n" + .'You can specify at most 20 tags in each call.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '资源的标签键', + 'description' => 'The key of tag N used for exact search of EBS resources. The tag key must be 1 to 128 characters in length. Valid values of N: 1 to 20.'."\n" + ."\n" + .'The `Tag.N` parameter pair (Tag.N.Key and Tag.N.Value) is used for exact search of EBS resources that have specified tags added. Each tag is a key-value pair.'."\n" + ."\n" + .'* If you specify only `Tag.N.Key`, all EBS resources whose tags contain the specified tag key are returned.'."\n" + .'* If you specify only `Tag.N.Value`, the `InvalidParameter.TagValue` error is returned.'."\n" + .'* If you specify multiple tag key-value pairs at the same time, only EBS resources that match all tag key-value pairs are returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tag-key', + ], + 'Value' => [ + 'title' => '资源的标签值', + 'description' => 'The value of tag N used for exact search of EBS resources. The tag value must be 1 to 128 characters in length. Valid values of N: 1 to 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tag-value', + ], + ], + 'required' => false, + 'description' => 'The tags that you want to attach to the resource.', + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '下一个查询开始Token', + 'description' => 'The token used to start the next query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'token123', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region ID of the resource. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'title' => '资源类型定义', + 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* dedicatedblockstoragecluster: dedicated block storage cluster'."\n" + .'* diskreplicapair: replication pair'."\n" + .'* diskreplicagroup: replication pair-consistent group', + 'type' => 'string', + 'required' => true, + 'example' => 'diskreplicagroup', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '客户端幂等token', + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that the value is unique among different requests. The **ClientToken** value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'ListTagResourcesResponse', + 'description' => 'ListTagResourcesResponse', + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'title' => '下一个查询开始Token', + 'description' => 'The token used to start the next query.'."\n", + 'type' => 'string', + 'example' => 'caeba0bbb2be03f84eb48b699f0a****', + ], + 'TagResources' => [ + 'title' => '资源标签列表', + 'description' => 'Details about the resources and tags, including resource IDs, resource types, and tag key-value pairs.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'title' => '资源的标签键', + 'description' => 'The tag key of the resource.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'title' => '资源的标签值', + 'description' => 'The tag value of the resource.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + 'ResourceId' => [ + 'title' => '资源ID', + 'description' => 'The ID of the resource.'."\n", + 'type' => 'string', + 'example' => 'pair-cn-c4d2t7f****', + ], + 'ResourceType' => [ + 'title' => '资源类型', + 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* dedicatedblockstoragecluster: dedicated block storage cluster'."\n" + .'* diskreplicapair: replication pair'."\n" + .'* diskreplicagroup: replication pair-consistent group', + 'type' => 'string', + 'example' => 'pair', + ], + ], + 'description' => 'The details about the resource to which the tags are added.'."\n", + ], + ], + 'RequestId' => [ + 'title' => '请求 ID。无论调用接口成功与否,我们都会返回请求 ID。', + 'description' => 'The ID of the request. The request ID is returned regardless of whether the call is successful.'."\n", + 'type' => 'string', + 'example' => '484256DA-D816-44D2-9D86-B6EE4D5B****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The Tag.N.Key contain duplicate key.', + ], + [ + 'errorCode' => 'NumberExceed.ResourceIds', + 'errorMessage' => 'The ResourceIds parameter number is exceed , Valid : 50', + ], + [ + 'errorCode' => 'NumberExceed.Tags', + 'errorMessage' => 'NumberExceed.Tags', + ], + [ + 'errorCode' => 'OperationDenied.QuotaExceed', + 'errorMessage' => 'The quota of tags on resource is beyond permitted range.', + ], + [ + 'errorCode' => 'IdempotentParameterMismatch', + 'errorMessage' => 'The specified parameter has changed while using an already used clientToken.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'InvalidRegionId.NotFound', + 'errorMessage' => 'The specified RegionId does not exist.', + ], + [ + 'errorCode' => 'InvalidResourceId.NotFound', + 'errorMessage' => 'The specified ResourceIds are not found in our records.', + ], + [ + 'errorCode' => 'InvalidResourceType.NotFound', + 'errorMessage' => 'The ResourceType provided does not exist in our records.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"TagResources\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\",\\n \\"ResourceId\\": \\"pair-cn-c4d2t7f****\\",\\n \\"ResourceType\\": \\"pair\\"\\n }\\n ],\\n \\"RequestId\\": \\"484256DA-D816-44D2-9D86-B6EE4D5B****\\"\\n}","type":"json"}]', + 'title' => 'ListTagResources', + 'description' => 'Specify at least one of the following parameters or parameter pairs in a request to determine a query object:'."\n" + ."\n" + .'* `ResourceId.N`'."\n" + .'* `Tag.N` parameter pair (`Tag.N.Key` and `Tag.N.Value`)'."\n" + ."\n" + .'If you set `Tag.N` and `ResourceId.N` at the same time, the EBS resources that match both the parameters are returned.', + ], + 'UntagResources' => [ + 'summary' => 'Removes tags from specified Elastic Block Storage (EBS) resources.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'abilityTreeCode' => '140644', + 'abilityTreeNodes' => [ + 'FEATUREdiskFDS0SW', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '资源ID,n的取值范围为 [1, 50]', + 'description' => 'The ID list of the resource. You can specify up to 50 resource IDs in each call.', + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of resource N. Valid values of N: 1 to 50.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pair-cn-c4d2t7f****', + ], + 'required' => true, + 'example' => 'disk-123', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'TagKey', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签键。n 的取值范围为 [1, 20]', + 'description' => 'The list of tag keys. You can specify up to 20 tag keys in the list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The key of tag N. Valid values of N: 1 to 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'required' => false, + 'example' => 'disk-123', + 'maxItems' => 21, + ], + ], + [ + 'name' => 'All', + 'in' => 'query', + 'schema' => [ + 'title' => '是否全部删除,只针对TagKey.N为空时有效', + 'description' => 'Specifies whether to remove all tags from the resource. This parameter is valid only when the TagKey.N parameter is not specified. Valid values:'."\n" + ."\n" + .'* true: removes all tags from the resource.'."\n" + .'* false: does not remove all tags from the resource.'."\n" + ."\n" + .'Default value: false.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region ID of the resource. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'title' => '资源类型定义', + 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* dedicatedblockstoragecluster: dedicated block storage cluster'."\n" + .'* diskreplicapair: the replication pair.'."\n" + .'* diskreplicagroup: replication pair-consistent group', + 'type' => 'string', + 'required' => true, + 'example' => 'diskreplicapair', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '客户端幂等token', + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that it is unique among different requests. The **ClientToken** value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'TagResponse', + 'description' => 'TagResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求 ID。无论调用接口成功与否,我们都会返回请求 ID。', + 'description' => 'The ID of the request. The request ID is returned regardless of whether the call is successful.'."\n", + 'type' => 'string', + 'example' => 'C46FF5A8-C5F0-4024-8262-B16B6392****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The Tag.N.Key contain duplicate key.', + ], + [ + 'errorCode' => 'NumberExceed.ResourceIds', + 'errorMessage' => 'The ResourceIds parameter number is exceed , Valid : 50', + ], + [ + 'errorCode' => 'NumberExceed.Tags', + 'errorMessage' => 'NumberExceed.Tags', + ], + [ + 'errorCode' => 'OperationDenied.QuotaExceed', + 'errorMessage' => 'The quota of tags on resource is beyond permitted range.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'InvalidResourceId.NotFound', + 'errorMessage' => 'The specified ResourceIds are not found in our records.', + ], + [ + 'errorCode' => 'InvalidResourceType.NotFound', + 'errorMessage' => 'The ResourceType provided does not exist in our records.', + ], + [ + 'errorCode' => 'InvalidRegionId.NotFound', + 'errorMessage' => 'The specified RegionId does not exist.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C46FF5A8-C5F0-4024-8262-B16B6392****\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagResourcesResponse>\\n <RequestId>C46FF5A8-C5F0-4024-8262-B16B6392****</RequestId>\\n</UntagResourcesResponse>","errorExample":""}]', + 'title' => 'UntagResources', + 'description' => '* You can remove up to 20 tags at a time.'."\n" + .'* After a tag is removed from an EBS resource, the tag is automatically deleted if the tag is not added to any instance.', + ], + 'ChangeResourceGroup' => [ + 'summary' => 'Changes the resource group to which an Elastic Block Storage (EBS) resource belongs.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '152482', + 'abilityTreeNodes' => [ + 'FEATUREdiskFDS0SW', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region ID of the resource. You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'title' => '资源类型定义', + 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* dedicatedblockstoragecluster: dedicated block storage cluster.'."\n" + .'* diskreplicapair: replication pair.'."\n" + .'* diskreplicagroup: replication pair-consistent group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'diskreplicapair', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源ID', + 'description' => 'The ID of the resource. For example, if you set ResourceType to diskreplicapair, set this parameter to the ID of a replication pair.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'pair-123', + ], + ], + [ + 'name' => 'NewResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源ID', + 'description' => 'The ID of the new resource group. You can view the available resource groups in the Resource Management console. For more information, see [View basic information of a resource group](~~151181~~).', + 'type' => 'string', + 'required' => true, + 'example' => 'rg-123', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'TagResponse', + 'description' => 'TagResponse'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + [ + 'errorCode' => 'OperationDenied.QuotaExceed', + 'errorMessage' => 'The quota of tags on resource is beyond permitted range.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'InvalidResourceType.NotFound', + 'errorMessage' => 'The ResourceType provided does not exist in our records.', + ], + [ + 'errorCode' => 'InvalidResourceId.NotFound', + 'errorMessage' => 'The specified ResourceId is not found in our records.', + ], + [ + 'errorCode' => 'InvalidResourceGroup.NotFound', + 'errorMessage' => 'The ResourceGroup provided does not exist in our records.', + ], + [ + 'errorCode' => 'MissingParameter.ResourceGroup', + 'errorMessage' => 'The parameter - Resource Group should not be null', + ], + [ + 'errorCode' => 'MissingParameter.ResourceType', + 'errorMessage' => 'The parameter - ResourceType should not be null', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","type":"json"}]', + 'title' => 'ChangeResourceGroup', + ], + 'DescribeSolutionInstanceConfiguration' => [ + 'summary' => 'Queries the default configurations of a solution.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '189350', + 'abilityTreeNodes' => [ + 'FEATUREdiskFDS0SW', + ], + ], + 'parameters' => [ + [ + 'name' => 'SolutionId', + 'in' => 'query', + 'schema' => [ + 'title' => '解决方案ID', + 'description' => 'The ID of the solution.', + 'type' => 'string', + 'required' => true, + 'example' => 'sln-xxxxx', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Parameters', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '配置查询参数', + 'description' => 'The parameters.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'ParameterKey' => [ + 'description' => 'The key of the parameter.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '***', + ], + 'ParameterValue' => [ + 'description' => 'The value of the parameter.'."\n" + ."\n" + .'> The Parameters parameter is optional. If you specify Parameters, you must specify ParameterValue.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '***', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 100, + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => 'The client token that is used to ensure the idempotency of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeSlnInstanceConfigurationResponse', + 'description' => 'DescribeSlnInstanceConfigurationResponse.', + 'type' => 'object', + 'properties' => [ + 'Data' => [ + 'description' => 'The returned data.', + 'type' => 'array', + 'items' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'any', + 'description' => 'The returned data.'."\n", + 'example' => '[]', + ], + ], + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + [ + 'errorCode' => 'AssumeRoleFail.solution', + 'errorMessage' => 'Assume role fail, please check RamRole for EBS Laboratory already exist and policy is correct.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Data\\": [\\n {\\n \\"key\\": \\"[]\\"\\n }\\n ],\\n \\"RequestId\\": \\"11B55F58-D3A4-4A9B-9596-342420D0****\\"\\n}","type":"json"}]', + 'title' => 'DescribeSolutionInstanceConfiguration', + ], + 'QueryDedicatedBlockStorageClusterDiskThroughputStatus' => [ + 'summary' => 'Query the throughput status of a dedicated block storage cluster disk which has been set through the SetDedicatedBlockStorageClusterDiskThroughput API.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '207585', + 'abilityTreeNodes' => [ + 'FEATUREdisk1O4P8E', + ], + ], + 'parameters' => [ + [ + 'name' => 'QosRequestId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the request of SetDedicatedBlockStorageClusterDiskThroughput api.', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => [], + 'example' => 'A37597B5-BB99-19B3-85EA-4C2B91F0****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The region ID of the dedicated block storage cluster.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that the value is unique among different requests. The ClientToken value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).', + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'QueryDbscDiskQosStatusResponse', + 'description' => 'QueryDbscDiskQosStatusResponse', + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the throughput after setting the throughput by SetDedicatedBlockStorageClusterDiskThroughput api.'."\n" + ."\n" + .'- SUCCESS: The throughput has been successfully set.'."\n" + .'- RUNNING: The throughput is currently being set.'."\n" + .'- WAIT(): The throughput is waiting to be set.'."\n" + .'- FAIL(): The throughput setting has failed.', + 'type' => 'string', + 'enumValueTitles' => [ + 'SUCCESS' => 'SUCCESS', + 'RUNNING' => 'RUNNING', + 'WAIT' => 'WAIT', + 'FAIL' => 'FAIL', + ], + 'example' => 'RUNNING', + ], + 'RequestId' => [ + 'title' => '请求ID。无论调用接口成功与否,我们都会返回请求 ID。', + 'description' => 'The ID of the request.', + 'type' => 'string', + 'example' => 'A37597A6-BB99-19B3-85EA-4C2B91F0****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"Running\\",\\n \\"RequestId\\": \\"A37597A6-BB99-19B3-85EA-4C2B91F0****\\"\\n}","type":"json"}]', + 'title' => 'QueryDedicatedBlockStorageClusterDiskThroughputStatus', + ], + 'SetDedicatedBlockStorageClusterDiskThroughput' => [ + 'summary' => 'In the elastic type dedicated block storage cluster, you can easily achieve the specified throughput (Bps) for the target disk. You only need to set the cloud disk ID and the target throughput, simplifying the process of configuring.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'DiskId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the disk.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'd-bp67acfmxazb4p****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The region ID of disk.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Bps', + 'in' => 'formData', + 'schema' => [ + 'description' => 'Target throughput.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '100', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that the value is unique among different requests. The ClientToken value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).', + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Response', + 'description' => 'Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID。无论调用接口成功与否,我们都会返回请求 ID。', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '17EE62D8-064E-5404-8B0D-72122478****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"17EE62D8-064E-5404-8B0D-72122478****\\"\\n}","type":"json"}]', + 'title' => 'SetDedicatedBlockStorageClusterDiskThroughput', + ], + 'ListReports' => [ + 'summary' => 'Queries historical reports of a specific application.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '200638', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + ], + ], + 'parameters' => [ + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'Query token (Token), the value is the NextToken parameter value returned from the previous API call.', + 'type' => 'string', + 'required' => false, + 'example' => 'a6792e832ff0XXXXX', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => 'Token方式最大个数。', + 'description' => 'Maximum number of items for Token-based pagination.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时设置的每页行数。', + 'description' => 'Number of rows per page when performing paginated queries.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '100', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'title' => '分页模式查询时的页数。', + 'description' => 'Page number for paginated queries.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'Region ID. You can call [DescribeRegions](~~354276~~) to query the list of regions supported by Block Storage Data Insights.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the application.', + 'type' => 'string', + 'required' => false, + 'example' => 'app-xxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeAppHistoryReportsResponse', + 'description' => 'DescribeAppHistoryReportsResponse', + 'type' => 'object', + 'properties' => [ + 'HistoryReports' => [ + 'title' => 'historyReports', + 'description' => 'Historical reports.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => 'Application name.', + 'type' => 'string', + 'example' => 'default', + ], + 'ReportId' => [ + 'description' => 'Report ID.', + 'type' => 'string', + 'example' => 'report-e19c7b597f5fXX', + ], + 'ReportTime' => [ + 'description' => 'Report generation time.', + 'type' => 'string', + 'example' => '2024-10-07T02:09:17Z', + ], + 'SubscribePeriod' => [ + 'description' => 'Report subscription period.', + 'type' => 'string', + 'example' => 'Weekly', + ], + 'ReportName' => [ + 'description' => 'Report name.', + 'type' => 'string', + 'example' => 'default-2024-09-30~2024-10-07-Usage Report', + ], + ], + ], + ], + 'NextToken' => [ + 'title' => '查询凭证(Token),取值为上一次API调用返回的NextToken参数值。', + 'description' => 'Query token (Token), the value is the NextToken parameter value returned from the previous API call.', + 'type' => 'string', + 'example' => 'a6792e832ff0XXXX', + ], + 'PageNumber' => [ + 'title' => '分页模式查询时的页数。', + 'description' => 'Page number for paginated queries.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'title' => '分页模式查询时的单页记录数量。', + 'description' => 'Number of records per page for paginated queries.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TotalCount' => [ + 'title' => '总个数', + 'description' => 'Total count.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'RequestId' => [ + 'description' => 'Request ID, an identifier generated by Alibaba Cloud for this request.', + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"HistoryReports\\": [\\n {\\n \\"AppName\\": \\"default\\",\\n \\"ReportId\\": \\"report-e19c7b597f5fXX\\",\\n \\"ReportTime\\": \\"2024-10-07T02:09:17Z\\",\\n \\"SubscribePeriod\\": \\"Weekly\\",\\n \\"ReportName\\": \\"default-2024-09-30~2024-10-07-Usage Report\\"\\n }\\n ],\\n \\"NextToken\\": \\"a6792e832ff0XXXX\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","type":"json"}]', + 'title' => 'ListReports', + 'translator' => 'machine', + ], + 'GetReport' => [ + 'summary' => 'Centralized Role: Obtain User Usage Report with reportId', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '209319', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + ], + ], + 'parameters' => [ + [ + 'name' => 'ReportId', + 'in' => 'formData', + 'schema' => [ + 'title' => 'ReportType=history时,必须传入ReportId,根据ReportId查询历史报告。', + 'description' => 'When ReportType=history, ReportId is required to query historical reports based on ReportId.', + 'type' => 'string', + 'required' => false, + 'example' => 'report-74fbea80e802xxxx', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => [ + 'title' => '', + 'description' => 'Region name.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ReportType', + 'in' => 'query', + 'schema' => [ + 'title' => '可选值:history/present', + 'description' => 'Optional values: history/present.', + 'type' => 'string', + 'required' => false, + 'example' => 'history', + ], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'title' => '可选值,只在ReportType=present时AppName才会生效', + 'description' => 'Optional, AppName only takes effect when ReportType=present.', + 'type' => 'string', + 'required' => false, + 'example' => 'App1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'GetReportResponse', + 'description' => 'GetReportResponse.', + 'type' => 'object', + 'properties' => [ + 'Datas' => [ + 'description' => 'Data Details.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Title' => [ + 'description' => 'Data Title.', + 'type' => 'string', + 'example' => 'disk_count_percent_by_category', + ], + 'Data' => [ + 'description' => 'Data.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Labels' => [ + 'description' => 'Data Labels.', + 'type' => 'object', + 'example' => '{'."\n" + .' "category": "cloud"'."\n" + .'}', + ], + 'DataPoints' => [ + 'description' => 'Data Points.', + 'type' => 'object', + 'example' => '{'."\n" + .' "1726416000": 0.44,'."\n" + .' "1726502400": 0.44,'."\n" + .' "1726588800": 0.44,'."\n" + .' "1726675200": 0.44,'."\n" + .' "1726761600": 0.43,'."\n" + .' "1726848000": 0.43,'."\n" + .' "1726934400": 0.43,'."\n" + .' "1727020800": 0.43'."\n" + .'}', + ], + ], + ], + ], + ], + ], + ], + 'RequestId' => [ + 'description' => 'Request ID.', + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Datas\\": [\\n {\\n \\"Title\\": \\"disk_count_percent_by_category\\",\\n \\"Data\\": [\\n {\\n \\"Labels\\": {\\n \\"category\\": \\"cloud\\"\\n },\\n \\"DataPoints\\": {\\n \\"1726416000\\": 0.44,\\n \\"1726502400\\": 0.44,\\n \\"1726588800\\": 0.44,\\n \\"1726675200\\": 0.44,\\n \\"1726761600\\": 0.43,\\n \\"1726848000\\": 0.43,\\n \\"1726934400\\": 0.43,\\n \\"1727020800\\": 0.43\\n }\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","type":"json"}]', + 'title' => 'Get User Cloud Disk Usage Report', + 'translator' => 'machine', + ], + 'DescribeUserTagKeys' => [ + 'summary' => 'Centralized Role: Query User Disk Snapshot tagKeys', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '253920', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'NextToken', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The query token returned by this call (Token).', + 'type' => 'string', + 'required' => false, + 'example' => 'f07b150eadfa1d7a', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'formData', + 'schema' => [ + 'description' => 'Number of items per page in paginated queries. The maximum value is 100.'."\n" + ."\n" + .'Default value:'."\n" + ."\n" + .'- If no value is set or the set value is less than 10, the default is 10.'."\n" + ."\n" + .'- If the set value is greater than 100, the default is 100.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'TagFilterKey', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The tagKey for filtering the query.', + 'type' => 'string', + 'required' => false, + 'example' => 'tagKey', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The ID of the region to which the resource belongs. You can call [DescribeRegions](~~25609~~) to view the latest list of Alibaba Cloud regions.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeLensUserTagKeyResponse', + 'description' => 'DescribeLensUserTagKeyResponse', + 'type' => 'object', + 'properties' => [ + 'TagKeys' => [ + 'description' => 'List of matching tag keys.', + 'type' => 'array', + 'items' => [ + 'description' => 'List of matching tag keys.', + 'type' => 'string', + 'example' => '{\'TagKey\': []}', + ], + ], + 'NextToken' => [ + 'description' => 'The token for the next query. An empty NextToken indicates there are no more results.', + 'type' => 'string', + 'example' => 'f07b150eadfa1d7a', + ], + 'RequestId' => [ + 'description' => 'Request ID.', + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + 'MaxResults' => [ + 'description' => 'Number of items per page in paginated queries. The maximum value is 100.'."\n" + ."\n" + .'Default value:'."\n" + ."\n" + .'- If no value is set or the set value is less than 10, the default is 10.'."\n" + ."\n" + .'- If the set value is greater than 100, the default is 100.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TagKeys\\": [\\n \\"{\'TagKey\': []}\\"\\n ],\\n \\"NextToken\\": \\"f07b150eadfa1d7a\\",\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\",\\n \\"MaxResults\\": 10\\n}","type":"json"}]', + 'title' => 'DescribeUserTagKeys', + 'description' => '## Interface Description'."\n" + .'Query the tag key-value pairs of user\'s cloud disk and snapshot. The search scope can be narrowed down by using filterTagKey.', + 'translator' => 'machine', + ], + 'DescribeUserTagValues' => [ + 'summary' => 'Centralized Role: Query User Disk and Snapshot tagValues', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '253922', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'TagKey', + 'in' => 'formData', + 'schema' => [ + 'title' => '标签键。最多包含20个子项。', + 'description' => 'Tag key.', + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'formData', + 'schema' => [ + 'title' => '查询凭证(Token)。取值为上一次调用该接口返回的NextToken参数值,初次调用接口时无需设置该参数。如果设置了NextToken,则请求参数PageSize和PageNumber将失效,且返回数据中的TotalCount无效。', + 'description' => 'Query token (Token). The value should be the NextToken parameter value from the previous call to this interface. This parameter is not required for the initial call. If NextToken is set, the PageSize and PageNumber request parameters become invalid, and the TotalCount in the response data is also invalid.', + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAdDWBF2', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'formData', + 'schema' => [ + 'title' => '分页查询时每页行数。最大值为100。'."\n" + ."\n" + .'默认值:'."\n" + ."\n" + .'- 当不设置值或设置的值小于10时,默认值为10。'."\n" + ."\n" + .'- 当设置的值大于100时,默认值为100。', + 'description' => 'Number of items per page in a paginated query. The maximum value is 100.'."\n" + ."\n" + .'Default value:'."\n" + ."\n" + .'- If no value is set or the set value is less than 10, the default value is 10.'."\n" + ."\n" + .'- If the set value is greater than 100, the default value is 100.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'TagFilterValue', + 'in' => 'formData', + 'schema' => [ + 'description' => 'Tag content filter', + 'type' => 'string', + 'required' => false, + 'example' => 'keyValue', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => [ + 'title' => '一致性复制组所属的地域ID。', + 'description' => 'The region ID of the consistency replication group.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-beijing', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeLensUserTagValueResponse', + 'description' => 'DescribeLensUserTagValueResponse', + 'type' => 'object', + 'properties' => [ + 'TagValues' => [ + 'title' => '标签键对应的标签值。', + 'description' => 'Tag values corresponding to the tag key.', + 'type' => 'array', + 'items' => [ + 'title' => '标签键对应的标签值。', + 'description' => 'Tag values corresponding to the tag key.', + 'type' => 'string', + 'example' => '[\'90349\']', + ], + ], + 'NextToken' => [ + 'title' => '查询凭证(Token)。取值为上一次调用该接口返回的NextToken参数值,初次调用接口时无需设置该参数。如果设置了NextToken,则请求参数PageSize和PageNumber将失效,且返回数据中的TotalCount无效。', + 'description' => 'Query token (Token). The value should be the NextToken parameter value from the previous call to this interface. This parameter is not required for the initial call. If NextToken is set, the PageSize and PageNumber request parameters become invalid, and the TotalCount in the response data is also invalid.', + 'type' => 'string', + 'example' => 'NextToken', + ], + 'RequestId' => [ + 'title' => '请求ID。无论调用接口成功与否,我们都会返回请求 ID。', + 'description' => 'Request ID. We return the request ID regardless of whether the API call was successful or not.', + 'type' => 'string', + 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + ], + 'MaxResults' => [ + 'description' => 'Number of items per page in a paginated query. The maximum value is 100.'."\n" + ."\n" + .'Default value:'."\n" + ."\n" + .'- If no value is set or the set value is less than 10, the default value is 10.'."\n" + ."\n" + .'- If the set value is greater than 100, the default value is 100.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TagValues\\": [\\n \\"[\'90349\']\\"\\n ],\\n \\"NextToken\\": \\"NextToken\\",\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\",\\n \\"MaxResults\\": 10\\n}","type":"json"}]', + 'title' => 'DescribeUserTagValues', + 'description' => '## Interface Description'."\n" + ."\n" + .'> The dedicated block storage cluster feature is currently supported in the following regions: South China 2 (Heyuan), Indonesia (Jakarta), and South China 1 (Shenzhen).'."\n" + ."\n" + .'- The request parameters act as a filter, with a logical AND relationship. If any parameter is empty, the filter does not take effect.'."\n" + .'- For paginated queries, it is recommended to use the MaxResults and NextToken parameters. Usage instructions: When querying the first page, set only MaxResults to limit the number of returned entries. The NextToken in the response will serve as the token for querying subsequent pages. When querying subsequent pages, set the NextToken parameter to the value obtained from the previous response, and set MaxResults to limit the number of returned entries.', + 'translator' => 'machine', + ], + 'DeleteApp' => [ + 'summary' => '中心化角色:删除App', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '193443', + 'abilityTreeNodes' => [ + 'FEATUREdisk7F2R1Z', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Owner', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'anchashi', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'app-xxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'LensResponse', + 'description' => 'LensResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1F58EB6E-7B7A-5437-9612-F14D50822A61', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1F58EB6E-7B7A-5437-9612-F14D50822A61\\"\\n}","type":"json"}]', + ], + 'DescribeApps' => [ + 'summary' => '中心化角色:查询App信息', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '193441', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + 'FEATUREdiskLP80G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'AppNames', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '要查询的App列表,空值则查询所有App信息', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'default', + ], + 'required' => false, + 'example' => 'App1,App2', + 'maxItems' => 100, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Owner', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1485558146415628', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + [ + 'name' => 'AppIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'app-25603551', + ], + 'required' => false, + 'maxItems' => 100, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'DescribeAppsResponse', + 'description' => 'DescribeAppsResponse', + 'type' => 'object', + 'properties' => [ + 'AppInfos' => [ + 'title' => 'App信息。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AppName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'app1', + ], + 'AppTags' => [ + 'title' => '用户自定义标签,多个标签用', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'ebs', + ], + 'TagValue' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'test', + ], + ], + ], + 'example' => 'default', + ], + 'SubscribeStatus' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'Subscribe', + ], + 'SubscribePeriod' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'Weekly', + ], + 'Description' => [ + 'description' => '', + 'type' => 'string', + 'example' => '', + ], + 'ReportSendEnabled' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'SlsSendEnabled' => [ + 'description' => '', + 'type' => 'boolean', + ], + 'EventBridgeSendEnabled' => [ + 'description' => '', + 'type' => 'boolean', + ], + 'MonitorSendEnabled' => [ + 'description' => '', + 'type' => 'boolean', + ], + 'ModifyTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2025-11-14T02:11:32Z', + ], + 'Default' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'AppId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'app-bd5e3533', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'A1C00637-AC84-5EFD-89B5-D5CE39F0F2B1', + ], + 'Code' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'OK', + ], + 'UserCode' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'success', + ], + 'Success' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'True', + ], + 'HttpStatusCode' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '200', + ], + 'DynamicCode' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'OK', + ], + 'DynamicMessage' => [ + 'description' => '', + 'type' => 'string', + 'example' => '-', + ], + 'AccessDeniedDetail' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'None', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AppInfos\\": [\\n {\\n \\"AppName\\": \\"app1\\",\\n \\"AppTags\\": [\\n {\\n \\"TagKey\\": \\"ebs\\",\\n \\"TagValue\\": \\"test\\"\\n }\\n ],\\n \\"SubscribeStatus\\": \\"Subscribe\\",\\n \\"SubscribePeriod\\": \\"Weekly\\",\\n \\"Description\\": \\"这个app用于统计云盘全网用量\\",\\n \\"ReportSendEnabled\\": true,\\n \\"SlsSendEnabled\\": true,\\n \\"EventBridgeSendEnabled\\": true,\\n \\"MonitorSendEnabled\\": true,\\n \\"ModifyTime\\": 0,\\n \\"Default\\": true,\\n \\"AppId\\": \\"app-bd5e3533\\"\\n }\\n ],\\n \\"RequestId\\": \\"A1C00637-AC84-5EFD-89B5-D5CE39F0F2B1\\",\\n \\"Code\\": \\"OK\\",\\n \\"UserCode\\": \\"OK\\",\\n \\"Message\\": \\"success\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 200,\\n \\"DynamicCode\\": \\"OK\\",\\n \\"DynamicMessage\\": \\"-\\",\\n \\"AccessDeniedDetail\\": \\"None\\"\\n}","type":"json"}]', + ], + 'CreateApp' => [ + 'summary' => '中心化角色:创建App', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '193444', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + 'FEATUREdiskLP80G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => [ + 'title' => 'App名称', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'App1', + ], + ], + [ + 'name' => 'AppTags', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '用户自定义标签,多个标签用', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'controlledBy', + ], + 'TagValue' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'ear', + ], + ], + 'required' => false, + ], + 'required' => true, + 'example' => 'default', + 'maxItems' => 100, + ], + ], + [ + 'name' => 'SubscribeStatus', + 'in' => 'query', + 'schema' => [ + 'title' => 'App使用报告订阅状态', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'Subscribe', + ], + ], + [ + 'name' => 'SubscribePeriod', + 'in' => 'query', + 'schema' => [ + 'title' => 'App使用报告发送间隔', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'Weekly', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'title' => 'App简介', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'ReportSendEnabled', + 'in' => 'query', + 'schema' => [ + 'title' => '发送报告到邮箱和站内信', + 'description' => '', + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Owner', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1/0', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '123e4567-e89b-12d3-a456-42665544****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'LensResponse', + 'description' => 'LensResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'E604ABBF-FD0F-5080-BE2B-BCF674A9E941', + ], + 'Code' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'OK', + ], + 'UserCode' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'successful', + ], + 'Success' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'True', + ], + 'HttpStatusCode' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '200', + ], + 'DynamicCode' => [ + 'description' => '', + 'type' => 'string', + 'example' => '200', + ], + 'DynamicMessage' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'https://check-result-file-sh.oss-cn-shanghai.aliyuncs.com/j6if7e3w217z31q/j6if7e3w217z31q.sql.zip?Expires=1753331032&OSSAccessKeyId=LTAI5tKUErVCETM4ev9SELNb&Signature=vOXj4E1%2FCqncWcDtu3UxxuOcyh0%3D', + ], + 'AccessDeniedDetail' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'None', + ], + 'AppId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'app-bd5e3533', + ], + 'AppName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'TestApp_g5t', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + [ + 'errorCode' => 'App.NumberExceed', + 'errorMessage' => 'The number of apps exceeded.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E604ABBF-FD0F-5080-BE2B-BCF674A9E941\\",\\n \\"Code\\": \\"OK\\",\\n \\"UserCode\\": \\"OK\\",\\n \\"Message\\": \\"successful\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 200,\\n \\"DynamicCode\\": \\"200\\",\\n \\"DynamicMessage\\": \\"-\\",\\n \\"AccessDeniedDetail\\": \\"None\\",\\n \\"AppId\\": \\"app-bd5e3533\\",\\n \\"AppName\\": \\"TestApp_g5t\\"\\n}","type":"json"}]', + ], + 'ModifyApp' => [ + 'summary' => '中心化角色:修改App', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '193442', + 'abilityTreeNodes' => [ + 'FEATUREdisk2F270T', + 'FEATUREdiskLP80G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'AppName', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'title' => 'App名称', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'App1', + ], + ], + [ + 'name' => 'AppTags', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '用户自定义标签', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'key', + ], + 'TagValue' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'value', + ], + ], + 'required' => false, + ], + 'required' => true, + 'example' => 'default', + 'maxItems' => 100, + ], + ], + [ + 'name' => 'SubscribeStatus', + 'in' => 'query', + 'schema' => [ + 'title' => 'App使用报告订阅状态', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'Subscribe', + ], + ], + [ + 'name' => 'SubscribePeriod', + 'in' => 'query', + 'schema' => [ + 'title' => 'App使用报告发送间隔', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'Weekly', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'title' => 'App简介', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'This is description.', + ], + ], + [ + 'name' => 'ReportSendEnabled', + 'in' => 'query', + 'schema' => [ + 'title' => '发送报告到邮箱和站内信', + 'description' => '', + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-shanghai', + ], + ], + [ + 'name' => 'Owner', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'dev789`', + ], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => [ + 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', + ], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'app-xxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'LensResponse', + 'description' => 'LensResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + ], + 'Code' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'OK', + ], + 'UserCode' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'OK', + ], + 'Message' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'successful', + ], + 'Success' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'HttpStatusCode' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '200', + ], + 'DynamicCode' => [ + 'description' => '', + 'type' => 'string', + 'example' => '200', + ], + 'DynamicMessage' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'https://check-result-file-sh.oss-cn-shanghai.aliyuncs.com/gcqe6nn722rw1g5/gcqe6nn722rw1g5.diff.zip?Expires=1750651377&OSSAccessKeyId=LTAI5tKUErVCETM4ev9SELNb&Signature=55f4Rcml1vjydPgiv5c9KRdSGQo%3D', + ], + 'AccessDeniedDetail' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'None', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The parameter %s is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.Conflict', + 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + [ + 'errorCode' => 'InvalidParameter.Format', + 'errorMessage' => 'Specified parameter format is not valid.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + 403 => [ + [ + 'errorCode' => 'Forbidden', + 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'errorCode' => 'Forbidden.Action', + 'errorMessage' => 'User is not authorized to operate this action.', + ], + [ + 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'LastTokenProcessing', + 'errorMessage' => 'The last token request is processing.', + ], + [ + 'errorCode' => 'NoPermission.SLR', + 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + [ + 'errorCode' => 'OperationDenied', + 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + [ + 'errorCode' => 'InvalidApi.NotFound', + 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'errorCode' => 'NoSuchResource', + 'errorMessage' => 'The specified resource does not exist.', + ], + ], + 429 => [ + [ + 'errorCode' => 'BLOCK.LimitedRequest', + 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 500 => [ + [ + 'errorCode' => 'InternalError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + 504 => [ + [ + 'errorCode' => 'RequestTimeout', + 'errorMessage' => 'The request is timeout, please try again later.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"Code\\": \\"OK\\",\\n \\"UserCode\\": \\"OK\\",\\n \\"Message\\": \\"successful\\",\\n \\"Success\\": true,\\n \\"HttpStatusCode\\": 200,\\n \\"DynamicCode\\": \\"200\\",\\n \\"DynamicMessage\\": \\"-\\",\\n \\"AccessDeniedDetail\\": \\"None\\"\\n}","type":"json"}]', + ], + ], + 'endpoints' => [ + [ + 'regionId' => 'cn-qingdao', + 'endpoint' => 'ebs.cn-qingdao.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing', + 'endpoint' => 'ebs.cn-beijing.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhangjiakou', + 'endpoint' => 'ebs.cn-zhangjiakou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhengzhou-jva', + 'endpoint' => 'ebs.cn-zhengzhou-jva.aliyuncs.com', + ], + [ + 'regionId' => 'cn-huhehaote', + 'endpoint' => 'ebs.cn-huhehaote.aliyuncs.com', + ], + [ + 'regionId' => 'cn-wulanchabu', + 'endpoint' => 'ebs.cn-wulanchabu.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou', + 'endpoint' => 'ebs.cn-hangzhou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai', + 'endpoint' => 'ebs.cn-shanghai.aliyuncs.com', + ], + [ + 'regionId' => 'cn-nanjing', + 'endpoint' => 'ebs.cn-nanjing.aliyuncs.com', + ], + [ + 'regionId' => 'cn-fuzhou', + 'endpoint' => 'ebs.cn-fuzhou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen', + 'endpoint' => 'ebs.cn-shenzhen.aliyuncs.com', + ], + [ + 'regionId' => 'cn-heyuan', + 'endpoint' => 'ebs.cn-heyuan.aliyuncs.com', + ], + [ + 'regionId' => 'cn-guangzhou', + 'endpoint' => 'ebs.cn-guangzhou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-chengdu', + 'endpoint' => 'ebs.cn-chengdu.aliyuncs.com', + ], + [ + 'regionId' => 'cn-wuhan-lr', + 'endpoint' => 'ebs.cn-wuhan-lr.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hongkong', + 'endpoint' => 'ebs.cn-hongkong.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-1', + 'endpoint' => 'ebs.ap-northeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-2', + 'endpoint' => 'ebs.ap-northeast-2.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-1', + 'endpoint' => 'ebs.ap-southeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-2', + 'endpoint' => 'ebs.ap-southeast-2.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-3', + 'endpoint' => 'ebs.ap-southeast-3.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-5', + 'endpoint' => 'ebs.ap-southeast-5.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-6', + 'endpoint' => 'ebs.ap-southeast-6.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-7', + 'endpoint' => 'ebs.ap-southeast-7.aliyuncs.com', + ], + [ + 'regionId' => 'us-southeast-1', + 'endpoint' => 'ebs.us-southeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'na-south-1', + 'endpoint' => 'ebs.na-south-1.aliyuncs.com', + ], + [ + 'regionId' => 'eu-central-1', + 'endpoint' => 'ebs.eu-central-1.aliyuncs.com', + ], + [ + 'regionId' => 'eu-west-1', + 'endpoint' => 'ebs.eu-west-1.aliyuncs.com', + ], + [ + 'regionId' => 'us-west-1', + 'endpoint' => 'ebs.us-west-1.aliyuncs.com', + ], + [ + 'regionId' => 'us-east-1', + 'endpoint' => 'ebs.us-east-1.aliyuncs.com', + ], + [ + 'regionId' => 'me-central-1', + 'endpoint' => 'ebs.me-central-1.aliyuncs.com', + ], + [ + 'regionId' => 'me-east-1', + 'endpoint' => 'ebs.me-east-1.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing-finance-1', + 'endpoint' => 'ebs.cn-beijing-finance-1.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen-finance-1', + 'endpoint' => 'ebs.cn-shenzhen-finance-1.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai-finance-1', + 'endpoint' => 'ebs.cn-shanghai-finance-1.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou-finance', + 'endpoint' => 'ebs.cn-hangzhou-finance.aliyuncs.com', + ], + ], +]; |
