diff options
Diffstat (limited to 'data/en_us/ebs')
| -rw-r--r-- | data/en_us/ebs/2021-07-30/api-docs.php | 18856 |
1 files changed, 7184 insertions, 11672 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 index 7322d17..35e22b5 100644 --- a/data/en_us/ebs/2021-07-30/api-docs.php +++ b/data/en_us/ebs/2021-07-30/api-docs.php @@ -1,535 +1,225 @@ <?php return [ 'version' => '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'ebs', - 'version' => '2021-07-30', - ], + '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, + 'children' => ['ListReplicaEdgeSupported', 'CreateDiskReplicaPair', 'ModifyDiskReplicaPair', 'DescribeDiskReplicaPairs'], 'type' => 'directory', - 'children' => [ - 'CreateDedicatedBlockStorageCluster', - 'DescribeDedicatedBlockStorageClusters', - 'ModifyDedicatedBlockStorageClusterAttribute', - 'DescribeDedicatedBlockStorageClusterDisks', - 'QueryDedicatedBlockStorageClusterInventoryData', - ], - ], - [ - 'id' => 276893, - 'title' => null, - 'type' => 'directory', - 'children' => [ - 'CreateEnterpriseSnapshotPolicy', - 'DescribeEnterpriseSnapshotPolicy', - 'UpdateEnterpriseSnapshotPolicy', - 'BindEnterpriseSnapshotPolicy', - 'UnbindEnterpriseSnapshotPolicy', - 'DeleteEnterpriseSnapshotPolicy', - ], + 'title' => 'Replication pairs', ], [ - 'id' => 276900, - 'title' => null, + 'children' => ['CreateDiskReplicaGroup', 'DescribeDiskReplicaGroups', 'ModifyDiskReplicaGroup'], 'type' => 'directory', - 'children' => [ - 'ApplyLensService', - 'DescribeLensServiceStatus', - 'CancelLensService', - 'DescribeLensMonitorDisks', - 'DescribeEvents', - 'DescribeMetricData', - 'DescribeDiskMonitorDataList', - 'DescribeDiskMonitorData', - 'DescribeDiskEvents', - ], + 'title' => 'Replication groups', ], [ - 'id' => 276910, - 'title' => null, + 'children' => ['ApplyLensService', 'DescribeLensServiceStatus', 'CancelLensService', 'DescribeLensMonitorDisks'], 'type' => 'directory', - 'children' => [ - 'UpdateSolutionInstanceAttribute', - ], + 'title' => 'EBS lens', ], [ - 'id' => 276912, - 'title' => null, - 'type' => 'directory', 'children' => [ - 'TagResources', - 'ListTagResources', - 'UntagResources', - 'ChangeResourceGroup', - 'DescribeSolutionInstanceConfiguration', - 'QueryDedicatedBlockStorageClusterDiskThroughputStatus', - 'SetDedicatedBlockStorageClusterDiskThroughput', - 'ListReports', - 'GetReport', - 'DescribeUserTagKeys', - 'DescribeUserTagValues', + 'DescribeSolutionInstanceConfiguration', 'ListReports', 'GetReport', 'AddDiskReplicaPair', 'BindEnterpriseSnapshotPolicy', 'ChangeResourceGroup', 'ClearPairDrill', 'ClearReplicaGroupDrill', 'CreateApp', 'CreateDedicatedBlockStorageCluster', 'CreateDiagnoseReport', 'CreateEnterpriseSnapshotPolicy', 'DeleteApp', 'DeleteDiskReplicaGroup', 'DeleteDiskReplicaPair', 'DeleteEnterpriseSnapshotPolicy', 'DescribeApps', 'DescribeDedicatedBlockStorageClusterDisks', 'DescribeDedicatedBlockStorageClusters', 'DescribeDiagnoseReport', + 'DescribeDiskMonitorData', 'DescribeDiskReplicaPairProgress', 'DescribeEnterpriseSnapshotPolicy', 'DescribeEvents', 'DescribeMetricData', 'DescribePairDrills', 'DescribeRegions', 'DescribeReplicaGroupDrills', 'DescribeUserTagKeys', 'DescribeUserTagValues', 'FailoverDiskReplicaGroup', 'FailoverDiskReplicaPair', 'ListTagResources', 'ModifyApp', 'ModifyDedicatedBlockStorageClusterAttribute', 'QueryDedicatedBlockStorageClusterDiskThroughputStatus', 'QueryDedicatedBlockStorageClusterInventoryData', 'RemoveDiskReplicaPair', 'ReprotectDiskReplicaGroup', 'ReprotectDiskReplicaPair', + 'SetDedicatedBlockStorageClusterDiskThroughput', 'StartDiskReplicaGroup', 'StartDiskReplicaPair', 'StartPairDrill', 'StartReplicaGroupDrill', 'StopDiskReplicaGroup', 'StopDiskReplicaPair', 'TagResources', 'UnbindEnterpriseSnapshotPolicy', 'UntagResources', 'UpdateEnterpriseSnapshotPolicy', 'UpdateSolutionInstanceAttribute', ], - ], - [ - 'id' => 0, - 'title' => '其它', 'type' => 'directory', - 'children' => [ - 'DeleteApp', - 'DescribeApps', - 'CreateApp', - 'ModifyApp', - ], + 'title' => 'Others', ], ], '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', - ], + 'AddDiskReplicaPair' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '61960', - 'abilityTreeNodes' => [ - 'FEATUREdisk0EX8WR', - ], + 'operationType' => 'create', + 'abilityTreeCode' => '115801', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], ], 'parameters' => [ [ - 'name' => 'ResourceType', + 'name' => 'RegionId', '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', - ], + 'schema' => ['description' => 'The region ID of the replication pair-consistent group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ - 'name' => 'AcceptLanguage', + 'name' => 'ReplicaGroupId', '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', - ], + 'schema' => ['description' => 'The ID of the replication pair-consistent group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pg-myreplica****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ReplicaPairId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - 'default' => 'cn-shanghai', - ], + '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****', 'title' => ''], + ], + [ + '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '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' => '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', - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****'], ], ], ], ], '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.', - ], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.GroupStatusCannotAddPair', 'errorMessage' => 'The pair cannot be added in group current status.', 'description' => 'The replication pair cannot be added to the replication pair-consistent group while the group is in the current state.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.PairGroupAZoneConflict', 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', 'description' => 'The operation is not supported while the replication pair-consistent group and the replication pair do not belong to the same region and zone.'], + ['errorCode' => 'OperationDenied.PairGroupStatusConflict', 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', 'description' => 'The operation is not supported while the state of the replication pair is not the same as that of the replication pair-consistent group.'], + ['errorCode' => 'OperationDenied.PairInAnotherGroup', 'errorMessage' => 'The operation is not allowed because pair is already in another group.', 'description' => 'The operation is not supported while the replication pair is added to another replication pair-consistent group.'], + ['errorCode' => 'OperationDenied.PairInitializing', 'errorMessage' => 'The operation is not allowed due to pair initializing, please try again later.', 'description' => 'The operation is not supported while the replication pair is being initialized. Try again later.'], + ['errorCode' => 'OperationDenied.PairStatusCannotAddToGroup', 'errorMessage' => 'The pair cannot be added in pair current status.', 'description' => 'The replication pair cannot be added to the replication pair-consistent group while the pair is in the current state.'], + ['errorCode' => 'OperationDenied.QuotaExceed', 'errorMessage' => 'The operation is not allowed due to quota exceed.', 'description' => 'The quota for performing this operation has been exceeded.'], + ['errorCode' => 'OperationDenied.PairsExceedInGroup', 'errorMessage' => 'The operation is not allowed due to too much pair in the group.', 'description' => 'The operation is not supported while the maximum number of replication pairs in the replication pair-consistent group has been exceeded.'], + ['errorCode' => 'OperationDenied.GroupTotalDiskCapacityLimit', 'errorMessage' => 'The disk space in the replication pair-consistent group exceeds the upper limit.', 'description' => 'The disk space in the replication pair-consistent group exceeds the upper limit.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ], + [ + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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', + '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.', + '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", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDiskReplicaPair'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:AddDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], ], + ], + 'ApplyLensService' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '186462', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'abilityTreeCode' => '138241', + 'abilityTreeNodes' => ['FEATUREdisk2F270T', 'FEATUREdiskLP80G7'], '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', - ], - ], - ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'ListReplicaPairEdgeResponse', - 'description' => 'ListReplicaPairEdgeResponse', + 'title' => '', + 'description' => 'Schema of Response', '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', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****'], ], + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value 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' => '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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'InvalidApi.NotFound', - 'errorMessage' => 'Specified api is not found, please check your url and method.', - ], - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'title' => 'Activate EBS lens', + 'summary' => 'Activates EBS Lens (CloudLens for EBS).', + 'changeSet' => [ + ['createdAt' => '2023-03-22T01:59:35.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ApplyLensService'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ApplyLensService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","type":"json"}]', + ], + 'BindEnterpriseSnapshotPolicy' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -538,696 +228,179 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '42802', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '159099', + 'abilityTreeNodes' => ['FEATUREdiskTL976Y'], ], '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', - ], + 'schema' => ['title' => '', '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' => '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', + 'name' => 'PolicyId', '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', - ], + 'schema' => ['title' => '', 'description' => 'The id of the policy.', 'type' => 'string', 'required' => true, 'example' => 'esp-xxx'], ], [ - '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', + 'name' => 'DiskTargets', '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", + 'title' => 'the disk targets', + 'description' => 'The list of disks.', '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, - ], + 'items' => ['description' => 'The id of a disk.', 'type' => 'string', 'required' => false, 'example' => 'd-xxx', 'title' => ''], 'required' => false, - 'maxItems' => 21, + 'maxItems' => 10, ], ], [ - 'name' => 'EnableRtc', + 'name' => 'ClientToken', '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', - ], + '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => 'Response', + 'description' => 'Response', '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****', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'EF4CA176-3358-5B74-B317-B1908B4B1F7D'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IdempotentParameterMismatch', - 'errorMessage' => 'The specified parameter has changed while using an already used clientToken.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], '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****', - ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"EF4CA176-3358-5B74-B317-B1908B4B1F7D\\"\\n}","errorExample":""},{"type":"xml","example":"<BindEnterpriseSnapshotPolicyResponse>\\n <RequestId>xxx</RequestId>\\n</BindEnterpriseSnapshotPolicyResponse>","errorExample":""}]', + 'title' => 'BindEnterpriseSnapshotPolicy', + 'summary' => 'Bind disks into a enterprise-level snapshot policy.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:BindEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], ], ], ], ], - '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', - ], + 'CancelLensService' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', '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', - ], - ], + 'abilityTreeCode' => '138257', + 'abilityTreeNodes' => ['FEATUREdisk2F270T', 'FEATUREdiskLP80G7'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => '', + '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****', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****'], ], + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'title' => 'Cancel EBS lens', + 'summary' => 'Cancels EBS Lens (CloudLens for EBS).', + 'changeSet' => [ + ['createdAt' => '2023-03-22T01:59:35.000Z', 'description' => 'Error codes changed'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelLensService'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:CancelLensService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","type":"json"}]', + ], + 'ChangeResourceGroup' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1237,430 +410,197 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'abilityTreeCode' => '48741', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'abilityTreeCode' => '152482', + 'abilityTreeNodes' => ['FEATUREdiskFDS0SW'], ], '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', - ], + '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' => 'ReplicaPairId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the replication pair.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pair-cn-dsa****', - ], + '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' => 'ClientToken', + 'name' => 'ResourceId', '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****', - ], + 'schema' => ['title' => '', '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' => 'OneShot', + 'name' => 'NewResourceGroupId', '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', - ], + 'schema' => ['title' => '', '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => 'TagResponse', + 'description' => 'TagResponse'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A37597A6-BB99-19B3-85EA-4C2B91F0****', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.StandbyDeviceAttached', - 'errorMessage' => 'The secondary disk is attached.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], + ['errorCode' => 'OperationDenied.QuotaExceed', 'errorMessage' => 'The quota of tags on resource is beyond permitted range.', 'description' => ''], ], 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.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'InvalidResourceType.NotFound', 'errorMessage' => 'The ResourceType provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified ResourceId is not found in our records.', 'description' => ''], + ['errorCode' => 'InvalidResourceGroup.NotFound', 'errorMessage' => 'The ResourceGroup provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'MissingParameter.ResourceGroup', 'errorMessage' => 'The parameter - Resource Group should not be null', 'description' => ''], + ['errorCode' => 'MissingParameter.ResourceType', 'errorMessage' => 'The parameter - ResourceType should not be null', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], '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****', - ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","type":"json"}]', + 'title' => 'ChangeResourceGroup', + 'summary' => 'Changes the resource group to which an Elastic Block Storage (EBS) resource belongs.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ChangeResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - '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', - ], + 'ClearPairDrill' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '71806', - 'abilityTreeNodes' => [ - 'FEATUREdiskAQUAFH', - 'FEATUREdiskVW208V', - ], + 'operationType' => 'delete', + 'abilityTreeCode' => '186459', + '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 reverse replication feature must be enabled from the region where the secondary disk is located.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + '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', 'title' => ''], ], [ - 'name' => 'ReplicaPairId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the replication pair.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pair-cn-dsa****', - ], - ], - [ - 'name' => 'ClientToken', + 'name' => 'PairId', '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****', - ], + 'schema' => ['title' => '', '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' => 'ReverseReplicate', + 'name' => 'DrillId', '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', - ], + 'schema' => ['title' => '', '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' => 'Schema of Response', + 'title' => '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****', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '20758A-585D-4A41-A9B2-28DA8F4F****'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], + ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + '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', + 'summary' => 'Clears the disaster recovery drills that were initiated from the secondary disk of a replication pair and deletes the auto-created drill disks.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:ClearPairDrill', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#PairId}'], + ], + ], + ], ], - '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', - ], + 'ClearReplicaGroupDrill' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1669,1671 +609,575 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '71755', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '189138', + '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', - ], + 'schema' => ['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' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ReplicaPairId', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the replication pair.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pair-cn-dsa****', - ], + 'schema' => ['title' => '', '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' => 'ClientToken', + 'name' => 'DrillId', '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****', - ], + 'schema' => ['title' => '', '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' => 'Schema of Response', - 'description' => 'The schema of the response.'."\n", + 'title' => '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****', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + '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', + '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.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:ClearReplicaGroupDrill', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#GroupId}'], + ], + ], + ], ], - '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', - ], + 'CreateApp' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '118925', - 'abilityTreeNodes' => [ - 'FEATUREdiskAQUAFH', - 'FEATUREdiskVW208V', - ], + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '193444', + 'abilityTreeNodes' => ['FEATUREdisk2F270T', 'FEATUREdiskLP80G7'], ], 'parameters' => [ [ - 'name' => 'ReplicaPairId', + 'name' => 'AppName', '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', - ], + 'schema' => ['title' => '', 'description' => 'The name of the App.', 'type' => 'string', 'required' => true, 'example' => 'App1'], ], [ - 'name' => 'RegionId', + 'name' => 'AppTags', 'in' => 'query', + 'style' => 'repeatList', '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", + 'title' => '', + 'description' => 'The user-defined tags. Multiple tags are separated by.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'controlledBy', 'title' => ''], + 'TagValue' => ['description' => 'The tag value of the dedicated cluster.', 'type' => 'string', 'required' => false, 'example' => 'ear', 'title' => ''], ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', ], - ], - ], - ], - '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.', + 'required' => true, + 'example' => 'default', + 'maxItems' => 100, ], ], [ - [ - '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.', - ], + 'name' => 'SubscribeStatus', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The subscription status of the App usage report. Valid values:'."\n" + .'- UnSubscribe'."\n" + .'- Subscribe.', 'type' => 'string', 'required' => true, 'example' => 'Subscribe'], ], - 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + [ + 'name' => 'SubscribePeriod', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The send interval of the App usage report. Valid values:'."\n" + .'- Weekly'."\n" + .'- Biweekly'."\n" + .'- Monthly.'."\n" + .'Default value: Weekly.', 'type' => 'string', 'required' => true, 'example' => 'Weekly'], ], - ], - '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' => [], + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the App.', 'type' => 'string', 'required' => false, 'example' => 'test'], ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '48744', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', + [ + 'name' => 'ReportSendEnabled', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Specifies whether to send reports to email and internal messages.', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], - ], - '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', - ], + 'schema' => ['description' => 'The region ID. You can call [DescribeRegions](~~2680071~~) to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ReplicaPairId', + 'name' => 'Owner', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the replication pair.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pair-cn-dsa****', - ], + 'schema' => ['description' => 'The Alibaba Cloud UID of the baseline owner.', 'type' => 'string', 'required' => false, 'example' => '1/0', 'title' => ''], ], [ '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****', - ], + 'schema' => ['title' => '', 'description' => 'A string generated by the server that serves as a request identifier for the client.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The schema of the response.'."\n", + 'title' => '', + 'description' => 'LensResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A37597A6-BB99-19B3-85EA-4C2B91F0****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E604ABBF-FD0F-5080-BE2B-BCF674A9E941', 'title' => ''], + 'Code' => ['description' => 'The status code. A value of 200 indicates success.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'UserCode' => ['description' => 'The status code.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'Message' => ['description' => 'The additional information. If the request is successful, success is returned. If the request fails, a specific error code is returned.', 'type' => 'string', 'example' => 'successful', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the App was created successfully. Valid values: true: The App was created successfully. false: The App failed to be created.', 'type' => 'boolean', 'example' => 'True', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The error code description.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'DynamicCode' => ['description' => 'The dynamic error code.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'DynamicMessage' => ['description' => 'The dynamic message. This parameter is not in use. Ignore this parameter.', 'type' => 'string', 'example' => '-', 'title' => ''], + 'AccessDeniedDetail' => ['description' => 'The detailed reason why access was denied.', 'type' => 'string', 'example' => 'None', 'title' => ''], + 'AppId' => ['description' => 'The App ID.', 'type' => 'string', 'example' => 'app-bd5e3533', 'title' => ''], + 'AppName' => ['description' => 'The App name.', 'type' => 'string', 'example' => 'TestApp_g5t', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ['errorCode' => 'App.NumberExceed', 'errorMessage' => 'The number of apps exceeded.', 'description' => ''], + ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'title' => 'Create an app', + 'summary' => 'Centralized role: Creates an App.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:CreateApp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + '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"}]', + ], + 'CreateDedicatedBlockStorageCluster' => [ + 'summary' => 'Creates a dedicated block storage cluster by calling the CreateDedicatedBlockStorageCluster operation with parameters such as Azone, Capacity, Type, and PeriodUnit.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '42727', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '116777', + 'abilityTreeNodes' => ['FEATUREdisk1O4P8E'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', ], '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', - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the dedicated block storage cluster. You can call [DescribeRegions](~~25609~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-heyuan'], ], [ - 'name' => 'MaxResults', + 'name' => 'Azone', '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', - ], + 'schema' => ['title' => '', 'description' => 'The zone ID of the dedicated block storage cluster. You can call [DescribeZones](~~25610~~) to query the zone list.', 'type' => 'string', 'required' => true, 'example' => 'cn-heyuan-b'], ], [ - 'name' => 'NextToken', + 'name' => 'DbscName', '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****', - ], + 'schema' => ['title' => '', 'description' => 'The name of the dedicated block storage cluster.', 'type' => 'string', 'required' => true, 'example' => 'myDBSCCluster'], ], [ - 'name' => 'PairIds', + 'name' => 'Capacity', '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****', - ], + 'schema' => ['title' => '', 'description' => 'The capacity of the dedicated block storage cluster. Valid values: 61440 to 2334720 GiB (2280 TiB). Minimum increment: 12288 GiB.'."\n" + ."\n" + .'> When the capacity of the dedicated block storage cluster is less than 576 TiB, the maximum throughput per TiB does not exceed 52 MB/s. When the capacity of the dedicated block storage cluster is greater than 576 TiB, the maximum throughput per TiB does not exceed 26 MB/s.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '2334720', 'minimum' => '61440', 'example' => '61440'], ], [ - 'name' => 'Site', + 'name' => 'Type', '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" + 'title' => '', + 'description' => 'The performance type of the dedicated block storage cluster. Valid values:'."\n" ."\n" - .'* production: primary site'."\n" - .'* backup: secondary site'."\n" + .'- Standard: basic. You can create PL0 ESSDs in this type of dedicated block storage cluster.'."\n" + .'- Premium: performance. You can create PL1 ESSDs in this type of dedicated block storage cluster.'."\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" + .'Default value: Premium.'."\n" ."\n" - .'> If this parameter is set to`-`, replication pairs that are not added to any replication pair-consistent groups are returned.'."\n", + .'For more information about standard SSDs, see [ESSDs](~~122389~~).', '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', + 'required' => true, + 'enum' => ['Standard', 'Premium', 'Elastic'], + 'example' => 'Premium', ], ], [ '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***', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the resource group to which the dedicated block storage cluster belongs.', '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", + 'description' => 'The list of tags. A maximum of 20 tags can be specified.', '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', - ], + 'Key' => ['description' => 'The tag key of the dedicated block storage cluster.', 'type' => 'string', 'required' => true, 'example' => 'tag-key', 'title' => ''], + 'Value' => ['description' => 'The tag value of the dedicated block storage cluster.', 'type' => 'string', 'required' => true, 'example' => 'tag-value', 'title' => ''], ], 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', ], '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', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ReplicaGroupId', + 'name' => 'Period', '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****', - ], + 'schema' => ['description' => 'The subscription duration of the instance. Valid values: 6, 7, 8, 9, 10, 11, 12, 24, and 36.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '12', 'title' => ''], ], [ - 'name' => 'ReplicaPairId', + 'name' => 'PeriodUnit', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the replication pair.'."\n", + 'title' => '', + 'description' => 'The unit of the subscription duration specified by the `Period` parameter. Only Month is supported.', 'type' => 'string', - 'required' => true, - 'example' => 'pair-cn-dsa****', + 'enum' => ['Month'], + 'required' => false, + 'example' => 'Month', ], ], [ - 'name' => 'ClientToken', + 'name' => 'DbscId', '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****', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => 'This parameter is deprecated.', 'type' => 'string', 'deprecated' => true, 'required' => false, 'example' => 'test1233', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => '', + '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****', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '20758A-585D-4A41-A9B2-28DA8F4F****'], + 'OrderId' => ['title' => '', 'description' => 'The order ID.', 'type' => 'string', 'example' => '50155660025****'], + 'DbscId' => ['title' => '', 'description' => 'The ID of the dedicated block storage cluster.', 'type' => 'string', 'example' => 'dbsc-f8z4d3k4nsgg9okb****'], ], + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'InvalidPayMethod', 'errorMessage' => 'The specified pay method is not valid.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => ''], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified ResourceIds are not found in our records.', 'description' => ''], + ['errorCode' => 'MissingParameter.ResourceType', 'errorMessage' => 'The parameter - ResourceType should not be null', 'description' => ''], + ['errorCode' => 'InvalidResourceGroup.NotFound', 'errorMessage' => 'The ResourceGroup provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', - ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"20758A-585D-4A41-A9B2-28DA8F4F****\\",\\n \\"OrderId\\": \\"50155660025****\\",\\n \\"DbscId\\": \\"dbsc-f8z4d3k4nsgg9okb****\\"\\n}","type":"json"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], ], - '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****', - ], + 'title' => 'Create a dedicated block storage cluster', + 'description' => '## Operation description'."\n" + ."\n" + .'- Dedicated Block Storage Cluster is a block storage service that is physically isolated from other public cloud block storage clusters and provides exclusive access to all cluster resources for the owner.<props="china"> For more information, see [What is Dedicated Block Storage Cluster](~~208883~~).</props>'."\n" + ."\n" + .'- Cloud disks created on a dedicated block storage cluster can be attached only to ECS instances in the same zone. Before you create a dedicated block storage cluster, plan the region and zone for the resources.'."\n" + ."\n" + .'- Dedicated block storage clusters are classified into basic and performance types. Select the appropriate cluster performance type based on your business requirements when you create a cluster.'."\n" + ."\n" + .'- You are charged for creating a dedicated block storage cluster.<props="china"> For more information, see [Billing](~~208884~~).</props>', + 'changeSet' => [ + ['createdAt' => '2023-06-26T09:01:29.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-05-17T03:57:02.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-04-06T09:57:07.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-12-31T03:01:55.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-12-08T03:24:31.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDedicatedBlockStorageCluster'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:CreateDedicatedBlockStorageCluster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/*'], ], ], - ], - ], - '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.', + 'additionalActions' => [ + ['action' => 'ram:CreateServiceLinkedRole', 'validationType' => 'always'], ], ], ], - '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', - ], + 'CreateDiagnoseReport' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', - 'abilityTreeCode' => '186458', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'abilityTreeCode' => '227401', + 'abilityTreeNodes' => ['FEATUREdisk2F270T'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DiagnoseType', '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', - ], + 'schema' => ['description' => 'The diagnosis type. The only valid value is:'."\n" + ."\n" + .'- Performance: performance diagnosis', 'type' => 'string', 'required' => true, 'example' => 'Performance', 'title' => ''], ], [ - 'name' => 'PairId', + 'name' => 'ResourceId', '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', - ], + 'schema' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'd-asb1s8***', 'title' => '', 'required' => false], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceType', '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.', - ], + 'schema' => ['description' => 'The resource type. The only valid value is:'."\n" + ."\n" + .'- Disk: a cloud disk', 'type' => 'string', 'example' => 'Disk', 'title' => '', 'required' => false], ], [ - [ - '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', + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The start time for the diagnosis, in UTC. The time must be in the ISO 8601 format (yyyy-MM-ddTHH:mm:ssZ).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '2024-09-01T02:26:00Z'], ], - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'EndTime', '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', - ], + 'schema' => ['description' => 'The end time for the diagnosis, in UTC. The time must be in the ISO 8601 format (yyyy-MM-ddTHH:mm:ssZ).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '2024-09-07T16:49:25Z'], ], [ - 'name' => 'PairId', + 'name' => 'RegionId', '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', - ], + 'schema' => ['description' => 'The region ID. Call the [DescribeRegions](https://help.aliyun.com/zh/ecs/developer-reference/api-ebs-2021-07-30-describeregions?spm=a2c4g.11186623.0.i7) operation to find all regions supported by EBS Data Insight.', 'type' => 'string', 'required' => false, 'example' => 'cn-zhangjiakou', 'title' => ''], ], [ - 'name' => 'DrillId', + 'name' => 'ClientToken', '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', - ], + 'schema' => ['description' => 'A client-generated token to ensure request idempotency. This lets you safely retry the request without creating a duplicate diagnostic report. The token can contain a maximum of 64 ASCII characters.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Response', - 'description' => 'Schema of Response'."\n", + 'title' => 'CreateDiagnoseReportResponse', + 'description' => 'The response object.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '20758A-585D-4A41-A9B2-28DA8F4F****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], + 'ReportId' => ['description' => 'The report ID.', 'type' => 'string', 'example' => 'report-qe2s****', 'title' => ''], ], + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation 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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => 'CreateDiagnoseReport', + 'summary' => 'Creates a diagnostic report for a specified resource.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"ReportId\\": \\"report-qe2s****\\"\\n}","type":"json"}]', ], 'CreateDiskReplicaGroup' => [ 'summary' => 'Creates a replication pair-consistent group.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3345,1054 +1189,783 @@ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + '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', - ], + 'schema' => ['description' => 'The ID of the region where the replication pair-consistent group resides. This is the same as the region of the production site.', 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ 'name' => 'SourceZoneId', 'in' => 'query', - 'schema' => [ - 'description' => 'The zone ID of the primary site.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-beijing-f', - ], + 'schema' => ['description' => 'The ID of the zone where the production site is located.', 'type' => 'string', 'required' => true, 'example' => 'cn-beijing-f', 'title' => ''], ], [ 'name' => 'DestinationRegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the secondary site.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the region where the disaster recovery site is located.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ 'name' => 'DestinationZoneId', 'in' => 'query', - 'schema' => [ - 'description' => 'The zone ID of the secondary site.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai-e', - ], + 'schema' => ['description' => 'The ID of the zone where the disaster recovery site is located.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai-e', 'title' => ''], ], [ '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, - ], + 'schema' => ['description' => 'The name of the replication pair-consistent group. The name must be 2 to 128 characters in length. It must start with a letter or a Chinese character, and cannot start with `http://` or `https://`. It can contain digits, colons (:), underscores (\\_), and hyphens (-).', 'type' => 'string', 'maxLength' => 128, 'minLength' => 2, 'required' => false, 'example' => 'myreplicagrouptest', 'title' => ''], ], [ '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.', - ], + '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://`.', 'type' => 'string', 'required' => false, 'example' => 'This is description.', 'title' => ''], ], [ '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****', - ], + 'schema' => ['description' => 'A client token to ensure the idempotence of the request. Generate a unique value from your client for this parameter. The \\`ClientToken\\` parameter 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****', 'title' => ''], ], [ 'name' => 'RPO', 'in' => 'query', 'schema' => [ - 'description' => 'The RPO of the replication pair-consistent group. Unit: seconds. Valid value: 900.'."\n", + 'description' => 'The recovery point objective (RPO) of the replication pair-consistent group, in seconds. The only supported value is 900.', + 'enumValueTitles' => [900 => '900'], 'type' => 'integer', 'format' => 'int64', 'required' => false, - 'enumValueTitles' => [ - 900 => '900', - ], 'example' => '900', + 'title' => '', ], ], [ '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', - ], + 'schema' => ['description' => 'The bandwidth in Kbps.'."\n" + ."\n" + .'> This parameter is not yet available.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'required' => false, 'example' => '5'], ], [ '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*******', - ], + 'schema' => ['description' => 'The ID of the resource group to which the replication pair-consistent group belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmvs*******', 'title' => ''], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => '标签列表,最多包含20个子项', - 'description' => 'The tags. Up to 20 tags are supported.'."\n", + 'title' => '', + 'description' => 'The tags to add to the resource. You can add up to 20 tags.', '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', - ], + 'Value' => ['description' => 'The value of the tag.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'tag-value'], + 'Key' => ['description' => 'The key of the tag.', 'type' => 'string', 'title' => '', '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", + 'description' => '', + 'title' => '', + 'example' => '', ], 'required' => false, 'maxItems' => 21, + 'example' => '', ], ], [ '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', - ], + 'schema' => ['description' => 'Specifies whether to enable replication time control (RTC). Valid values:'."\n" + ."\n" + .'- false: Disable RTC.'."\n" + ."\n" + .'- true: Enable RTC.'."\n" + ."\n" + .'Default value: false.'."\n" + ."\n" + .'> If you set this parameter to true, RTC is enabled for the replication pair-consistent group. RTC is also enabled for all asynchronous replication pairs that are added to the group.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'The schema of the response.'."\n", + 'description' => 'The response schema.', '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', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', 'title' => ''], + 'ReplicaGroupId' => ['description' => 'The ID of the replication pair-consistent group.', 'type' => 'string', 'example' => 'pg-xxxxxxx', 'title' => ''], ], + 'example' => '', ], ], ], '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' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.QuotaExceed', 'errorMessage' => 'The operation is not allowed due to quota exceed.', 'description' => 'The quota for performing this operation has been exceeded.'], + ['errorCode' => 'OperationDenied.TooMuchEmptyGroup', 'errorMessage' => 'Operation failed because of too many empty groups.', 'description' => 'You have created excessive empty replication pair-consistent groups.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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":""}]', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\",\\n \\"ReplicaGroupId\\": \\"pg-xxxxxxx\\"\\n}","type":"json"}]', 'title' => 'CreateDiskReplicaGroup', - 'description' => '## [](#)Usage notes'."\n" + 'description' => '## Operation Description'."\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" + .'Replication pair-consistent groups help you manage asynchronous replication for multiple disks in disaster recovery scenarios. You can centrally manage operations for these disks. The groups ensure that data on all disks can be recovered to the same point in time. This provides disaster recovery protection for one or more instances.'."\n" ."\n" - .'Take note of the following items:'."\n" + .'When you create a replication pair-consistent group, note the following:'."\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', + .'- For information about the regions that support replication pair-consistent groups, see [Async replication overview](~~314563~~).'."\n" + ."\n" + .'- Replication pair-consistent groups support asynchronous disaster recovery across zones in the same region or across regions.'."\n" + ."\n" + .'- A replication pair can be added to a replication pair-consistent group only if the pair and the group have the same data replication direction. This means their production regions, production zones, disaster recovery regions, and disaster recovery zones must be the same.'."\n" + ."\n" + .'- After a replication pair is added to a replication pair-consistent group, the original Recovery Point Object (RPO) of the pair becomes invalid. Data is then replicated based on the RPO of the group.', + 'changeSet' => [ + ['createdAt' => '2025-07-07T11:22:38.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-08T11:10:44.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-03T02:17:05.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-08-16T11:40:00.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDiskReplicaGroup'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:CreateDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/*'], + ], + ], + ], ], + ], + 'CreateDiskReplicaPair' => [ + 'summary' => 'Creates a disk replication pair.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '115793', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '42802', + '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', - ], + 'schema' => ['description' => 'The region ID of the replication pair.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'SourceZoneId', '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', - ], + 'schema' => ['description' => 'The zone ID of the source disk (primary disk).', 'type' => 'string', 'required' => true, 'example' => 'cn-beijing-f', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'DiskId', '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****', - ], + 'schema' => ['description' => 'The ID of the source disk (primary disk).', 'type' => 'string', 'required' => true, 'example' => 'd-iq80sgp4d0xbk24q****', 'title' => ''], ], [ - 'name' => 'GroupIds', + 'name' => 'DestinationRegionId', '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****', - ], + 'schema' => ['description' => 'The region ID of the destination disk (secondary disk). You can call the [DescribeRegions](~~354276~~) operation to query the regions that support asynchronous replication.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'Site', + 'name' => 'DestinationDiskId', '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', - ], + 'schema' => ['description' => 'The ID of the destination disk (secondary disk).', 'type' => 'string', 'required' => true, 'example' => 'd-sa1f82p58p1tdw9g****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'DestinationZoneId', 'in' => 'query', - 'schema' => [ - 'title' => '分页查询时的页码。', - 'description' => 'The number of the page to return.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], + 'schema' => ['description' => 'The zone ID of the destination disk (secondary disk).', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai-e', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'PairName', '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', - ], + 'schema' => ['description' => 'The name of the replication pair. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (\\_), periods (.), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'TestReplicaPair', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'Description', '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*****', - ], + 'schema' => ['description' => 'The description of the replication pair. The description must be 2 to 256 characters in length. It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'This is description.', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'ChargeType', '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***', - ], + 'schema' => ['description' => 'The billing method of the replication pair. Valid values:'."\n" + ."\n" + .'- PREPAY: subscription.'."\n" + ."\n" + .'- POSTPAY: pay-as-you-go.'."\n" + ."\n" + .'Default value: POSTPAY.', 'type' => 'string', 'required' => false, 'example' => 'PREPAY', 'title' => ''], + ], + [ + 'name' => 'Period', + 'in' => 'query', + 'schema' => ['description' => 'The subscription duration of the replication pair. This parameter is required when `ChargeType` is set to PREPAY. The unit of the duration is specified by `PeriodUnit`. Valid values: 1, 2, 3, 6, 12, 24, 36, and 60.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PeriodUnit', + 'in' => 'query', + 'schema' => ['description' => 'The unit of the subscription duration. Valid value: Month.', 'type' => 'string', 'required' => false, 'example' => 'Month', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'A client token to ensure the idempotence of the request. Generate a value from your client to make sure that the value is unique among different requests. The ClientToken parameter 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****', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth for asynchronous data replication between disks. The unit is Kbps. Valid values:'."\n" + ."\n" + .'- 10240'."\n" + ."\n" + .'- 20480'."\n" + ."\n" + .'- 51200'."\n" + ."\n" + .'- 102400'."\n" + ."\n" + .'Default value: 10240.'."\n" + .'When ChargeType is set to POSTPAY, you cannot specify this parameter. The system uses a value of 0, which means that the bandwidth is dynamically allocated based on data writes.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10240', 'title' => ''], + ], + [ + 'name' => 'RPO', + 'in' => 'query', + 'schema' => ['description' => 'The recovery point objective (RPO) of the replication pair. The unit is seconds. Currently, only 900 is supported.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '900', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the replication pair belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmvs****', 'title' => ''], ], [ '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", + 'title' => '', + 'description' => 'The list of tags. You can specify up to 20 tags.', 'type' => 'array', 'items' => [ - 'description' => 'The tag.'."\n", + 'description' => 'The tag information.', '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', - ], + 'Value' => ['description' => 'The value of the tag.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'TestValue'], + 'Key' => ['description' => 'The key of the tag.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'TestKey'], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, 'maxItems' => 21, + 'example' => '', ], ], + [ + 'name' => 'EnableRtc', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable replication time control (RTC). Valid values:'."\n" + ."\n" + .'- false: Disables RTC.'."\n" + ."\n" + .'- true: Enables RTC.'."\n" + ."\n" + .'Default value: false.'."\n" + ."\n" + .'> If the replication pair is added to a replication group, the setting of this parameter is the same as that of the replication group.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'description' => 'Schema of Response', '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', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', 'title' => ''], + 'ReplicaPairId' => ['description' => 'The ID of the replication pair.', 'type' => 'string', 'example' => 'pair-cn-dsa****', 'title' => ''], + 'OrderId' => ['description' => 'The order ID.', 'type' => 'string', 'example' => '123456****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The specified parameter has changed while using an already used clientToken.', 'description' => 'The request and a previous request contains the same client token but different parameters.'], + ], 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' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.QuotaExceed', 'errorMessage' => 'The operation is not allowed due to quota exceed.', 'description' => 'The quota for performing this operation has been exceeded.'], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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" + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\",\\n \\"ReplicaPairId\\": \\"pair-cn-dsa****\\",\\n \\"OrderId\\": \\"123456****\\"\\n}","type":"json"}]', + 'title' => 'CreateDiskReplicaPair', + 'description' => '## Description'."\n" ."\n" - .'To perform a paged query, specify the MaxResults and NextToken parameters.'."\n" + .'<props="china">'."\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', + .'Asynchronous replication is a feature that provides cross-region data protection using the data replication capabilities of Elastic Block Storage. The feature asynchronously replicates data from a disk in one region to another disk in a different region to provide cross-region disaster recovery and backup for your data. You can use this feature to build disaster recovery capabilities for critical services, protect database data, and improve business continuity. For more information about the feature notes and billing, see [Overview of asynchronous replication for disks](~~314563~~). The asynchronous replication feature is billed for bandwidth on a subscription basis. Pay-as-you-go billing for traffic is also supported.'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'<props="intl">'."\n" + ."\n" + .'Async replication is a feature that provides cross-region data protection based on the data replication capabilities of Elastic Block Storage (EBS). The feature asynchronously replicates data from a disk in one region to a disk in another region for disaster recovery. You can use this feature to build disaster recovery capabilities for critical services, protect database data, and improve business continuity. The async replication feature is billed for bandwidth on a subscription basis.'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'Currently, the asynchronous replication feature is available only for Enhanced SSD (ESSD) disks and has certain limitations.'."\n" + ."\n" + .'Before you create a replication pair, note the following:'."\n" + ."\n" + .'- Prepare a source disk (primary disk) and a destination disk (secondary disk). The source disk is the disk that you want to protect with disaster recovery, and the destination disk is the replication target. You can call the [CreateDisk](~~25513~~) operation to create the disks.'."\n" + ."\n" + .'- The secondary disk must be in a different region from the primary disk. For more information about the regions that support asynchronous replication, see [Overview of asynchronous replication for disks](~~314563~~).'."\n" + ."\n" + .'- This operation creates a replication pair between the primary and secondary disks. After you create the pair, you must call the [StartDiskReplicaPair](~~354205~~) operation to activate it. Activating the replication pair starts the periodic, cross-region data replication from the primary disk to the secondary disk.', + 'changeSet' => [ + ['createdAt' => '2025-07-07T11:22:38.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-29T08:24:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-08T11:10:44.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-03T02:17:05.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-13T03:44:43.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-08-29T07:13:41.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDiskReplicaPair'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:CreateDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/*'], + ], + ], + 'additionalActions' => [ + ['action' => 'ram:CreateServiceLinkedRole', 'validationType' => 'always'], + ], + ], ], + ], + 'CreateEnterpriseSnapshotPolicy' => [ + 'summary' => 'Creates an enterprise-level snapshot policy by calling CreateEnterpriseSnapshotPolicy.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '115799', - 'abilityTreeNodes' => [ - 'FEATUREdiskPPYCY9', - ], + 'abilityTreeCode' => '159104', + 'abilityTreeNodes' => ['FEATUREdisk493RYF'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the replication pair-consistent group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-beijing', - ], + 'schema' => ['title' => '', 'description' => 'The region ID. You can call DescribeRegions to query the regions that support asynchronous replication.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ReplicaGroupId', + 'name' => 'Name', '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****', - ], + 'schema' => ['title' => '', 'description' => 'The Policy Name.', 'type' => 'string', 'required' => true, 'example' => 'xx'], ], [ - 'name' => 'GroupName', + 'name' => 'TargetType', '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", + 'title' => '', + 'description' => 'The type. Valid values:'."\n" + ."\n" + .'- DISK', + 'enumValueTitles' => ['DISK' => 'DISK'], 'type' => 'string', - 'required' => false, - 'example' => 'myreplicagrouptest', + 'required' => true, + 'example' => 'DISK', ], ], [ - 'name' => 'Description', + 'name' => 'State', '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", + 'title' => '', + 'description' => 'The status. Valid values:'."\n" + ."\n" + .'- DISABLED'."\n" + .'- ENABLED', + 'enumValueTitles' => ['DISABLED' => 'DISABLED', 'ENABLED' => 'ENABLED'], 'type' => 'string', + 'example' => 'ENABLED', 'required' => false, - 'example' => 'This is description.', ], ], [ - 'name' => 'RPO', + 'name' => 'Desc', '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', - ], + 'schema' => ['title' => '', 'description' => 'The description.', 'type' => 'string', 'required' => false, 'example' => 'xxx'], ], [ - 'name' => 'ClientToken', + 'name' => 'Schedule', 'in' => 'query', + 'style' => 'json', '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****', + 'title' => '', + 'description' => 'The schedule rule.', + 'type' => 'object', + 'properties' => [ + 'CronExpression' => ['title' => '', 'description' => 'The cycle and time at which the policy is executed. Specify the value in a cron expression.'."\n" + ."\n" + .'For example, `0 0 4 1/1 * ?` specifies that the snapshot operation is performed at 4:00 AM every day, starting from the first day of each month.', 'type' => 'string', 'required' => true, 'example' => '0 0 */24 * * *'], + ], + 'required' => true, + 'example' => '', ], ], [ - 'name' => 'Bandwidth', + 'name' => 'RetainRule', 'in' => 'query', + 'style' => 'json', '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' => '-', + 'title' => '', + 'description' => 'The retention rule.', + 'type' => 'object', + 'properties' => [ + 'Number' => ['title' => '', 'description' => 'The number of snapshots to retain. Valid values: 1 to 256.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + 'TimeInterval' => ['title' => '', 'description' => 'The time interval of the retention rule. The unit is specified by the TimeUnit parameter. The value must be greater than 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '14'], + 'TimeUnit' => [ + 'title' => '', + 'description' => 'The unit of the retention time. Valid values:'."\n" + ."\n" + .'- DAYS'."\n" + .'- WEEKS', + 'enumValueTitles' => ['WEEKS' => 'WEEKS', 'DAYS' => 'DAYS'], + 'type' => 'string', + 'required' => false, + 'example' => 'DAYS', + ], + ], + 'required' => true, + 'example' => '', ], ], [ - 'name' => 'EnableRtc', + 'name' => 'StorageRule', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '是否开启RTC。', - 'description' => 'Whether to enable replication time control.'."\n", - 'type' => 'boolean', + 'title' => '', + 'description' => 'The advanced snapshot feature.', + 'type' => 'object', + 'properties' => [ + 'EnableImmediateAccess' => [ + 'title' => '', + 'description' => 'Specifies whether to enable instant access for snapshots. Valid values:'."\n" + ."\n" + .'- true'."\n" + .'- false', + 'enumValueTitles' => ['true' => 'true', 'false' => 'false'], + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], 'required' => false, - 'example' => 'true', + 'example' => '', ], ], - ], - 'responses' => [ - 200 => [ + [ + 'name' => 'CrossRegionCopyInfo', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => '', + 'description' => 'The snapshot replication information.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', + 'Enabled' => [ + 'title' => '', + 'description' => 'Specifies whether to enable cross-region replication. Valid values:'."\n" + ."\n" + .'- true'."\n" + .'- false', + 'enumValueTitles' => ['true' => 'true', 'false' => 'false'], + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + 'Regions' => [ + 'title' => '', + 'description' => 'The destination region information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The replication destination region information. This parameter is optional.', + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['title' => '', 'description' => 'The ID of the destination region for snapshot replication. You can invoke [DescribeDiskReplicaPairs](~~354206~~) to query the region information of existing asynchronous replication relationships.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + 'RetainDays' => ['title' => '', 'description' => 'The number of days to retain snapshots in the destination region. The value must be greater than 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '7'], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'example' => '', ], ], - ], - ], - ], - '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.', + 'required' => false, + 'example' => '', ], ], [ - [ - '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', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the replication pair-consistent group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-beijing', + 'title' => '', + 'description' => 'The tag key-value pairs. Valid values of n: 1 to 20.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '', 'description' => 'The tag key of the resource.', 'type' => 'string', 'required' => true, 'example' => 'tag-key'], + 'Value' => ['title' => '', 'description' => 'The tag value of the resource.', 'type' => 'string', 'required' => true, 'example' => 'tag-value'], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 10, + 'example' => '', ], ], [ - 'name' => 'ReplicaGroupId', + 'name' => 'ResourceGroupId', '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****', - ], + 'schema' => ['title' => '', 'description' => 'The resource group ID.', 'type' => 'string', 'required' => false, 'example' => '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 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****', - ], + 'schema' => ['description' => 'Ensures the idempotence of the request. Generate a parameter value from your client that is unique across different requests. ClientToken supports 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****', 'title' => ''], ], [ - 'name' => 'OneShot', + 'name' => 'SpecialRetainRules', 'in' => 'query', + 'style' => 'json', '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', + 'title' => '', + 'description' => 'The special retention rules.', + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'title' => '', + 'description' => 'Specifies whether to enable special retention. Valid values:'."\n" + ."\n" + .'- true'."\n" + .'- false', + 'enumValueTitles' => ['true' => 'true', 'false' => 'false'], + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'Rules' => [ + 'title' => '', + 'description' => 'The list of special retention rules.', + 'type' => 'array', + 'items' => [ + 'description' => 'The special retention rules.', + 'type' => 'object', + 'properties' => [ + 'SpecialPeriodUnit' => [ + 'title' => '', + 'description' => 'The period unit for specially retained snapshots. For example, if this parameter is set to WEEKS, the first snapshot of each week is specially retained. The retention duration is determined by TimeUnit and TimeInterval. Valid values:'."\n" + ."\n" + .'- WEEKS'."\n" + .'- MONTHS'."\n" + .'- YEARS', + 'enumValueTitles' => ['MONTHS' => 'MONTHS', 'YEARS' => 'YEARS', 'WEEKS' => 'WEEKS'], + 'type' => 'string', + 'example' => 'WEEKS', + 'required' => false, + ], + 'TimeInterval' => ['title' => '', 'description' => 'The time interval of the retention rule. The unit is specified by the TimeUnit parameter. The value must be greater than 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '14'], + 'TimeUnit' => [ + 'title' => '', + 'description' => 'The unit of the retention time for special snapshots. Valid values:'."\n" + ."\n" + .'- DAYS'."\n" + .'- WEEKS', + 'enumValueTitles' => ['WEEKS' => 'WEEKS', 'DAYS' => 'DAYS'], + 'type' => 'string', + 'example' => 'WEEKS', + 'required' => false, + ], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'example' => '', + ], + ], 'required' => false, - 'example' => 'false', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'title' => '', + 'description' => 'The response.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', - ], + 'PolicyId' => ['title' => '', 'description' => 'The snapshot policy ID.', 'type' => 'string', 'example' => 'esp-xxx'], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'F13483A9-17E2-5085-9B2E-2155B0487FF7'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.StandbyDeviceAttached', - 'errorMessage' => 'The secondary disk is attached.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PolicyId\\": \\"esp-xxx\\",\\n \\"RequestId\\": \\"F13483A9-17E2-5085-9B2E-2155B0487FF7\\"\\n}","type":"json"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], + ], + 'title' => 'Create an enterprise-level snapshot policy', + 'changeSet' => [ + ['createdAt' => '2024-10-08T07:16:45.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEnterpriseSnapshotPolicy'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:CreateEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/*'], + ], + ], + ], ], + ], + 'DeleteApp' => [ + 'summary' => 'Deletes an App for the centralized role.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4401,122 +1974,104 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '115796', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '193443', + 'abilityTreeNodes' => ['FEATUREdisk7F2R1Z'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the replication pair-consistent group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-beijing', - ], + 'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ReplicaGroupId', + 'name' => 'Owner', '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****', - ], + 'schema' => ['description' => 'The application owner.', 'type' => 'string', 'required' => false, 'example' => 'anchashi', 'title' => ''], ], [ '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****', - ], + 'schema' => ['title' => '', 'description' => 'A string generated by the server that serves as a client request identifier.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => false, 'example' => 'app-xxx', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => '', + 'description' => 'LensResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1F58EB6E-7B7A-5437-9612-F14D50822A61', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'title' => 'Delete an App', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:DeleteApp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1F58EB6E-7B7A-5437-9612-F14D50822A61\\"\\n}","type":"json"}]', + ], + 'DeleteDiskReplicaGroup' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4525,42 +2080,25 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '115797', - 'abilityTreeNodes' => [ - 'FEATUREdiskPPYCY9', - ], + 'operationType' => 'delete', + 'abilityTreeCode' => '115800', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], ], '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', - ], + 'schema' => ['description' => 'The region ID of the replication pair-consistent group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ 'name' => 'ReplicaGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the replication pair-consistent group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'group-myreplica****', - ], + '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****', 'title' => ''], ], [ '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****', - ], + '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****', 'title' => ''], ], ], 'responses' => [ @@ -4570,101 +2108,59 @@ '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****', - ], + '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.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' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.GroupHasPair', 'errorMessage' => 'The group cannot be deleted due to not empty.', 'description' => 'The replication pair-consistent group contains replication pairs and cannot be deleted.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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', + 'summary' => 'Deletes a replication pair-consistent group.', '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', + .'* 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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:DeleteDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], ], + ], + 'DeleteDiskReplicaPair' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4673,274 +2169,178 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '115794', - 'abilityTreeNodes' => [ - 'FEATUREdiskAQUAFH', - 'FEATUREdiskVW208V', - ], + 'operationType' => 'delete', + 'abilityTreeCode' => '48744', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], ], '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', - ], + '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', 'title' => ''], ], [ - 'name' => 'ReplicaGroupId', + 'name' => 'ReplicaPairId', '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****', - ], + 'schema' => ['description' => 'The ID of the replication pair.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pair-cn-dsa****', 'title' => ''], ], [ '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', - ], + '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '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****', - ], + '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' => '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' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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', + 'summary' => 'Deletes replication pairs.', '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', + .'* 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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:DeleteDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], ], + ], + 'DeleteEnterpriseSnapshotPolicy' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', - 'abilityTreeCode' => '115800', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'abilityTreeCode' => '159101', + 'abilityTreeNodes' => ['FEATUREdiskAAH44P'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the replication pair-consistent group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-beijing', - ], + 'schema' => ['title' => '', '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' => 'ReplicaGroupId', + 'name' => 'PolicyId', '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****', - ], + '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~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', - ], + '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The schema of the response.'."\n", + 'title' => 'Response', + 'description' => 'Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', - ], + 'RequestId' => ['title' => '', '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.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B9F716DF-FAFD-50FD-B962-BCE0C837639A\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteEnterpriseSnapshotPolicyResponse>\\n <RequestId>xxx</RequestId>\\n</DeleteEnterpriseSnapshotPolicyResponse>","errorExample":""}]', + 'title' => 'DeleteEnterpriseSnapshotPolicy', + 'summary' => 'Delete a enterprise-level snapshot policy.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:DeleteEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ], + ], + ], ], + ], + 'DescribeApps' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4950,929 +2350,411 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'list', - 'abilityTreeCode' => '189140', - 'abilityTreeNodes' => [ - 'FEATUREdiskVW208V', - 'FEATUREdiskAQUAFH', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '193441', + 'abilityTreeNodes' => ['FEATUREdisk2F270T', 'FEATUREdiskLP80G7'], ], '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', + 'name' => 'AppNames', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '演练ID。', - 'description' => 'The ID of the drill.'."\n", - 'type' => 'string', + 'title' => '', + 'description' => 'List of apps to query. If empty, all app information is queried.', + 'type' => 'array', + 'items' => ['description' => 'Application name.', 'type' => 'string', 'required' => false, 'example' => 'default', 'title' => ''], 'required' => false, - 'example' => 'pg-drill-xxxx', + 'example' => 'App1,App2', + 'maxItems' => 100, ], ], [ - 'name' => 'NextToken', + 'name' => 'RegionId', '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****', - ], + 'schema' => ['description' => 'Region ID. You can call [DescribeRegions](~~354276~~) to query the list of regions supported by EBS Data Insights.', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'Owner', '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', - ], + 'schema' => ['description' => 'User UID.', 'type' => 'string', 'required' => false, 'example' => '1485558146415628', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ClientToken', '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', - ], + 'schema' => ['title' => '', 'description' => 'A string generated by the server that serves as an identifier for the client request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'], ], [ - 'name' => 'PageNumber', + 'name' => 'AppIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '分页模式查询时的页数。', - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'The IDs of the apps to operate on. A formatted JSON array that supports up to 100 AppIds, separated by commas (,).', + 'type' => 'array', + 'items' => ['description' => 'The IDs of the apps to operate on. A formatted JSON array that supports up to 100 AppIds, separated by commas (,).', 'type' => 'string', 'required' => false, 'example' => 'app-25603551', 'title' => ''], 'required' => false, - 'example' => '5', + 'maxItems' => 100, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'DescribePairGroupDrillsResponse', - 'description' => 'Schema of Response'."\n", + 'title' => '', + 'description' => 'DescribeAppsResponse', 'type' => 'object', 'properties' => [ - 'Drills' => [ - 'description' => 'The information of disaster recovery drills that were performed on the replication pair-consistent group.'."\n", + 'AppInfos' => [ + 'title' => '', + 'description' => 'App information.', 'type' => 'array', 'items' => [ + 'description' => 'Detailed information about the application.', '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", + 'AppName' => ['description' => 'Optional value. AppName takes effect only when ReportType is set to present.', 'type' => 'string', 'example' => 'app1', 'title' => ''], + 'AppTags' => [ + 'title' => '', + 'description' => 'Tags contained in the user app.', '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', - ], + 'TagKey' => ['description' => 'Tag key.', 'type' => 'string', 'example' => 'ebs', 'title' => ''], + 'TagValue' => ['description' => 'Tag value.', 'type' => 'string', 'example' => 'test', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'example' => 'default', ], - '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', - ], + 'SubscribeStatus' => ['description' => 'Subscription status. Valid values:'."\n" + .'- Subscribe: subscribed.'."\n" + .'- UnSubscribe: not subscribed.', 'type' => 'string', 'example' => 'Subscribe', 'title' => ''], + 'SubscribePeriod' => ['description' => 'Report subscription period.', 'type' => 'string', 'example' => 'Weekly', 'title' => ''], + 'Description' => ['description' => 'Event description.', 'type' => 'string', 'example' => '这个app用于统计云盘全网用量', 'title' => ''], + 'ReportSendEnabled' => ['description' => 'Indicates whether report sending is enabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'SlsSendEnabled' => ['description' => 'Indicates whether SLS delivery is enabled.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'EventBridgeSendEnabled' => ['description' => 'Indicates whether EventBridge delivery is enabled.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'MonitorSendEnabled' => ['description' => 'Indicates whether Monitor delivery is enabled.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'ModifyTime' => ['description' => 'Modification time (UTC).', 'type' => 'integer', 'format' => 'int64', 'example' => '2025-11-14T02:11:32Z', 'title' => ''], + 'Default' => ['description' => 'Default time zone.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'AppId' => ['description' => 'Application ID.', 'type' => 'string', 'example' => 'app-bd5e3533', 'title' => ''], ], + 'title' => '', + 'example' => '', ], - ], - '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****', - ], + 'example' => '', + ], + 'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => 'A1C00637-AC84-5EFD-89B5-D5CE39F0F2B1', 'title' => ''], + 'Code' => ['description' => 'Internal error code.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'UserCode' => ['description' => 'User error code.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'Message' => ['description' => 'Message.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful.', 'type' => 'boolean', 'example' => 'True', 'title' => ''], + 'HttpStatusCode' => ['description' => 'HTTP status code.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'DynamicCode' => ['description' => 'Dynamic error code.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'DynamicMessage' => ['description' => 'Dynamic error message, used to replace the %s variable in the ErrMessage return parameter.', 'type' => 'string', 'example' => '-', 'title' => ''], + 'AccessDeniedDetail' => ['description' => 'Detailed reason for access denial.', 'type' => 'string', 'example' => 'None', 'title' => ''], ], + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation 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.', - ], - ], - ], - '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', + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], - ], - '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.', - ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', - ], - ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - '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****', - ], + 'title' => 'Query application details', + 'summary' => 'Centralized role: Query app information', + 'description' => '## API Description'."\n" + ."\n" + .'Query the tag key-value pairs of cloud disks and snapshots contained in user-defined apps. You can use filterTagKey to narrow the query scope.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeApps', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - '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', + '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\\": false,\\n \\"EventBridgeSendEnabled\\": false,\\n \\"MonitorSendEnabled\\": false,\\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"}]', ], - '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', - ], + 'DescribeDedicatedBlockStorageClusterDisks' => [ + 'summary' => 'Queries information about one or more cloud disks that you have created in a dedicated block storage cluster.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '116777', - 'abilityTreeNodes' => [ - 'FEATUREdisk1O4P8E', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'operationType' => 'get', + 'abilityTreeCode' => '124946', + 'abilityTreeNodes' => ['FEATUREdisk1O4P8E'], ], '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', - ], - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the dedicated block storage cluster. You can call [DescribeRegions](~~25609~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-heyuan'], ], [ - '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', + 'name' => 'MaxResults', '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, - ], + 'schema' => ['title' => '', 'description' => 'The maximum number of entries per page for a paged query. Maximum value: 500.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10'], ], [ - 'name' => 'Period', + 'name' => 'NextToken', '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', - ], - ], + 'schema' => ['title' => '', 'description' => 'The pagination token. Set this parameter to the NextToken value returned in the previous call. You do not need to set this parameter for the first request.', 'type' => 'string', 'required' => false, 'example' => 'AAAAAdDWBF2'], ], [ 'name' => 'DbscId', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'This parameter is deprecated.'."\n", - 'type' => 'string', - 'deprecated' => true, - 'required' => false, - 'example' => 'test1233', - ], + 'schema' => ['title' => '', 'description' => 'The dedicated block storage cluster ID.', 'type' => 'string', 'required' => true, 'example' => 'dbsc-cn-od43bf****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => '', + 'description' => 'Schema of Response', '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****', + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****'], + 'NextToken' => ['title' => '', 'description' => 'The pagination token returned in this call.', 'type' => 'string', 'example' => 'AAAAAdDWBF2'], + 'Disks' => [ + 'description' => 'The collection of cloud disk information.', + 'type' => 'object', + 'properties' => [ + 'Disk' => [ + 'title' => '', + 'description' => 'The collection of cloud disk information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The collection of cloud disk information.', + 'type' => 'object', + 'properties' => [ + 'DiskId' => ['description' => 'The cloud disk ID.', 'type' => 'string', 'example' => 'd-bp67acfmxazb4p****', 'title' => ''], + 'DiskName' => ['description' => 'The cloud disk name.', 'type' => 'string', 'example' => 'testDiskName', 'title' => ''], + 'Status' => ['description' => 'The cloud disk status. For more information, see [Cloud disk status](~~25689~~). Valid values:'."\n" + ."\n" + .'- In_use.'."\n" + .'- Available.'."\n" + .'- Attaching.'."\n" + .'- Detaching.'."\n" + .'- Creating.'."\n" + .'- ReIniting.', 'type' => 'string', 'example' => 'In_use', 'title' => ''], + 'Type' => ['description' => 'The type of the cloud disk. Valid values:'."\n" + ."\n" + .'- system: system cloud disk.'."\n" + .'- data: data cloud disk.', 'type' => 'string', 'example' => 'system', 'title' => ''], + 'PerformanceLevel' => ['description' => 'The performance level of the ESSD. Valid values:'."\n" + ."\n" + .'- PL0: a maximum of 10,000 random read/write IOPS per cloud disk.'."\n" + .'- PL1: a maximum of 50,000 random read/write IOPS per cloud disk.'."\n" + .'- PL2: a maximum of 100,000 random read/write IOPS per cloud disk.'."\n" + .'- PL3: a maximum of 1,000,000 random read/write IOPS per cloud disk.', 'type' => 'string', 'example' => 'PL0', 'title' => ''], + 'BdfId' => ['description' => 'This parameter is in invitational preview and is not publicly available.', 'type' => 'string', 'example' => 'null', 'title' => ''], + 'EnableAutoSnapshot' => ['description' => 'Indicates whether the automatic snapshot policy feature is enabled for the cloud disk.'."\n" + ."\n" + .'>This parameter is deprecated. After a cloud disk is created, the automatic snapshot policy feature is enabled by default. You only need to associate an automatic snapshot policy with the cloud disk.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'StorageSetId' => ['description' => 'The storage set ID.', 'type' => 'string', 'example' => 'ss-i-bp1j4i2jdf3owlhe****', 'title' => ''], + 'StorageSetPartitionNumber' => ['description' => 'The maximum number of partitions in the storage set.', 'type' => 'integer', 'format' => 'int32', 'example' => '11', 'title' => ''], + 'DeleteAutoSnapshot' => ['description' => 'Indicates whether automatic snapshots are deleted when the cloud disk is released. Valid values:'."\n" + ."\n" + .'- true: Automatic snapshots are deleted when the cloud disk is released.'."\n" + .'- false: Automatic snapshots are retained when the cloud disk is released.'."\n" + ."\n" + .'Snapshots created by calling [CreateSnapshot](~~25524~~) or by using the console are not affected by this parameter and are always retained.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'StorageClusterId' => ['description' => 'The ID of the dedicated block storage cluster to which the cloud disk belongs. If the cloud disk belongs to a public cloud block storage cluster, this value is empty.', 'type' => 'string', 'example' => 'dbsc-j5e1sf2vaf5he8m2****', 'title' => ''], + 'Encrypted' => ['description' => 'Indicates whether the cloud disk is encrypted.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'MountInstanceNum' => ['description' => 'The number of instances to which the shared storage is attached.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Description' => ['description' => 'The cloud disk description.', 'type' => 'string', 'example' => 'testDescription', 'title' => ''], + 'Device' => ['description' => 'The device name of the instance to which the cloud disk is attached, such as /dev/xvdb. Note the following items:'."\n" + ."\n" + .'- This parameter has a value only when the `Status` parameter is set to `In_use`. This parameter is empty in other states.'."\n" + ."\n" + .'- For cloud disks with the multi-attach feature enabled, this value is always empty. You can view all attachment information of the cloud disk from the returned `Attachment` list.'."\n" + ."\n" + .'> This parameter will be deprecated. To ensure code compatibility, do not use this parameter.', 'type' => 'string', 'example' => '/dev/xvdb', 'title' => ''], + 'Portable' => ['description' => 'Indicates whether the cloud disk is removable.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ImageId' => ['description' => 'The ID of the image used to create the ECS instance. This parameter has a value only for cloud disks created from an image. Otherwise, this value is empty. This value remains unchanged throughout the lifecycle of the cloud disk.', 'type' => 'string', 'example' => 'm-bp13aqm171qynt3u***', 'title' => ''], + 'KMSKeyId' => ['description' => 'The KMS key ID used by the cloud disk.', 'type' => 'string', 'example' => '0e478b7a-4262-4802-b8cb-00d3fb40****', 'title' => ''], + 'DeleteWithInstance' => ['description' => 'Indicates whether the cloud disk is released when the instance is released. Valid values:'."\n" + ."\n" + .'- true: The cloud disk is released when the instance is released.'."\n" + .'- false: The cloud disk is retained when the instance is released.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'DetachedTime' => ['description' => 'The time when the cloud disk was last detached.', 'type' => 'string', 'example' => '2021-06-07T21:01:22Z', 'title' => ''], + 'SourceSnapshotId' => ['description' => 'The ID of the snapshot used to create the cloud disk.'."\n" + ."\n" + .'If no snapshot was specified when the cloud disk was created, this value is empty. This value remains unchanged throughout the lifecycle of the cloud disk.', 'type' => 'string', 'example' => 's-bp67acfmxazb4p****', 'title' => ''], + 'InstanceId' => ['description' => 'The instance ID of the instance to which the cloud disk is mounted. Note the following items:'."\n" + ."\n" + .'- This parameter has a value only when the `Status` parameter is set to `In_use`. This parameter is empty in other states.'."\n" + ."\n" + .'- For cloud disks with the multi-attach attribute enabled, this value is always empty. You can view all mount information of the cloud disk from the returned `Attachment` list.', 'type' => 'string', 'example' => 'i-bp67acfmxazb4q****', 'title' => ''], + 'Size' => ['description' => 'The cloud disk size. Unit: GiB.', 'type' => 'integer', 'format' => 'int32', 'example' => '60', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the cloud disk.', 'type' => 'string', 'example' => 'cn-heyuan', 'title' => ''], + 'ZoneId' => ['description' => 'The zone ID of the cloud disk.', 'type' => 'string', 'example' => 'cn-heyuan-i', 'title' => ''], + 'AttachedTime' => ['description' => 'The time when the cloud disk was last attached. The time follows the [ISO 8601](~~25696~~) standard in the yyyy-MM-ddThh:mmZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-06-07T06:08:56Z', 'title' => ''], + 'Category' => ['description' => 'The category of the cloud disk or local disk is cloud_essd, which indicates an ESSD.', 'type' => 'string', 'example' => 'cloud_essd', 'title' => ''], + 'MultiAttach' => ['description' => 'Indicates whether the multi-attach feature is enabled for the cloud disk.', 'type' => 'string', 'example' => 'Disabled', 'title' => ''], + 'Tags' => [ + 'description' => 'The tags of the cloud disk.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags of the cloud disk.', + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'TestValue', 'title' => ''], + 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'TestKey', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'DiskChargeType' => ['description' => 'The billing method of the cloud disk. Valid values:'."\n" + ."\n" + .'- PrePaid: subscription.'."\n" + .'- PostPaid: pay-as-you-go.', 'type' => 'string', 'example' => 'PrePaid', 'title' => ''], + 'IOPS' => ['description' => 'The maximum number of read/write (I/O) operations per second. Unit: operations/s.', 'type' => 'integer', 'format' => 'int64', 'example' => '4000', 'title' => ''], + 'Throughput' => ['description' => 'The amount of data that can be transferred per unit of time. Unit: MB/s.', 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''], + 'ProvisionedIops' => ['description' => 'The provisioned read/write IOPS of the ESSD AutoPL cloud disk. Valid values: 0 to min{50000, 1000 × Capacity - Baseline performance}.'."\n" + ."\n" + .'Baseline performance = min{1,800 + 50 × Capacity, 50,000}.'."\n" + ."\n" + .'This parameter is supported only when `DiskCategory` is set to `cloud_auto`. For more information, see [ESSD AutoPL cloud disks](~~368372~~).', 'type' => 'integer', 'format' => 'int64', 'example' => '40000', 'title' => ''], + 'BurstingEnabled' => ['description' => 'Indicates whether the burst (performance burst) feature is enabled. Valid values:'."\n" + ."\n" + .'- true: Enabled.'."\n" + .'- false: Disabled.'."\n" + ."\n" + .'This parameter is supported only when `DiskCategory` is set to `cloud_auto`. For more information, see [ESSD AutoPL cloud disks](~~368372~~).', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], '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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - '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.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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" + '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"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], + ], + 'title' => 'Query cloud disks in a dedicated block storage cluster', + 'description' => '- The following two methods are supported to view returned data:'."\n" + .' - Method 1: Use `NextToken` to set a query token. Set its value to the `NextToken` value returned by the previous call to DescribeDisks, and use `MaxResults` to set the maximum number of entries per page.'."\n" + .' - Method 2: Use `PageSize` to set the number of entries per page, and use `PageNumber` to set the page number.'."\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', + .' You can use only one of the preceding methods. When a large number of entries are returned, we recommend that you use Method 1. If you set `NextToken`, the `PageSize` and `PageNumber` request parameters do not take effect, and `TotalCount` in the returned data is invalid.'."\n" + ."\n" + .'- Cloud disks with the multi-attach feature enabled can be attached to multiple instances. You can view all attachment information of a cloud disk based on the `Attachment` list in the response.'."\n" + ."\n" + .'When you invoke an API operation by using Cloud Assistant CLI, specify request parameters of different data types in the required formats. For more information, see [Parameter format of CLI](~~110340~~).', + 'changeSet' => [ + ['createdAt' => '2023-04-06T09:57:07.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDedicatedBlockStorageClusterDisks'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDedicatedBlockStorageClusterDisks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ], + ], + ], ], + ], + 'DescribeDedicatedBlockStorageClusters' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5883,32 +2765,18 @@ 'systemTags' => [ 'operationType' => 'get', 'abilityTreeCode' => '104950', - 'abilityTreeNodes' => [ - 'FEATUREdisk1O4P8E', - ], + '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' => '', - ], + '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' => '', - ], + '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', @@ -5917,13 +2785,7 @@ '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' => '', - ], + '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' => '', @@ -5934,7 +2796,7 @@ 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'title' => '专属集群状态列表,可同时设置多个状态', + 'title' => '', 'description' => 'The states of dedicated block storage clusters. Valid values:'."\n" ."\n" .'* Preparing'."\n" @@ -5944,70 +2806,43 @@ ."\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', - ], + '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', 'title' => ''], 'required' => false, - 'enumValueTitles' => [ - 'Running' => 'Running', - 'Offline' => 'Offline', - 'Expired' => 'Expired', - 'Preparing' => 'Preparing', - ], + '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', - ], + 'schema' => ['title' => '', '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]', + 'title' => '', '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', - ], + '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, + 'title' => '', ], 'required' => false, 'maxItems' => 21, @@ -6016,77 +2851,38 @@ [ '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****', - ], + 'schema' => ['title' => '', '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', - ], + 'schema' => ['title' => '', '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', - ], + 'schema' => ['title' => '', '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', - ], + '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', - ], + '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', - ], + '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', + 'title' => 'Schema of Response', 'description' => 'The response.'."\n", 'type' => 'object', 'properties' => [ @@ -6097,205 +2893,56 @@ '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' => '', - ], + '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' => '', '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' => '', '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', - ], + 'AvailableCapacity' => ['title' => '', 'description' => 'The available capacity of the dedicated block storage cluster. Unit: GiB.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '61440'], + 'TotalCapacity' => ['title' => '', 'description' => 'The total capacity of the dedicated block storage cluster. Unit: GiB.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '61440'], + 'DeliveryCapacity' => ['title' => '', 'description' => 'The capacity to be delivered for the dedicated block storage cluster. Unit: GiB.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'UsedCapacity' => ['title' => '', 'description' => 'The used capacity of the dedicated block storage cluster. Unit: GiB.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1440'], + 'ClusterDeliveryCapacity' => ['title' => '', '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' => '', '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' => '', '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' => '', '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' => '', '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', - ], + 'AliUid' => ['description' => 'The user ID.'."\n", 'type' => 'string', 'example' => '12345601234560***', 'title' => ''], + 'StorageDomain' => ['description' => 'StorageDomain'."\n", 'type' => 'string', 'example' => 'StorageDomain', 'title' => ''], + 'EnableThinProvision' => ['description' => 'Indicates whether Thin Provision is enabled.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'SizeOverSoldRatio' => ['description' => 'The capacity oversold ratio.'."\n", 'type' => 'number', 'format' => 'double', 'example' => '1.2', 'title' => ''], 'Tags' => [ 'title' => 'the dbsc tags', 'description' => 'The tags of the dedicated block storage cluster.'."\n", @@ -6304,324 +2951,334 @@ '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', - ], + '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'], ], + 'title' => '', ], ], - '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****', - ], + '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' => '', ], '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****', - ], + 'NextToken' => ['title' => '', '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' => 'RrequestId', '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.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidDiskCategory.NotSupported', 'errorMessage' => 'The specified disk category is not supported.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => ''], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified ResourceIds are not found in our records.', 'description' => ''], + ['errorCode' => 'InvalidResourceType.NotFound', 'errorMessage' => 'The ResourceType provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidZoneId.NotFound', 'errorMessage' => 'The specified ZoneId does not exist.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], '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":""}]', + '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\\": \\"12345601234560***\\",\\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', + 'summary' => 'Queries dedicated clusters.', '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', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDedicatedBlockStorageClusters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/*'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ], + ], + ], ], + ], + 'DescribeDiagnoseReport' => [ + 'summary' => 'Queries diagnostic reports.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '138430', - 'abilityTreeNodes' => [ - 'FEATUREdisk1O4P8E', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '227402', + 'abilityTreeNodes' => ['FEATUREdisk2F270T'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DiagnoseType', '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', - ], + 'schema' => ['title' => '', 'description' => 'The type of diagnosis. Valid values:'."\n" + ."\n" + .'- Performance: performance diagnostics', 'type' => 'string', 'example' => 'Performance', 'required' => false], ], [ - 'name' => 'DbscId', + 'name' => 'ResourceIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '专属集群ID', - 'description' => 'The ID of the dedicated block storage cluster.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'dbsc-cn-od43bf****', + 'title' => '', + 'description' => 'The resource ID.', + 'type' => 'array', + 'items' => ['description' => 'The list of resource IDs.', 'type' => 'string', 'required' => false, 'example' => 'd-bp14d1obw9qijunh8div', 'title' => ''], + 'required' => false, + 'example' => 'd-asb1s8***', + 'maxItems' => 100, ], ], [ - 'name' => 'DbscName', + 'name' => 'ReportIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '修改后的专属集群名称,不为空', - 'description' => 'The new name of the dedicated block storage cluster.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'my-test-dbsc', + 'title' => '', + 'description' => 'The diagnostic report ID.', + 'type' => 'array', + 'items' => ['description' => 'The list of diagnostic reports.', 'type' => 'string', 'required' => false, 'example' => 'report-da21a****', 'title' => ''], + 'required' => false, + 'example' => 'report-asb1s8***', + 'maxItems' => 100, ], ], [ - 'name' => 'Description', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'title' => '修改后的专属集群描述信息', - 'description' => 'The new description of dedicated block storage cluster.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The start time of the resource diagnosis. Specify the time in the [ISO 8601](~~25696~~) standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2024-08-26T01:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end time of the resource diagnosis. Specify the time in the [ISO 8601](~~25696~~) standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2024-08-26T02:06:00Z', 'title' => ''], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => 'The status of the diagnostic report. Valid values:'."\n" + .'- Running'."\n" + .'- Success'."\n" + .'- TimeOut'."\n" + .'- Fail', 'type' => 'string', 'required' => false, 'example' => 'Running', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID. You can call [DescribeRegions](~~354276~~) to query the regions supported by EBS Lens.', 'type' => 'string', 'required' => false, 'example' => 'cn-zhangjiakou', 'title' => ''], ], [ '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****', - ], + 'schema' => ['title' => '', 'description' => 'A string generated by the server that serves as a client request identifier.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The maximum number of entries per page for a paged query. Valid values: 1 to 30.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '1000', 'minimum' => '1', 'default' => '10', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The pagination token that marks the position from which to start reading. An empty value indicates reading from the beginning.', 'type' => 'string', 'required' => false, 'example' => 'adf8a2534f1c0a23e0b5e8707e68181f', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'title' => '', + 'description' => 'DescribeDiagnoseReportResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****'."\n", 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'NextToken' => ['description' => 'The pagination token returned in this call.', 'type' => 'string', 'example' => 'f07b150eadfa1d7a', 'title' => ''], + 'Reports' => [ + 'description' => 'The list of diagnostic reports.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of diagnostic reports.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the diagnostic report. Valid values:'."\n" + .'- Running'."\n" + .'- Success'."\n" + .'- TimeOut'."\n" + .'- Fail'."\n" + ."\n" + .'The Severity and Events fields are valid only when Status is set to Success.', 'type' => 'string', 'example' => 'Success', 'title' => ''], + 'ReportId' => ['description' => 'The diagnostic report ID.', 'type' => 'string', 'example' => 'report-sag8d****', 'title' => ''], + 'ResourceType' => ['description' => 'The resource type. Valid values:'."\n" + ."\n" + .'- Disk', 'type' => 'string', 'example' => 'Disk', 'title' => ''], + 'Severity' => ['description' => 'The severity level of the diagnosis. The severity levels in ascending order are:'."\n" + ."\n" + .'- Info: Associated information that may be related to an anomaly.'."\n" + .'- Warn: Associated information that may cause an anomaly.'."\n" + .'- Critical: A critical anomaly exists.', 'type' => 'string', 'example' => 'Warn', 'title' => ''], + 'FinishedTime' => ['description' => 'The time when the diagnostic report was completed, in Unix/POSIX timestamp (seconds).', 'type' => 'integer', 'format' => 'int64', 'example' => '1727239295', 'title' => ''], + 'DiagnoseStartTime' => ['description' => 'The start timestamp of the resource diagnosis.', 'type' => 'integer', 'format' => 'int64', 'example' => '1727229294', 'title' => ''], + 'ResourceId' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'd-wz95ycu****', 'title' => ''], + 'Events' => [ + 'description' => 'The list of diagnosed issues.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of diagnosed issues.', + 'type' => 'object', + 'properties' => [ + 'RecommendParams' => ['description' => 'The parameters for the recommended action after the event occurs.', 'type' => 'string', 'example' => '4096', 'title' => ''], + 'Description' => ['description' => 'The event description.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'RecommendAction' => ['description' => 'The recommended action after the event occurs. Valid values:'."\n" + ."\n" + .'- ModifyDiskSpec: change cloud disk specifications'."\n" + .'- CreateSnapshot: create a snapshot'."\n" + .'- ResizeDisk: expand the cloud disk'."\n" + .'- AdjustProvision: adjust provisioned performance'."\n" + .'- ModifyInstanceSpec: change instance specifications', 'type' => 'string', 'example' => 'ResizeDisk', 'title' => ''], + 'StartTime' => ['description' => 'The start timestamp of the event, in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1755756214000', 'title' => ''], + 'Severity' => ['description' => 'The severity level of the diagnosed issue. The severity levels in ascending order are:'."\n" + ."\n" + .'- Info: Associated information that may be related to an anomaly.'."\n" + .'- Warn: Associated information that may cause an anomaly.'."\n" + .'- Critical: A critical anomaly exists.', 'type' => 'string', 'example' => 'Warn', 'title' => ''], + 'EventName' => ['description' => 'The issue name. Valid values:'."\n" + ."\n" + .'- NoSnapshot: data protection'."\n" + .'- BurstIOTriggered: I/O burst'."\n" + .'- CostOptimizationNeeded: cost optimization'."\n" + .'- DiskSpecNotMatchedWithInstance: instance and cloud disk specification mismatch'."\n" + .'- DiskIONo4kAligned: non-4K-aligned read/write'."\n" + .'- DiskIOHang: IOHang occurred on the cloud disk'."\n" + .'- InstanceIOPSExceedInstanceMaxLimit: instance IOPS reached the upper limit'."\n" + .'- InstanceBPSExceedInstanceMaxLimit: instance BPS reached the upper limit'."\n" + .'- DiskIOPSExceedInstanceMaxLimit: cloud disk IOPS reached the instance upper limit'."\n" + .'- DiskBPSExceedInstanceMaxLimit: cloud disk BPS reached the instance upper limit'."\n" + .'- DiskIOPSExceedDiskMaxLimit: cloud disk IOPS reached the cloud disk upper limit'."\n" + .'- DiskBPSExceedDiskMaxLimit: cloud disk BPS reached the cloud disk upper limit', 'type' => 'string', 'example' => 'DiskIOPSExceedDiskMaxLimit', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'DiagnoseEndTime' => ['description' => 'The end timestamp of the resource diagnosis.', 'type' => 'integer', 'format' => 'int64', 'example' => '1727239294', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the diagnostic report was created, in Unix/POSIX timestamp (seconds).', 'type' => 'integer', 'format' => 'int64', 'example' => '1727239294', 'title' => ''], + 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'example' => 'cn-zhangjiakou', 'title' => ''], + 'DiagnoseType' => ['description' => 'The type of diagnosis.', 'type' => 'string', 'example' => 'Performance', 'title' => ''], + 'AliUid' => ['description' => 'The user ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '196380451****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], + 'staticInfo' => ['returnType' => 'synchronous'], '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', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****\\\\n\\",\\n \\"TotalCount\\": 10,\\n \\"NextToken\\": \\"f07b150eadfa1d7a\\",\\n \\"Reports\\": [\\n {\\n \\"Status\\": \\"Success\\",\\n \\"ReportId\\": \\"report-sag8d****\\",\\n \\"ResourceType\\": \\"Disk\\",\\n \\"Severity\\": \\"Warn\\",\\n \\"FinishedTime\\": 1727239295,\\n \\"DiagnoseStartTime\\": 1727229294,\\n \\"ResourceId\\": \\"d-wz95ycu****\\",\\n \\"Events\\": [\\n {\\n \\"RecommendParams\\": \\"4096\\",\\n \\"Description\\": \\"test\\",\\n \\"RecommendAction\\": \\"ResizeDisk\\",\\n \\"StartTime\\": 1755756214000,\\n \\"Severity\\": \\"Warn\\",\\n \\"EventName\\": \\"DiskIOPSExceedDiskMaxLimit\\"\\n }\\n ],\\n \\"DiagnoseEndTime\\": 1727239294,\\n \\"CreationTime\\": 1727239294,\\n \\"RegionId\\": \\"cn-zhangjiakou\\",\\n \\"DiagnoseType\\": \\"Performance\\",\\n \\"AliUid\\": 0\\n }\\n ]\\n}","type":"json"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], + ], + 'title' => 'Query resource diagnostic reports', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiagnoseReport', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeDiskMonitorData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6631,327 +3288,82 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', - 'abilityTreeCode' => '124946', - 'abilityTreeNodes' => [ - 'FEATUREdisk1O4P8E', - ], + 'abilityTreeCode' => '138275', + 'abilityTreeNodes' => ['FEATUREdiskLP80G7'], ], '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', - ], + 'schema' => ['description' => 'The region ID of the disk.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'DiskId', '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', - ], + 'schema' => ['description' => 'The ID of the disk.'."\n", 'type' => 'string', 'required' => true, 'example' => 'd-bp67acfmxazb4p****', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'StartTime', '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', - ], + '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', 'title' => ''], ], [ - 'name' => 'DbscId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'title' => '专属块存储集群ID', - 'description' => 'The ID of the dedicated block storage cluster.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'dbsc-cn-od43bf****', - ], + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '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' => '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', - ], - ], - ], + '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', 'title' => ''], + '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', 'title' => ''], + 'WriteBPS' => ['description' => 'The write bandwidth of the disk. Unit: MByte/s.', 'type' => 'integer', 'format' => 'int64', 'example' => '204', 'title' => ''], + 'DiskId' => ['description' => 'The ID of the disk.'."\n", 'type' => 'string', 'example' => 'd-bp1bq5g3dxxo1x4o****', 'title' => ''], + 'ReadIOPS' => ['description' => 'The maximum number of read IOPS.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2000', 'title' => ''], + 'WriteIOPS' => ['description' => 'The maximum number of write IOPS.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2000', 'title' => ''], + 'IOPSPercent' => ['description' => 'The percentage of IOPS.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '80(%)', 'title' => ''], + 'BPSPercent' => ['description' => 'The percentage of BPS.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '80(%)', 'title' => ''], + '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', 'title' => ''], + 'BurstIOCount' => ['description' => 'The number of burst I/O operations.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '0', 'title' => ''], + 'ReadBlockSize' => ['description' => 'Read IO block size. Unit: Bytes', 'type' => 'integer', 'format' => 'int64', 'example' => '4096', 'title' => ''], + 'WriteBlockSize' => ['description' => 'Write IO block size. Unit: Bytes', 'type' => 'integer', 'format' => 'int64', 'example' => '4096', 'title' => ''], + 'ReadLatency' => ['description' => 'Read IO latency. Unit: microsecond', 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''], + 'WriteLatency' => ['description' => 'Write IO latency. Unit: microsecond', 'type' => 'integer', 'format' => 'int64', 'example' => '100', 'title' => ''], ], + 'title' => '', ], + 'title' => '', ], ], ], @@ -6959,62 +3371,50 @@ ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User is not authorized to operate.', - ], - [ - 'errorCode' => 'Forbidden.Action', - 'errorMessage' => 'User is not authorized to operate this action.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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" + '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', + 'summary' => 'Queries fine-grained monitoring data of a disk.', + 'description' => '## Usage notes'."\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', + .'* 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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiskMonitorData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeDiskReplicaGroups' => [ + 'summary' => 'Queries information about one or more replication pair-consistent groups in a specified region.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7023,719 +3423,669 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '149411', - 'abilityTreeNodes' => [ - 'FEATUREdisk1O4P8E', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '115793', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], ], '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' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the replication pair-consistent group.', 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ - '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' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The maximum number of entries to return on a single page. You can use this parameter with NextToken.'."\n" + ."\n" + .'Valid values: 1 to 500.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'title' => '查询开始秒级时间戳', - 'description' => 'Start timestamp of trend data.', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1606303800', - ], + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The query token. Set this parameter to the NextToken value returned from the previous call to this operation. You do not need to set this parameter for the first call. If you set NextToken, the PageSize and PageNumber parameters are ignored, and the TotalCount in the response is invalid.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'AAAAAdDWBF2****'], ], [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'title' => '查询结束秒级时间戳', - 'description' => 'End timestamp of trend data.', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1606403800', - ], + 'name' => 'GroupIds', + 'in' => 'query', + 'schema' => ['description' => 'The IDs of the replication pair-consistent groups. You can specify one or more group IDs. Separate multiple IDs with a comma (,).'."\n" + ."\n" + .'If you do not specify this parameter, all replication pair-consistent groups in the current region are queried. You can specify up to 100 group IDs.', 'type' => 'string', 'required' => false, 'example' => 'AAAAAdDWBF2****', 'title' => ''], ], [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the dedicated block storage cluster.', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shenzhen', - ], + 'name' => 'Site', + 'in' => 'query', + 'schema' => ['description' => 'The site to query. This parameter is used when replication pairs are deployed across zones.'."\n" + ."\n" + .'- If you do not specify this parameter, the records and status information of replication pairs at the production site are returned.'."\n" + ."\n" + .'- If you specify this parameter, only the records and status information of replication pairs at the specified site are returned. Valid values:'."\n" + ."\n" + .' - production: The production site.'."\n" + ."\n" + .' - backup: The disaster recovery site.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'production'], ], [ - 'name' => 'ClientToken', + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '5'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page.'."\n" + .'Valid values: 1 to 100.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the replication pair-consistent group belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-aekz*****', 'title' => ''], + ], + [ + 'name' => 'Name', 'in' => 'query', + 'schema' => ['description' => 'The name of the replication group. Fuzzy search is supported.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'pg-name***'], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', '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', + 'title' => '', + 'description' => 'The tags. The list can contain up to 20 tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the tag.', + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => 'The value of the tag of the replication pair-consistent group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'tag-value'], + 'Key' => ['description' => 'The key of the tag of the replication pair-consistent group.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'tag-key'], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'maxItems' => 21, + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'DescribeDbscInventoryDataResponse', - 'description' => 'DescribeDbscInventoryDataResponse', + 'title' => 'Schema of Response', + 'description' => 'The response schema.', '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", + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****'], + 'NextToken' => ['description' => 'The query token returned in this call.', 'type' => 'string', 'title' => '', 'example' => 'AAAAAdDWBF2****'], + 'ReplicaGroups' => [ + 'description' => 'The information about the replication pair-consistent groups.', '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', + 'GroupName' => ['description' => 'The name of the replication pair-consistent group.', 'type' => 'string', 'example' => 'myreplicagrouptest', 'title' => ''], + 'Site' => ['description' => 'The site of the replication pair and the replication pair-consistent group. Valid values:'."\n" + ."\n" + .'- production: The production site.'."\n" + ."\n" + .'- backup: The disaster recovery site.', 'type' => 'string', 'title' => '', 'example' => 'production'], + 'Description' => ['description' => 'The description of the replication pair-consistent group.', 'type' => 'string', 'example' => 'This is description.', 'title' => ''], + 'StandbyZone' => ['description' => 'The initial destination zone of the replication group.', 'type' => 'string', 'title' => '', 'example' => 'cn-shanghai-e'], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the replication group belongs.', 'type' => 'string', 'title' => '', 'example' => 'rg-aek2a*******'], + 'LastRecoverPoint' => ['description' => 'The time when the last asynchronous replication was completed for the replication pair-consistent group. This parameter is a UNIX timestamp. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1637835114', 'title' => ''], + 'ReplicaGroupId' => ['description' => 'The ID of the replication pair-consistent group.', 'type' => 'string', 'example' => 'pg-myreplica****', 'title' => ''], + 'RPO' => ['description' => 'The recovery point objective (RPO) of the replication pair-consistent group. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '180', 'title' => ''], + 'SourceRegionId' => ['description' => 'The region ID of the production site.', 'type' => 'string', 'example' => 'cn-beijing', 'title' => ''], + 'DestinationRegionId' => ['description' => 'The region ID of the disaster recovery site.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth. Unit: Kbit/s. This parameter is not yet available. The return value is preset by the system.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '0'], + 'PrimaryZone' => ['description' => 'The initial source zone of the replication group.', 'type' => 'string', 'title' => '', 'example' => 'cn-beijing-h'], + 'SourceZoneId' => ['description' => 'The zone ID of the production site.', 'type' => 'string', 'example' => 'cn-beijing-f', 'title' => ''], + 'Tags' => [ + 'title' => '', + 'description' => 'The tags of the replication group.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagKey' => ['description' => 'The key of the tag of the replication group.', 'type' => 'string', 'example' => 'testKey', 'title' => ''], + 'TagValue' => ['description' => 'The value of the tag of the replication group.', 'type' => 'string', 'example' => 'testValue', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'example' => '', ], - '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', + 'Status' => ['description' => 'The status of the replication pair-consistent group. Valid values:'."\n" + ."\n" + .'- invalid: The replication pair-consistent group is invalid. This status indicates that a replication pair in the group is abnormal.'."\n" + ."\n" + .'- creating: The replication pair-consistent group is being created.'."\n" + ."\n" + .'- created: The replication pair-consistent group is created.'."\n" + ."\n" + .'- create\\_failed: The replication pair-consistent group failed to be created.'."\n" + ."\n" + .'- manual\\_syncing: The replication pair-consistent group is performing a one-time synchronization. The group is also in this state during the first one-time synchronization.'."\n" + ."\n" + .'- syncing: The replication pair-consistent group is synchronizing data. The group is in this state when data is asynchronously replicated from the primary disk to the secondary disk for a subsequent time.'."\n" + ."\n" + .'- normal: Normal. When data replication is complete in the current asynchronous replication cycle, the group is in this state.'."\n" + ."\n" + .'- stopping: The replication pair-consistent group is being stopped.'."\n" + ."\n" + .'- stopped: The replication pair-consistent group is stopped.'."\n" + ."\n" + .'- stop\\_failed: The replication pair-consistent group failed to be stopped.'."\n" + ."\n" + .'- failovering: A failover is being performed.'."\n" + ."\n" + .'- failovered: The failover is complete.'."\n" + ."\n" + .'- failover\\_failed: The failover failed.'."\n" + ."\n" + .'- reprotecting: A reverse replication is being performed.'."\n" + ."\n" + .'- reprotect\\_failed: The reverse replication failed.'."\n" + ."\n" + .'- deleting: The replication pair-consistent group is being deleted.'."\n" + ."\n" + .'- delete\\_failed: The replication pair-consistent group failed to be deleted.'."\n" + ."\n" + .'- deleted: The replication pair-consistent group is deleted.', 'type' => 'string', 'example' => 'created', 'title' => ''], + 'PairNumber' => ['description' => 'The number of replication pairs in the replication pair-consistent group.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '2'], + 'PrimaryRegion' => ['description' => 'The initial source region of the replication group.', 'type' => 'string', 'title' => '', 'example' => 'cn-beijing'], + 'PairIds' => [ + 'description' => 'The list of replication pair IDs in the replication pair-consistent group.', + 'type' => 'array', + 'items' => ['description' => 'The IDs of the replication pairs in the replication pair-consistent group.', 'type' => 'string', 'format' => 'byte', 'example' => 'pair-cn-dsa****,pair-cn-asd****', 'title' => ''], + 'title' => '', + 'example' => '', ], + 'EnableRtc' => ['description' => 'Specifies whether to enable replication time control (RTC). Valid values:'."\n" + ."\n" + .'- false: Disables RTC.'."\n" + ."\n" + .'- true: Enables RTC.'."\n" + ."\n" + .'> If you set this parameter to true, RTC is enabled for the replication pair-consistent group and all asynchronous replication pairs that are added to the group.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], + 'DestinationZoneId' => ['description' => 'The zone ID of the disaster recovery site.', 'type' => 'string', 'example' => 'cn-shanghai-e', 'title' => ''], + 'StandbyRegion' => ['description' => 'The initial destination region of the replication group.', 'type' => 'string', 'title' => '', 'example' => 'cn-shanghai'."\n"], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], - 'RequestId' => [ - 'title' => '请求ID', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F1A4258A-0C8C-5329-B495-BC5AD7AD****', - ], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '10'], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '60'], ], + 'example' => '', ], ], ], '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', + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ], + [ + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDiskReplicaGroups', + 'description' => '## Description'."\n" + ."\n" + .'To perform a paged query, you can use the MaxResults and NextToken parameters.'."\n" + ."\n" + .'When you query the first page, set `MaxResults` to specify the number of entries to return. The `NextToken` value in the response is the token used to query subsequent pages. To query a subsequent page, set `NextToken` to the value from the previous response and set MaxResults to specify the number of entries for the current page.', + 'changeSet' => [ + ['createdAt' => '2025-07-07T11:22:39.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-08-14T06:34:59.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-19T12:22:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-03T02:17:05.000Z', 'description' => 'Request parameters changed, Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-10-28T08:41:19.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-08-16T11:40:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-06T02:07:57.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiskReplicaGroups'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiskReplicaGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/*'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], ], - [ - 'errorCode' => 'InvalidParameter.TooManyDataQueried', - 'errorMessage' => 'Too many data queried.', + ], + ], + ], + 'DescribeDiskReplicaPairProgress' => [ + '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', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the replication pair.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], + ], + ], + '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' => '', '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", 'title' => ''], + ], ], ], + ], + 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User is not authorized to operate.', - ], - [ - 'errorCode' => 'Forbidden.Action', - 'errorMessage' => 'User is not authorized to operate this action.', - ], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Progress\\": 100,\\n \\"RecoverPoint\\": 1661917424,\\n \\"RequestId\\": \\"AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****\\\\n\\"\\n}","type":"json"}]', + 'title' => 'DescribeDiskReplicaPairProgress', + 'summary' => 'Queries the replication progress of a replication pair.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiskReplicaPairProgress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], ], + ], + 'DescribeDiskReplicaPairs' => [ + 'summary' => 'Queries information about one or more replication pairs in a specified region.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '159104', - 'abilityTreeNodes' => [ - 'FEATUREdisk493RYF', - ], + 'abilityTreeCode' => '42727', + '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 snapshot policy is supported.', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the primary or secondary disk of the replication pair resides. Call the [DescribeRegions](~~354276~~) operation to query the regions that support asynchronous replication.', 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'title' => '名称', - 'description' => 'The name of the policy.', - 'type' => 'string', - 'required' => true, - 'example' => 'xx', - ], + 'schema' => ['description' => 'The maximum number of entries to return on each page. Use this parameter with NextToken.'."\n" + ."\n" + .'Valid values: 1 to 500.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'required' => false, 'example' => '1'], ], [ - 'name' => 'TargetType', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '类型', - 'description' => 'Binding target type, valid value:'."\n" - ."\n" - .'- DISK', - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [ - 'DISK' => 'DISK', - ], - 'example' => 'DISK', - ], + 'schema' => ['description' => 'The query token. Set this parameter to the NextToken value returned from the previous call to this operation. You do not need to set this parameter for the first call. If you set NextToken, the PageSize and PageNumber parameters are ignored, and the TotalCount value in the response is invalid.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'AAAAAdDWBF2****'], ], [ - 'name' => 'State', + 'name' => 'PairIds', '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', - ], + 'schema' => ['description' => 'The IDs of replication pairs. Specify one or more replication pair IDs. The IDs must be in the `pair-cn-dsa****,pair-cn-asd****` format.'."\n" + ."\n" + .'If you leave this parameter empty, all replication pairs in the current region are queried. You can specify up to 100 replication pair IDs.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'pair-cn-dsa****'], ], [ - 'name' => 'Desc', + 'name' => 'Site', 'in' => 'query', - 'schema' => [ - 'title' => '描述信息', - 'description' => 'The description of the policy.', - 'type' => 'string', - 'required' => false, - 'example' => 'xxx', - ], + 'schema' => ['description' => 'The site from which to query data. Query data from the production site or the disaster recovery site. Valid values:'."\n" + ."\n" + .'- production: the production site.'."\n" + ."\n" + .'- backup: the disaster recovery site.'."\n" + ."\n" + .'Default value: production.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'production'], ], [ - 'name' => 'Schedule', + 'name' => 'ReplicaGroupId', '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, - ], + 'schema' => ['description' => 'The ID of the replication pair-consistent group. Specify the ID of a replication pair-consistent group to query the replication pairs in the group. The ID must be in the `pg-****` format.'."\n" + ."\n" + .'If you leave this parameter empty, all replication pairs in the current region are queried.'."\n" + ."\n" + .'> If you set this parameter to `-`, replication pairs that are not in any replication pair-consistent group are returned.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'pg-****'], ], [ - 'name' => 'RetainRule', + 'name' => 'PageNumber', '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, - ], + 'schema' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '5'], ], [ - 'name' => 'StorageRule', + 'name' => 'PageSize', '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, - ], + 'schema' => ['description' => 'The number of entries per page.'."\n" + .'Valid values: 1 to 100.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '10'], ], [ - 'name' => 'CrossRegionCopyInfo', + 'name' => 'ResourceGroupId', '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, - ], + 'schema' => ['description' => 'The ID of the resource group to which the replication pair belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmvs******', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the replication pair. Fuzzy matching is supported.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'name***'], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => '标签键值对。n的取值范围为 [1, 20]', - 'description' => 'The list of tags.', + 'title' => '', + 'description' => 'The tags. You can specify up to 20 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', - ], + 'Value' => ['description' => 'The value of the tag.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'TestValue'], + 'Key' => ['description' => 'The key of the tag.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'TestKey'], ], 'required' => false, + 'title' => '', + 'example' => '', ], '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****', + 'maxItems' => 21, + 'example' => '', ], ], - [ - 'name' => 'SpecialRetainRules', - 'in' => 'query', - 'style' => 'json', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', - 'description' => 'The special snapshot retention rules.', + 'title' => 'Schema of Response', + 'description' => 'The response schema.', '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.', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'AAA478A0-BEE6-1D42-BEB6-A9CFEAD6****'], + 'NextToken' => ['description' => 'The query token returned from this call.', 'type' => 'string', 'title' => '', 'example' => 'AAAAAdDWBF2****'], + 'ReplicaPairs' => [ + 'description' => 'The replication pairs.', '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', + 'Site' => ['description' => 'The site type of the replication pair or replication pair-consistent group. Valid values:'."\n" + ."\n" + .'- production: the production site.'."\n" + ."\n" + .'- backup: the disaster recovery site.', 'type' => 'string', 'title' => '', 'example' => 'production'], + 'DestinationDiskId' => ['description' => 'The ID of the secondary disk.', 'type' => 'string', 'example' => 'd-asdfjl2342kj2l3k4****', 'title' => ''], + 'Description' => ['description' => 'The description of the replication pair.', 'type' => 'string', 'example' => 'This is description.', 'title' => ''], + 'StandbyZone' => ['description' => 'The initial destination zone of the replication pair.', 'type' => 'string', 'title' => '', 'example' => 'cn-shanghai-b'], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the replication pair belongs.', 'type' => 'string', 'title' => '', 'example' => 'rg-acfmvs*****'], + 'DestinationRegion' => ['description' => 'The region of the secondary disk.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''], + 'ReplicaPairId' => ['description' => 'The ID of the replication pair.', 'type' => 'string', 'example' => 'pair-cn-dsa****', 'title' => ''], + 'LastRecoverPoint' => ['description' => 'The time when the last asynchronous replication was completed. This value is a UNIX timestamp. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1649751977'], + 'ReplicaGroupId' => ['description' => 'The ID of the replication pair-consistent group to which the replication pair belongs.', 'type' => 'string', 'title' => '', 'example' => 'pg-xxxx****'], + 'SourceDiskId' => ['description' => 'The ID of the primary disk.', 'type' => 'string', 'example' => 'd-bp131n0q38u3a4zi****', 'title' => ''], + 'RPO' => ['description' => 'The recovery point objective (RPO) of the replication pair. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '900'], + 'PairName' => ['description' => 'The name of the replication pair.', 'type' => 'string', 'example' => 'TestReplicaPair', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth used for asynchronous replication. Unit: Kbit/s.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '10240'], + 'ExpiredTime' => ['description' => 'The expiration time of the replication pair. This value is a UNIX timestamp. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1649750977', 'title' => ''], + 'PrimaryZone' => ['description' => 'The initial source zone of the replication pair.', 'type' => 'string', 'title' => '', 'example' => 'cn-beijing-a'], + 'SourceZoneId' => ['description' => 'The zone of the primary disk.', 'type' => 'string', 'title' => '', 'example' => 'cn-beijing-a'], + 'Tags' => [ + 'title' => '', + 'description' => 'The tags of the replication pair.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'TagKey' => ['description' => 'The key of the tag.', 'type' => 'string', 'example' => 'testKey', 'title' => ''], + 'TagValue' => ['description' => 'The value of the tag.', 'type' => 'string', 'example' => 'testValue', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'example' => 'WEEKS', + 'example' => '', ], + 'Status' => ['description' => 'The status of the replication pair. Valid values:'."\n" + ."\n" + .'- invalid: The replication pair is invalid. This status indicates that the replication pair is not working correctly.'."\n" + ."\n" + .'- creating: The replication pair is being created.'."\n" + ."\n" + .'- created: The replication pair is created.'."\n" + ."\n" + .'- create\\_failed: The replication pair failed to be created.'."\n" + ."\n" + .'- initial\\_syncing: The replication pair is in the initial synchronization state. After a replication pair is created and started, it enters this state during the first asynchronous replication of data from the primary disk to the secondary disk.'."\n" + ."\n" + .'- manual\\_syncing: The replication pair is being manually synchronized. After the manual synchronization is complete, the replication pair returns to the stopped state. If it is the first one-time synchronization, the status is also manual\\_syncing.'."\n" + ."\n" + .'- syncing: The replication pair is synchronizing data. The replication pair is in this state when data is asynchronously replicated from the primary disk to the secondary disk for a second or subsequent time.'."\n" + ."\n" + .'- normal: The replication pair is in the normal state. The replication pair enters this state when data replication is complete in the current replication cycle.'."\n" + ."\n" + .'- stopping: The replication pair is being stopped.'."\n" + ."\n" + .'- stopped: The replication pair is stopped.'."\n" + ."\n" + .'- stop\\_failed: The replication pair failed to be stopped.'."\n" + ."\n" + .'- failovering: A failover is in progress.'."\n" + ."\n" + .'- failovered: The failover is complete.'."\n" + ."\n" + .'- failover\\_failed: The failover failed.'."\n" + ."\n" + .'- reprotecting: A reverse replication is in progress.'."\n" + ."\n" + .'- reprotect\\_failed: The reverse replication failed.'."\n" + ."\n" + .'- deleting: The replication pair is being deleted.'."\n" + ."\n" + .'- delete\\_failed: The replication pair failed to be deleted.'."\n" + ."\n" + .'- deleted: The replication pair is deleted.', 'type' => 'string', 'title' => '', 'example' => 'created'], + 'PrimaryRegion' => ['description' => 'The initial source region of the replication pair.', 'type' => 'string', 'title' => '', 'example' => 'cn-beijing'], + 'CreateTime' => ['description' => 'The creation time. This value is a UNIX timestamp. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1649750977'], + 'SourceRegion' => ['description' => 'The region of the primary disk.', 'type' => 'string', 'example' => 'cn-beijing', 'title' => ''], + 'StatusMessage' => ['description' => 'The status message of the replication pair. This parameter is returned when the Status is `invalid` or `create_failed`. Valid values:'."\n" + ."\n" + .'- PrePayOrderExpired: The subscription replication pair has expired.'."\n" + ."\n" + .'- PostPayOrderCeaseService: The service for the pay-as-you-go replication pair is suspended, usually due to an overdue payment.'."\n" + ."\n" + .'- DeviceRemoved: The primary or secondary disk is deleted.'."\n" + ."\n" + .'- DeviceKeyChanged: The `DeviceKey` mapping of the primary or secondary disk has changed.'."\n" + ."\n" + .'- DeviceSizeChanged: The `DeviceSize` of the primary or secondary disk has changed.'."\n" + ."\n" + .'- OperationDenied.QuotaExceed: The number of created replication pairs exceeds the quota.', 'type' => 'string', 'title' => '', 'example' => 'PrePayOrderExpired'], + 'EnableRtc' => ['description' => 'Specifies whether real-time control (RTC) is enabled. Valid values:'."\n" + ."\n" + .'- false: Disabled.'."\n" + ."\n" + .'- true: Enabled.'."\n" + ."\n" + .'> If the replication pair is in a replication pair-consistent group, the value of this parameter is the same as that of the group.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'ChargeType' => ['description' => 'The billing method of the replication pair.'."\n" + .'Valid values:'."\n" + ."\n" + .'- PREPAY: subscription.'."\n" + ."\n" + .'- POSTPAY: pay-as-you-go.', 'type' => 'string', 'title' => '', 'example' => 'PREPAY'], + 'DestinationZoneId' => ['description' => 'The zone of the secondary disk.', 'type' => 'string', 'title' => '', 'example' => 'cn-shanghai-b'], + 'ReplicaGroupName' => ['description' => 'The name of the replication pair-consistent group to which the replication pair belongs.', 'type' => 'string', 'title' => '', 'example' => 'pg-name****'], + 'StandbyRegion' => ['description' => 'The initial destination region of the replication pair.', 'type' => 'string', 'title' => '', 'example' => 'cn-shanghai'], ], - 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', ], - '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', + 'title' => '', + 'example' => '', ], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '10'], + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '60'], ], + 'example' => '', ], ], ], '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', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'InvalidApi.NotFound', - 'errorMessage' => 'Specified api is not found, please check your url and method.', - ], - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'responseDemo' => '[{"errorExample":"","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\\": false,\\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}","type":"json"}]', + 'title' => 'DescribeDiskReplicaPairs', + 'description' => '## Description'."\n" + ."\n" + .'- For information about the regions that support asynchronous replication, see [Overview of asynchronous replication for disks](~~314563~~).'."\n" + ."\n" + .'- If the primary or secondary disk of an asynchronous replication pair is in the specified region, the query returns information about that replication pair.'."\n" + ."\n" + .'- To perform a paged query, use the MaxResults and NextToken parameters. For the first page, set MaxResults to limit the number of entries returned. The `NextToken` value in the response is the token for the next page. For subsequent pages, set `NextToken` to the value from the previous response and set `MaxResults` to limit the number of entries.', + 'changeSet' => [ + ['createdAt' => '2025-07-07T11:22:39.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-08-14T06:34:59.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-06-17T08:54:58.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-03T02:17:05.000Z', 'description' => 'Request parameters changed, Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-13T03:44:44.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-07-18T03:50:13.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-11-03T14:00:38.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-03T14:00:38.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiskReplicaPairs'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiskReplicaPairs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/*'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + ], ], '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', - ], + 'summary' => 'Queries enterprise-level snapshot policies by specifying parameters such as PolicyIds, ResourceGroupId, and Tag.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7746,38 +4096,26 @@ 'systemTags' => [ 'operationType' => 'list', 'abilityTreeCode' => '159098', - 'abilityTreeNodes' => [ - 'FEATUREdiskHAF1DK', - ], + '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', - ], + 'schema' => ['title' => '', 'description' => 'The region ID. You can call [DescribeRegions](~~25609~~) to query the most recent region list.', '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", + 'title' => '', + 'description' => 'The list of snapshot policy IDs.', 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the enterprise-level snapshot policy.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'esp-xxx', - ], + 'items' => ['description' => 'The policy ID.', 'type' => 'string', 'required' => false, 'example' => 'esp-xxx', 'title' => ''], 'required' => false, 'maxItems' => 10, + 'example' => '', ], ], [ @@ -7785,1299 +4123,1087 @@ 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => '磁盘ID列表', - 'description' => 'The IDs of disks.'."\n", + 'title' => '', + 'description' => 'The list of cloud disk IDs.', 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the disk.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '["d-bp67acfmxazb4p****","d-bp67acfmxazs5t****"]', - ], + 'items' => ['description' => 'The cloud disk ID.', 'type' => 'string', 'required' => false, 'example' => '"d-bp67acfmxazb4p****"', 'title' => ''], 'required' => false, 'maxItems' => 10, + 'example' => '', ], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'title' => '资源组ID', - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'xxx', - ], + 'schema' => ['title' => '', 'description' => 'The resource group ID.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmvs****'], ], [ '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', - ], + 'schema' => ['title' => '', 'description' => 'The pagination token (Token). Set this parameter to the NextToken value returned in the previous call. You do not need to set this parameter for the first request. If NextToken is specified, the PageSize and PageNumber request parameters do not take effect, and the TotalCount value in the response is invalid.', 'type' => 'string', 'required' => false, 'example' => 'AAAAAdDWBF2****'], ], [ 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'title' => 'Token方式最大个数。', - 'description' => 'The maximum number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['title' => '', 'description' => 'The maximum number of entries to return in this call. You can use this parameter together with NextToken.'."\n" + ."\n" + .'Valid values: 1 to 500.'."\n" + ."\n" + .'Default value: 10.', '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', - ], + 'schema' => ['title' => '', 'description' => 'The number of entries per page in a paging query. Valid values: 1 to 100.', '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', - ], + 'schema' => ['title' => '', 'description' => 'The page number in a paging query.', '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****', - ], + 'schema' => ['title' => '', 'description' => 'Ensures the idempotence of the request. The value is generated from your client and must be unique among different requests. ClientToken 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' => '0c593ea1-3bea-11e9-b96b-88e9fe63****'], ], [ '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", + 'title' => '', + 'description' => 'The tag key-value pairs. Valid values of N: 1 to 20.', 'type' => 'array', 'items' => [ - 'description' => 'The tag of the policy.', + 'description' => 'The tag.', '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', - ], + 'Key' => ['title' => '', 'description' => 'The tag key of the resource.', 'type' => 'string', 'required' => true, 'example' => 'tag-key'], + 'Value' => ['title' => '', 'description' => 'The tag value of the resource.', 'type' => 'string', 'required' => true, 'example' => 'tag-value'], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, 'maxItems' => 10, + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'DescribeSnapshotPolicyResponse', - 'description' => 'The response.'."\n", + 'title' => '', + 'description' => 'The response.', 'type' => 'object', 'properties' => [ 'Policies' => [ - 'title' => '策略列表', - 'description' => 'The returned snapshot policies.'."\n", + 'title' => '', + 'description' => 'The list of policies.', 'type' => 'array', 'items' => [ - 'description' => 'Details about the snapshot policy.'."\n", + 'description' => 'The policy details.', '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', - ], + 'Name' => ['title' => '', 'description' => 'The snapshot policy name.', 'type' => 'string', 'example' => 'xxx'], + 'PolicyId' => ['title' => '', 'description' => 'The snapshot policy ID.', 'type' => 'string', 'example' => 'esp-xxx'], + 'TargetType' => ['title' => '', 'description' => 'The type. Valid values:'."\n" + ."\n" + .'- DISK', 'type' => 'string', 'example' => 'DISK'], + 'State' => ['title' => '', 'description' => 'The status. Valid values:'."\n" + ."\n" + .'- DISABLED'."\n" + .'- ENABLED', 'type' => 'string', 'example' => 'DISABLED'], + 'ManagedForEcs' => ['title' => '', 'description' => 'The snapshot managed status.', 'type' => 'boolean', 'example' => 'false'], + 'Desc' => ['title' => '', 'description' => 'The snapshot policy description.', 'type' => 'string', 'example' => 'xxx'], 'Schedule' => [ - 'title' => '快照策略调度规则', - 'description' => 'The scheduling rule of the enterprise-level snapshot policy.'."\n", + 'title' => '', + 'description' => 'The snapshot policy schedule rule.', '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 * ?', - ], + 'CronExpression' => ['title' => '', 'description' => 'The cron expression.', 'type' => 'string', 'example' => '1 1 1 */1 * ?'], ], + 'example' => '', ], 'RetainRule' => [ - 'title' => '快照策略保留规则', - 'description' => 'The retention rule of the enterprise-level snapshot policy.'."\n", + 'title' => '', + 'description' => 'The snapshot policy retention rule.', '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', - ], + 'Number' => ['title' => '', 'description' => 'The retention count.', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TimeInterval' => ['title' => '', 'description' => 'The time interval of the retention rule. The unit is specified by the TimeUnit parameter. The value must be greater than 1.', 'type' => 'integer', 'format' => 'int32', 'example' => '14'], + 'TimeUnit' => ['title' => '', 'description' => 'The retention time unit.', 'type' => 'string', 'example' => 'DAYS'], ], + 'example' => '', ], 'StorageRule' => [ - 'title' => '快照策略存储规则', - 'description' => 'The storage rule of snapshots in the enterprise-level snapshot policy.'."\n", + 'title' => '', + 'description' => 'The snapshot policy storage rule.', 'type' => 'object', 'properties' => [ - 'EnableImmediateAccess' => [ - 'title' => '是否启动快照极速可用', - 'description' => 'Indicates whether the instant access feature is enabled.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], + 'EnableImmediateAccess' => ['title' => '', 'description' => 'Indicates whether instant access is enabled for snapshots.', 'type' => 'boolean', 'example' => 'false'], ], + 'example' => '', ], 'CrossRegionCopyInfo' => [ - 'title' => '快照快照复制信息', - 'description' => 'The replication rule of snapshots in the enterprise-level snapshot policy.'."\n", + 'title' => '', + 'description' => 'The snapshot cross-region copy information.', 'type' => 'object', 'properties' => [ - 'Enabled' => [ - 'title' => '是否启用跨地域复制', - 'description' => 'Indicates whether the cross-region replication feature is enabled.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Enabled' => ['title' => '', 'description' => 'Indicates whether cross-region copy is enabled.', 'type' => 'boolean', 'example' => 'true'], 'Regions' => [ - 'title' => '目的地域信息', - 'description' => 'The destination regions that store snapshot copies.'."\n", + 'title' => '', + 'description' => 'The destination region information.', 'type' => 'array', 'items' => [ - 'description' => 'Destination region information.', + 'description' => 'The copy 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', - ], + 'RegionId' => ['title' => '', 'description' => 'The snapshot copy destination region.', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'RetainDays' => ['title' => '', 'description' => 'The number of days to retain snapshots at the destination region.', 'type' => 'integer', 'format' => 'int32', 'example' => '7'], ], + 'title' => '', + 'example' => '', ], + 'example' => '', ], ], + 'example' => '', ], - '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', - ], + 'CreateTime' => ['title' => '', 'description' => 'The creation time in UTC ISO 8601 format.', 'type' => 'string', 'example' => '2023-06-24T06:03:35Z'], + 'TargetCount' => ['title' => '', 'description' => 'The number of bound targets.', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], 'Tags' => [ - 'title' => 'the pair tags', - 'description' => 'the pair tags'."\n", + 'title' => '', + 'description' => 'the pair tags', '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', - ], + 'TagKey' => ['title' => '', 'description' => 'The tag key of the resource.', 'type' => 'string', 'example' => 'key'], + 'TagValue' => ['title' => '', 'description' => 'The tag value of the resource.', 'type' => 'string', 'example' => 'value'], ], - 'description' => 'The tag.', + 'description' => '', + 'title' => '', + 'example' => '', ], + 'example' => '', ], - 'ResourceGroupId' => [ - 'title' => 'the resource group', - 'description' => 'the resource group'."\n", - 'type' => 'string', - 'example' => 'rg-xxx', - ], + 'ResourceGroupId' => ['title' => '', 'description' => 'the resource group', 'type' => 'string', 'example' => 'rg-xxx'], 'SpecialRetainRules' => [ - 'title' => '快照策略特殊保留规则', - 'description' => 'The special retention rules of the enterprise-level snapshot policy.'."\n", + 'title' => '', + 'description' => 'The special retention rules for the snapshot policy.', 'type' => 'object', 'properties' => [ - 'Enabled' => [ - 'title' => '是否启用特殊保留时间', - 'description' => 'Indicates whether the special retention period is enabled.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Enabled' => ['title' => '', 'description' => 'Indicates whether special retention is enabled.', 'type' => 'boolean', 'example' => 'true'], 'Rules' => [ - 'title' => '特殊保留规则', - 'description' => 'The special retention rules.'."\n", + 'title' => '', + 'description' => 'The special retention rules.', 'type' => 'array', 'items' => [ - 'description' => 'The special retention rule.', + 'description' => 'The special retention rules.', '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', - ], + 'SpecialPeriodUnit' => ['title' => '', 'description' => 'The special period unit.', 'type' => 'string', 'example' => 'WEEKS'], + 'TimeInterval' => ['title' => '', 'description' => 'The time interval of the retention rule. The unit is specified by the TimeUnit parameter. The value must be greater than 1.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TimeUnit' => ['title' => '', 'description' => 'The retention time unit.', 'type' => 'string', 'example' => 'WEEKS'], ], + 'title' => '', + 'example' => '', ], + 'example' => '', ], ], + 'example' => '', ], 'DiskIds' => [ - 'title' => '已绑定的磁盘列表', - 'description' => 'The disks that are associated with the snapshot policy.'."\n", + 'title' => '', + 'description' => 'The list of bound cloud disk IDs.', 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the disk.'."\n", - 'type' => 'string', - 'example' => '["d-xxx"]', - ], + 'items' => ['description' => 'The cloud disk ID.', 'type' => 'string', 'example' => '"d-bp67acfmxazb4p****"'."\n", 'title' => ''], + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'example' => '', ], - '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', - ], + 'PageNumber' => ['title' => '', 'description' => 'The page number for paged queries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['title' => '', 'description' => 'The number of entries per page for paged queries.', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalCount' => ['title' => '', 'description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '549BB71F-6778-53CE-AA73-E94ACE802AB4'], + 'NextToken' => ['title' => '', 'description' => 'The pagination token (Token) returned for the next query.', 'type' => 'string', 'example' => 'AAAAAdDWBF2****'], ], + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation 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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], + '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', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'Query enterprise-level snapshot policies', + 'changeSet' => [ + ['createdAt' => '2024-10-08T07:16:41.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-01-08T01:54:20.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeEnterpriseSnapshotPolicy'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/*'], + ], + ], + ], + ], + ], + 'DescribeEvents' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '159103', - 'abilityTreeNodes' => [ - 'FEATUREdisk1W6OYH', - ], + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '191205', + 'abilityTreeNodes' => ['FEATUREdisk2F270T'], + 'tenantRelevance' => 'publicInformation', ], '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', - ], + 'schema' => ['description' => 'The region ID. Call DescribeRegions to query the list of regions where EBS Lens is supported.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'EventName', 'in' => 'query', 'schema' => [ - 'title' => '名称', - 'description' => 'The name of the policy.', + 'description' => 'The event name. Valid values:'."\n" + ."\n" + .'- NoSnapshot: Data protection'."\n" + ."\n" + .'- BurstIOTriggered: Burst IO'."\n" + ."\n" + .'- CostOptimizationNeeded: Cost optimization'."\n" + ."\n" + .'- DiskSpecNotMatchedWithInstance: The disk specifications do not match the instance type.'."\n" + ."\n" + .'- DiskIONo4kAligned: Read/write operations are not 4K-aligned.'."\n" + ."\n" + .'- DiskIOHang: An I/O hang event occurred on the disk.'."\n" + ."\n" + .'- InstanceIOPSExceedInstanceMaxLimit: The IOPS of the instance reached the upper limit.'."\n" + ."\n" + .'- InstanceBPSExceedInstanceMaxLimit: The BPS of the instance reached the upper limit.'."\n" + ."\n" + .'- DiskIOPSExceedInstanceMaxLimit: The IOPS of the disk reached the upper limit of the instance.'."\n" + ."\n" + .'- DiskBPSExceedInstanceMaxLimit: The BPS of the disk reached the upper limit of the instance.'."\n" + ."\n" + .'- DiskIOPSExceedDiskMaxLimit: The IOPS of the disk reached the upper limit of the disk.'."\n" + ."\n" + .'- DiskBPSExceedDiskMaxLimit: The BPS of the disk reached the upper limit of the disk.', + 'enumValueTitles' => [], 'type' => 'string', 'required' => false, - 'example' => 'xxx', + 'example' => 'DiskIOHang', + 'title' => '', ], ], [ - 'name' => 'State', + 'name' => 'ResourceId', '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', - ], + 'schema' => ['description' => 'The resource ID.', 'type' => 'string', 'required' => false, 'example' => 'd-bp67acfmxazb4p****', 'title' => ''], ], [ - 'name' => 'Desc', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'title' => '描述', - 'description' => 'The description of the policy.', - 'type' => 'string', - 'required' => false, - 'example' => 'xxx', - ], + 'schema' => ['description' => 'The resource type. Valid values:'."\n" + ."\n" + .'- disk: disk', 'type' => 'string', 'required' => false, 'example' => 'disk', 'title' => ''], ], [ - 'name' => 'Schedule', + 'name' => 'Status', '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, - ], + 'schema' => ['description' => 'The event status. Valid values:'."\n" + ."\n" + .'- WillExecute: Pending'."\n" + ."\n" + .'- Executing: In progress'."\n" + ."\n" + .'- Executed: Processed'."\n" + ."\n" + .'- Ignore: Ignored'."\n" + ."\n" + .'- Expired: Expired'."\n" + ."\n" + .'- Deleted: Deleted', 'type' => 'string', 'required' => false, 'example' => 'WillExecute', 'title' => ''], ], [ - 'name' => 'RetainRule', + 'name' => 'StartTime', '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, - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2023-06-01T03:00:00Z', 'title' => ''], ], [ - 'name' => 'SpecialRetainRules', + 'name' => 'EndTime', '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, - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2023-06-01T04:00:00Z', 'title' => ''], ], [ - 'name' => 'CrossRegionCopyInfo', + 'name' => 'MaxResults', '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, - ], + 'schema' => ['description' => 'The maximum number of entries to return on each page. If you set this parameter, you must use it with the `NextToken` parameter to perform a paged query.'."\n" + ."\n" + .'Valid values: 1 to 100.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NextToken', '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****', - ], + 'schema' => ['description' => 'The query token. Set it to the NextToken value returned from the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'AAAAAdDWBF2****', 'title' => ''], ], [ - 'name' => 'StorageRule', + 'name' => 'EventLevel', '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, - ], + 'schema' => ['description' => 'The event level. Valid values:'."\n" + ."\n" + .'- **INFO**: Notification'."\n" + ."\n" + .'- **WARN**: Warning'."\n" + ."\n" + .'- **CRITICAL**: Critical', 'type' => 'string', 'required' => false, 'example' => 'WARN', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Response', - 'description' => 'Response', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'BA903E56-48CE-5B81-9611-ED7962EED3DF', + '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 for the paged query.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'NextToken' => ['description' => 'The token to use for the next query. If this parameter is empty, all results have been returned.', 'type' => 'string', 'example' => 'AAAAAdDWBF2****', 'title' => ''], + 'ResourceEvents' => [ + 'description' => 'The list of events.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EventType' => ['description' => 'The event type. Possible values:'."\n" + ."\n" + .'1. Notification'."\n" + ."\n" + .'2. SystemException'."\n" + ."\n" + .'3. Alert', 'type' => 'string', 'example' => 'Alert', 'title' => ''], + 'EventName' => ['description' => 'The event name. Possible values:'."\n" + ."\n" + .'- NoSnapshot: Data protection'."\n" + ."\n" + .'- BurstIOTriggered: Burst IO'."\n" + ."\n" + .'- CostOptimizationNeeded: Cost optimization'."\n" + ."\n" + .'- DiskSpecNotMatchedWithInstance: The disk specifications do not match the instance type.'."\n" + ."\n" + .'- DiskIONo4kAligned: Read/write operations are not 4K-aligned.'."\n" + ."\n" + .'- DiskIOHang: An I/O hang event occurred on the disk.'."\n" + ."\n" + .'- InstanceIOPSExceedInstanceMaxLimit: The IOPS of the instance reached the upper limit.'."\n" + ."\n" + .'- InstanceBPSExceedInstanceMaxLimit: The BPS of the instance reached the upper limit.'."\n" + ."\n" + .'- DiskIOPSExceedInstanceMaxLimit: The IOPS of the disk reached the upper limit of the instance.'."\n" + ."\n" + .'- DiskBPSExceedInstanceMaxLimit: The BPS of the disk reached the upper limit of the instance.'."\n" + ."\n" + .'- DiskIOPSExceedDiskMaxLimit: The IOPS of the disk reached the upper limit of the disk.'."\n" + ."\n" + .'- DiskBPSExceedDiskMaxLimit: The BPS of the disk reached the upper limit of the disk.', 'type' => 'string', 'example' => 'DiskIOHang', 'title' => ''], + 'ResourceId' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'd-bp67acfmxazb4p****'."\n", 'title' => ''], + 'ResourceType' => ['description' => 'The resource type.', 'type' => 'string', 'example' => 'disk', 'title' => ''], + 'Status' => ['description' => 'The event status. Possible values:'."\n" + ."\n" + .'1. WillExecute: Pending'."\n" + ."\n" + .'2. Executing: In progress'."\n" + ."\n" + .'3. Executed: Processed'."\n" + ."\n" + .'4. Ignore: Ignored'."\n" + ."\n" + .'5. Expired: Expired'."\n" + ."\n" + .'6. Deleted: Deleted', 'type' => 'string', 'example' => 'WillExecute', 'title' => ''], + 'StartTime' => ['description' => 'The start time of the event. This value is a UNIX timestamp in milliseconds.', 'type' => 'string', 'example' => '1684204822000', 'title' => ''], + 'Description' => ['description' => 'The event description.', 'type' => 'string', 'example' => '可通过购买4296预配置IOPS以获得成本优化,根据您过往7天使用情况,预计成本可以下降16%。', 'title' => ''], + 'RecommendAction' => ['description' => 'The recommended action after the event occurred. Possible values:'."\n" + ."\n" + .'- ModifyDiskSpec: Upgrade or downgrade the disk.'."\n" + ."\n" + .'- CreateSnapshot: Create a snapshot.'."\n" + ."\n" + .'- ResizeDisk: Scale out the disk.'."\n" + ."\n" + .'- AdjustProvision: Adjust the provisioned performance.'."\n" + ."\n" + .'- ModifyInstanceSpec: Upgrade or downgrade the instance.', 'type' => 'string', 'example' => 'AdjustProvision', 'title' => ''], + 'RecommendParams' => ['description' => 'The parameters for the recommended action.', 'type' => 'string', 'example' => '4296', 'title' => ''], + 'EventLevel' => ['description' => 'The event level. Possible values:'."\n" + ."\n" + .'1. INFO'."\n" + ."\n" + .'2. WARN'."\n" + ."\n" + .'3. CRITICAL', 'type' => 'string', 'example' => 'INFO', 'title' => ''], + 'EndTime' => ['description' => 'The end time of the event. This value is a UNIX timestamp in milliseconds.', 'type' => 'string', 'example' => '1679538083000', 'title' => ''], + 'ExtraAttributes' => ['description' => 'The additional properties. Possible fields include the following:'."\n" + ."\n" + .'- EcsInstanceId: The ID of the ECS instance to which the disk is attached.'."\n" + ."\n" + .'- Adapter: The mount target of the disk.', 'type' => 'string', 'example' => '{\\"EcsInstanceId\\":\\"i-uf6dkn9qpcw6y94g7ag7\\",\\"Adapter\\":\\"hda\\"}', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], '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.', 'description' => ''], + ['errorCode' => 'DocumentConvertFailed.ExceedFileSizeLimit', 'errorMessage' => 'The conversion has been failed, exceed file size limit.', 'description' => 'english description1'], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The Tag.N.Key contain duplicate key.', 'description' => ''], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The specified parameter has changed while using an already used clientToken.', 'description' => 'The request and a previous request contains the same client token but different parameters.'], + ['errorCode' => 'InvalidDiskSize.NotSupported', 'errorMessage' => 'The specified parameter size is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.EndTime', 'errorMessage' => 'The specified parameter EndTime is earlier than StartTime.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'InvalidParameter.TooManyDataQueried', 'errorMessage' => 'Too many data queried.', 'description' => ''], ], 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' => 'AliCroup2CloudUserCannotBuyNotInnerCommodity', 'errorMessage' => 'There is no group cloud commodity label, and users within the group are not allowed to purchase.', 'description' => '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.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'IncorrectDiskStatus.CreatingSnapshot', 'errorMessage' => 'A previous snapshot creation is in process.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'InvalidDiskCategory.NotSupported', 'errorMessage' => 'The specified disk category is not supported.', 'description' => ''], ], [ - [ - 'errorCode' => 'InvalidApi.NotFound', - 'errorMessage' => 'Specified api is not found, please check your url and method.', - ], - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeEvents', + 'summary' => 'Queries threat events for disks.', + 'changeSet' => [ + ['createdAt' => '2024-12-06T09:03:30.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-08-19T03:21:55.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeEvents'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'ebs:DescribeEvents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - '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', + '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"}]', ], - 'BindEnterpriseSnapshotPolicy' => [ - 'summary' => 'Bind disks into a enterprise-level snapshot policy.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLensMonitorDisks' => [ + 'summary' => 'Queries information about one or more of your Elastic Block Storage (EBS) disks.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '159099', - 'abilityTreeNodes' => [ - 'FEATUREdiskTL976Y', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '216732', + 'abilityTreeNodes' => ['FEATUREdisk2F270T', 'FEATUREdiskLP80G7'], ], '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', - ], + 'schema' => ['description' => 'The region ID. You can call the DescribeRegions operation to query the list of regions that support EBS Lens.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PolicyId', + 'name' => 'DiskIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '快照策略ID', - 'description' => 'The id of the policy.', - 'type' => 'string', - 'required' => true, - 'example' => 'esp-xxx', + 'title' => '', + 'description' => 'A list of disk IDs.', + 'type' => 'array', + 'items' => ['description' => 'The disk ID.', 'type' => 'string', 'required' => false, 'example' => 'd-cd40hxfu0v*****', 'title' => ''], + 'required' => false, + 'example' => '[\'d-1\', \'d-2\']', + 'maxItems' => 100, ], ], [ - 'name' => 'DiskTargets', + 'name' => 'DiskCategory', + 'in' => 'query', + 'schema' => ['description' => 'The category of the disk. Valid values:'."\n" + ."\n" + .'- cloud: basic disk.'."\n" + ."\n" + .'- cloud\\_efficiency: ultra disk.'."\n" + ."\n" + .'- cloud\\_ssd: standard SSD.'."\n" + ."\n" + .'- cloud\\_essd: Enhanced SSD (ESSD).'."\n" + ."\n" + .'- cloud\\_auto: ESSD AutoPL disk.'."\n" + ."\n" + .'- cloud\\_essd\\_entry: ESSD Entry disk.', 'type' => 'string', 'example' => 'cloud_auto', 'title' => '', 'required' => false], + ], + [ + 'name' => 'LensTags', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => 'the disk targets', - 'description' => 'The list of disks.', + 'description' => 'A list of event tags. This parameter is used to filter disks for which the specified types of events occurred within the last 24 hours. Valid values:'."\n" + ."\n" + .'- NoSnapshot: data protection'."\n" + ."\n" + .'- BurstIOTriggered: burst I/O'."\n" + ."\n" + .'- CostOptimizationNeeded: cost optimization'."\n" + ."\n" + .'- DiskSpecNotMatchedWithInstance: The disk specifications do not match the instance type.'."\n" + ."\n" + .'- DiskIONo4kAligned: non-4K aligned read/write'."\n" + ."\n" + .'- DiskIOHang: An I/O hang occurred on the disk.'."\n" + ."\n" + .'- InstanceIOPSExceedInstanceMaxLimit: The IOPS of the instance has reached its upper limit.'."\n" + ."\n" + .'- InstanceBPSExceedInstanceMaxLimit: The BPS of the instance has reached its upper limit.'."\n" + ."\n" + .'- DiskIOPSExceedInstanceMaxLimit: The IOPS of the disk has reached the upper limit of the instance.'."\n" + ."\n" + .'- DiskBPSExceedInstanceMaxLimit: The BPS of the disk has reached the upper limit of the instance.'."\n" + ."\n" + .'- DiskIOPSExceedDiskMaxLimit: The IOPS of the disk has reached its upper limit.'."\n" + ."\n" + .'- DiskBPSExceedDiskMaxLimit: The BPS of the disk has reached its upper limit.', 'type' => 'array', - 'items' => [ - 'description' => 'The id of a disk.', - 'type' => 'string', - 'required' => false, - 'example' => 'd-xxx', - ], + 'items' => ['description' => 'The event tag of the disk.', 'type' => 'string', 'required' => false, 'example' => 'NoSnapshot', 'title' => ''], 'required' => false, - 'maxItems' => 10, + 'maxItems' => 100, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'NextToken', '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****', - ], + 'schema' => ['description' => 'The token used to start the next query. Set this parameter to the NextToken value returned from a previous call to this operation.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'caeba0bbb2be03f84eb48b699f0a****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: 100.'."\n" + .'Default value:'."\n" + ."\n" + .'- 10\\.'."\n" + ."\n" + .'- If you set this parameter to a value greater than 100, the default value is 100.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'DiskIdPattern', + 'in' => 'query', + 'schema' => ['description' => 'A regular expression to filter disk IDs in a fuzzy query.', 'type' => 'string', 'required' => false, 'example' => 'd-cd40hxfu0v*', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Response', - 'description' => 'Response', + 'title' => 'DescribeLensMonitorDisksResponse', + 'description' => 'DescribeLensMonitorDisksResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'EF4CA176-3358-5B74-B317-B1908B4B1F7D', + 'DiskInfos' => [ + 'description' => 'The list of disk information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The disk information.', + 'type' => 'object', + 'properties' => [ + 'DiskId' => ['description' => 'The disk ID.', 'type' => 'string', 'example' => 'd-cd401****', 'title' => ''], + 'DiskName' => ['description' => 'The disk name.', 'type' => 'string', 'example' => 'disk-28c6b****', 'title' => ''], + 'DiskType' => ['description' => 'The type of the disk. Valid values:'."\n" + ."\n" + .'- system: system disk.'."\n" + ."\n" + .'- data: data disk.', 'type' => 'string', 'example' => 'system', 'title' => ''], + 'DiskStatus' => ['description' => 'The status of the disk. Valid values:'."\n" + ."\n" + .'- Available: in use.'."\n" + ."\n" + .'- Deleted: deleted.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'DiskCategory' => ['description' => 'The category of the disk. Valid values:'."\n" + ."\n" + .'- cloud: basic disk.'."\n" + ."\n" + .'- cloud\\_efficiency: ultra disk.'."\n" + ."\n" + .'- cloud\\_ssd: standard SSD.'."\n" + ."\n" + .'- cloud\\_essd: ESSD.'."\n" + ."\n" + .'- cloud\\_auto: ESSD AutoPL disk.'."\n" + ."\n" + .'- cloud\\_essd\\_entry: ESSD Entry disk.', 'type' => 'string', 'example' => 'cloud_essd', 'title' => ''], + 'PerformanceLevel' => ['description' => 'The performance level of the ESSD. Valid values:'."\n" + ."\n" + .'- PL0: A maximum of 10,000 random read/write IOPS per disk.'."\n" + ."\n" + .'- PL1: A maximum of 50,000 random read/write IOPS per disk.'."\n" + ."\n" + .'- PL2: A maximum of 100,000 random read/write IOPS per disk.'."\n" + ."\n" + .'- PL3: A maximum of 1,000,000 random read/write IOPS per disk.', 'type' => 'string', 'example' => 'PL0', 'title' => ''], + 'Tags' => [ + 'description' => 'The collection of tags for the disk.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag of the disk.', + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'user', 'title' => ''], + 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'tag1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'ZoneId' => ['description' => 'The ID of the zone to which the disk belongs.', 'type' => 'string', 'example' => 'cn-hangzhou-j', 'title' => ''], + 'Size' => ['description' => 'The size of the disk, in GiB.', 'type' => 'integer', 'format' => 'int32', 'example' => '64', 'title' => ''], + 'Iops' => ['description' => 'The maximum number of input/output operations per second (IOPS).', 'type' => 'integer', 'format' => 'int32', 'example' => '4000', 'title' => ''], + 'Bps' => ['description' => 'The maximum throughput. Unit: MB/s.', 'type' => 'integer', 'format' => 'int32', 'example' => '300', 'title' => ''], + 'ProvisionedIops' => ['description' => 'The provisioned read/write IOPS of the ESSD AutoPL disk. Valid values: 0 to min{50000, 1000 \\* capacity - baseline performance}.'."\n" + ."\n" + .'Baseline performance = min{1,800 + 50 \\* capacity, 50,000}.'."\n" + ."\n" + .'This parameter is returned only when `DiskCategory` is set to `cloud_auto`. For more information, see [ESSD AutoPL disks](~~368372~~).', 'type' => 'integer', 'format' => 'int32', 'example' => '4000', 'title' => ''], + 'BurstingEnabled' => ['description' => 'Indicates whether the performance burst feature is enabled. Valid values:'."\n" + ."\n" + .'- true: Yes.'."\n" + ."\n" + .'- false: No.'."\n" + ."\n" + .'This parameter is returned only when `DiskCategory` is set to `cloud_auto`. For more information, see [ESSD AutoPL disks](~~368372~~).', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'LensTags' => [ + 'description' => 'A collection of event tags for the disk. The event tags indicate the events that occurred on the disk in the last 24 hours. The data may have a delay of up to 1 hour.', + 'type' => 'array', + 'items' => ['description' => 'The event tag of the disk.', 'type' => 'string', 'example' => '["NoSnapshot", "DiskIOHang"]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'SharingEnabled' => ['description' => 'Indicates whether the disk is a shared disk.', 'type' => 'string', 'example' => 'true', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], + 'NextToken' => ['description' => 'The token to use to retrieve the next page of results. This value is not returned when there are no more results to return.', 'type' => 'string', 'title' => '', 'example' => 'caeba0bbb2be03f84eb48b699f0a****'], + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '6'], + 'RequestId' => ['description' => 'The ID of the request. This ID is returned for every request, regardless of the result.', 'type' => 'string', 'title' => '', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****'], ], + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation 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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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' => [], - ], + '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', + 'changeSet' => [ + ['createdAt' => '2025-04-29T10:57:08.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-01-03T10:09:07.000Z', 'description' => 'Request parameters changed'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '159100', - 'abilityTreeNodes' => [ - 'FEATUREdiskAAH44P', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLensMonitorDisks'], ], + 'product' => ['code' => 'disk', 'title' => '块存储'], ], - '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', - ], - ], + 'ramActions' => [ [ - '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', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeLensMonitorDisks', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], ], - 'required' => false, - 'maxItems' => 10, ], ], + ], + ], + 'DescribeLensServiceStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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****', - ], + 'AK' => [], ], ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '138260', + 'abilityTreeNodes' => ['FEATUREdisk2F270T', 'FEATUREdiskLP80G7'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Response', - 'description' => 'Response', + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '061DE1AB-08BA-5ACD-A03A-440117C6939A', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****'], + 'Status' => ['description' => 'The status of EBS Lens. Valid values:'."\n" + ."\n" + .'- Applying: The service is being applied for.'."\n" + ."\n" + .'- UnAvailable: The service is unavailable.'."\n" + ."\n" + .'- Available: The service is available.', 'type' => 'string', 'example' => 'Available', 'title' => ''], ], + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value 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' => '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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'InvalidApi.NotFound', - 'errorMessage' => 'Specified api is not found, please check your url and method.', - ], - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'title' => 'Query EBS lens service status', + 'summary' => 'Queries the status of the EBS Lens service activated by the user.', + 'changeSet' => [ + ['createdAt' => '2023-03-22T01:59:35.000Z', 'description' => 'Error codes changed'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLensServiceStatus'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeLensServiceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\",\\n \\"Status\\": \\"Available\\"\\n}","type":"json"}]', + ], + 'DescribeMetricData' => [ + 'summary' => 'Queries the monitoring metrics of a resource.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '159101', - 'abilityTreeNodes' => [ - 'FEATUREdiskAAH44P', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '185234', + 'abilityTreeNodes' => ['FEATUREdiskLP80G7'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'MetricName', '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', - ], + 'schema' => ['title' => '', 'description' => 'The name of the metric. Valid values:'."\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' => 'PolicyId', + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The beginning of the time range to query metric data. The start time can be up to 30 days before the current time. If you leave both the StartTime and EndTime parameters empty, the system queries the metrics for the most recent period. The time must be in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'required' => false, 'example' => '2023-11-21T01:50:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The end of the time range to query metric data. The time cannot be later than the current time. The time must be in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'required' => false, 'example' => '2023-11-21T02:00:00Z'], + ], + [ + 'name' => 'Period', 'in' => 'query', 'schema' => [ - 'title' => 'the id of the snapshot policy', - 'description' => 'The id of the policy.', - 'type' => 'string', - 'required' => true, - 'example' => 'esp-xxx', + 'title' => '', + 'description' => 'The interval at which to query metric data. Unit: seconds. The default value is 5. Valid values:'."\n" + ."\n" + .'- 5: 5-second precision. You can query data within a 12-hour time range.'."\n" + .'- 10: 10-second precision. You can query data within a 24-hour time range.'."\n" + .'- 60: 60-second precision. You can query data within a 7-day time range.'."\n" + .'- 300: 300-second precision. You can query data within a 30-day time range.'."\n" + .'- 600: 600-second precision. You can query data within a 30-day time range.'."\n" + .'- 3600: 3600-second precision. You can query data within a 30-day time range.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => [], + 'example' => '60', ], ], [ - 'name' => 'ClientToken', + 'name' => 'Dimensions', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'A map of dimensions in the JSON format. The map specifies the dimensions to query. The following keys are supported:'."\n" + ."\n" + .'- DiskId: The disk name, such as d-xxx.'."\n" + .'- DeviceType: The disk category. \\`system\\` indicates a system disk and \\`data\\` indicates a data disk.'."\n" + .'- DeviceCategory: The disk type, such as cloud\\_essd.'."\n" + .'- EcsInstanceId: The name of the ECS instance to which the disk is attached, such as i-xxx.'."\n" + .'- Azone: The zone, such as cn-hangzhou-a.'."\n" + ."\n" + .'The returned results are the intersection of all specified dimension-based filter conditions.', 'type' => 'string', 'required' => false, 'example' => '{"DiskId":["d-bp14xxxx","d-bp11xxxx"], "DeviceCategory": ["cloud_essd"]}'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'cn-shanghai'], + ], + [ + 'name' => 'AggreOps', + 'in' => 'query', + 'schema' => ['description' => 'The method for aggregating data over time. Valid values:'."\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: The sum of values in a left-closed, right-open interval.'."\n" + .'- AVG\\_OVER\\_TIME\\_LCRO: The average of values in a left-closed, right-open interval.'."\n" + .'- SUM\\_OVER\\_TIME\\_LORC: The sum of values in a left-open, right-closed interval.'."\n" + .'- AVG\\_OVER\\_TIME\\_LORC: The average of values in a left-open, right-closed interval.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'AVG_OVER_TIME'], + ], + [ + 'name' => 'AggreOverLineOps', 'in' => 'query', + 'schema' => ['description' => 'The method for aggregating data across different lines. Valid values:'."\n" + ."\n" + .'- NON: No aggregation is performed.'."\n" + .'- SUM: The sum of values.'."\n" + .'- AVG: The average of values.'."\n" + .'- COUNT: The number of values.'."\n" + .'- MAX: The maximum value.'."\n" + .'- MIN: The minimum value.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'NON'], + ], + [ + 'name' => 'GroupByLabels', + 'in' => 'query', + 'style' => 'simple', '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', + 'description' => 'A list of fields for grouping and aggregation.', + 'type' => 'array', + 'items' => ['description' => 'The field for grouping. The following fields are supported:'."\n" + ."\n" + .'- DiskId: The disk name, such as d-xxx.'."\n" + .'- DeviceType: The disk category. \\`system\\` indicates a system disk and \\`data\\` indicates a data disk.'."\n" + .'- DeviceCategory: The disk type, such as cloud\\_essd.'."\n" + .'- EcsInstanceId: The name of the ECS instance to which the disk is attached, such as i-xxx.'."\n" + .'- Azone: The zone, such as cn-hangzhou-a.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'DeviceType'], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Response', - 'description' => 'Response', + 'title' => 'DescribeMetricDataResponse', + 'description' => 'DescribeMetricDataResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B9F716DF-FAFD-50FD-B962-BCE0C837639A', + 'TotalCount' => ['title' => '', 'description' => 'The total number of data entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DataList' => [ + 'title' => '', + 'description' => 'A collection of monitoring data for the disk.', + 'type' => 'array', + 'items' => [ + 'description' => 'A list of returned data.', + 'type' => 'object', + 'properties' => [ + 'Labels' => ['description' => 'The labels.', 'type' => 'any', 'title' => '', 'example' => '{"DiskId": "d-1234"}'], + 'Datapoints' => ['description' => 'A list of monitoring data. The list contains a series of consecutive second-level timestamps and the corresponding metric values.', 'type' => 'any', 'title' => '', 'example' => '{"1699258861": 1,"1699259461": 0}'], + ], + 'title' => '', + ], + ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****'], + 'Warnings' => [ + 'description' => 'A list of warning messages.', + 'type' => 'array', + 'items' => ['description' => 'The warning message.', 'type' => 'string', 'title' => '', 'example' => 'not complete.'], + 'title' => '', ], ], ], @@ -9085,356 +5211,345 @@ ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation 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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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', + 'changeSet' => [ + ['createdAt' => '2025-07-02T09:50:11.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-04-29T10:57:08.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-11-07T13:16:45.000Z', 'description' => 'Request parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMetricData'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], ], + 'ramActions' => [], + ], + 'DescribePairDrills' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', '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****', - ], - ], - ], - ], + 'operationType' => 'list', + 'abilityTreeCode' => '186462', + 'abilityTreeNodes' => ['FEATUREdiskAQUAFH', 'FEATUREdiskVW208V'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The parameter %s is invalid.', - ], + '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', 'title' => ''], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User is not authorized to operate.', - ], - [ - 'errorCode' => 'Forbidden.Action', - 'errorMessage' => 'User is not authorized to operate this action.', - ], + [ + 'name' => 'DrillId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the drill.'."\n", 'type' => 'string', 'required' => false, 'example' => 'drill-xxxx'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + 'name' => 'PairId', + 'in' => 'query', + 'schema' => ['title' => '', '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'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '', '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'], ], - 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '', '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****'], ], - ], - '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' => [], + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '138260', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - 'FEATUREdiskLP80G7', + [ + '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'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => 'DescribePairDrillResponse', + 'description' => 'The schema of the 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', + 'Drills' => [ + 'description' => 'The information of disaster recovery drills that were performed on the replication pair.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DrillId' => ['title' => '', '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' => '', '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'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', ], + 'NextToken' => ['title' => '', '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' => '', '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', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User is not authorized to operate.', - ], - [ - 'errorCode' => 'Forbidden.Action', - 'errorMessage' => 'User is not authorized to operate this action.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], + ], + ], + '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\\",\\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', + 'summary' => 'Queries the disaster recovery drills that were performed on the replication pair whose secondary disk resides in a specific region.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribePairDrills', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#PairId}'], + ], ], ], ], - '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', - ], + 'DescribeRegions' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '138257', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - 'FEATUREdiskLP80G7', + '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', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'default' => 'cn-shanghai', 'title' => ''], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', + '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)', 'title' => ''], + 'RegionEndpoint' => ['description' => 'The endpoint of the region.'."\n", 'type' => 'string', 'example' => 'ebs.cn-hangzhou.aliyuncs.com', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + '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', 'title' => ''], + 'ZoneId' => ['description' => 'The ID of the zone.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-h', 'title' => ''], + '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', 'title' => ''], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', ], ], ], ], ], '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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"17EE62D8-064E-5404-8B0D-72122478****\\",\\n \\"Regions\\": [\\n {\\n \\"LocalName\\": \\"China (Hangzhou)\\",\\n \\"RegionEndpoint\\": \\"ebs.cn-hangzhou.aliyuncs.com\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Zones\\": [\\n {\\n \\"LocalName\\": \\"Hangzhou Zone H\\",\\n \\"ZoneId\\": \\"cn-hangzhou-h\\",\\n \\"ResourceTypes\\": [\\n \\"ear\\"\\n ]\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + 'title' => '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.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeRegions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeReplicaGroupDrills' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9444,383 +5559,165 @@ 'deprecated' => false, 'systemTags' => [ 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '216732', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - 'FEATUREdiskLP80G7', - ], + 'abilityTreeCode' => '189140', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '', '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' => 'DiskIds', + 'name' => 'GroupId', '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, - ], + 'schema' => ['title' => '', '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' => 'DiskCategory', + 'name' => 'DrillId', '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', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the drill.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pg-drill-xxxx'], ], [ - 'name' => 'LensTags', + 'name' => 'NextToken', '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, - ], + 'schema' => ['title' => '', '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' => 'NextToken', + 'name' => 'MaxResults', '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****', - ], + 'schema' => ['title' => '', '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' => 'MaxResults', + 'name' => 'PageSize', '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', - ], + 'schema' => ['title' => '', 'description' => 'The number of entries per page. Valid values: 1 to 100.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'DiskIdPattern', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'Regular matching fuzzy query to filter cloud disk IDs.', - 'type' => 'string', - 'required' => false, - 'example' => 'd-cd40hxfu0v**', - ], + 'schema' => ['title' => '', 'description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'DescribeLensMonitorDisksResponse', - 'description' => 'DescribeLensMonitorDisksResponse'."\n", + 'title' => 'DescribePairGroupDrillsResponse', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'DiskInfos' => [ - 'description' => 'The information about the disks.'."\n", + 'Drills' => [ + 'description' => 'The information of disaster recovery drills that were performed on the replication pair-consistent group.'."\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" + 'DrillId' => ['title' => '', 'description' => 'The ID of the drill.'."\n", 'type' => 'string', 'example' => 'pg-drill-xxx'], + 'GroupId' => ['title' => '', '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" - .'* 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.', + .'* execute_failed'."\n" + .'* executed'."\n" + .'* executing'."\n" + .'* clear_failed'."\n" + .'* clearing'."\n", 'type' => 'string', - 'example' => 'PL0', + 'enumValueTitles' => ['execute_failed' => 'execute_failed', 'executed' => 'executed', 'executing' => 'executing', 'clear_failed' => 'clear_failed', 'clearing' => 'clearing'], + 'example' => 'executed', ], - 'Tags' => [ - 'description' => 'Tags of the disk.', + 'PairsInfo' => [ + 'title' => '', + 'description' => 'The information of replication pairs.'."\n", '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', - ], + 'PairId' => ['title' => '', 'description' => 'The ID of the replication pair.'."\n", 'type' => 'string', 'example' => 'pair-xxx'], + 'DrillDiskId' => ['title' => '', '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'], ], + 'description' => '', + 'title' => '', ], ], - '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', - ], + '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'], ], + 'description' => '', + 'title' => '', ], + '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.', - '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****', - ], + 'NextToken' => ['title' => '', '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' => '', '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation 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.', - ], - ], - 429 => [ - [ - 'errorCode' => 'BLOCK.LimitedRequest', - 'errorMessage' => 'Request was denied due to user flow control.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + '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', + 'summary' => 'Queries the disaster recovery drills that were performed on the replication pair-consistent group whose secondary disk resides in a specific region.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeReplicaGroupDrills', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#GroupId}'], + ], + ], + ], ], - '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', - ], + 'DescribeSolutionInstanceConfiguration' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9829,397 +5726,261 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '191205', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '189350', + 'abilityTreeNodes' => ['FEATUREdiskFDS0SW'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'SolutionId', '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', - ], + 'schema' => ['description' => 'The ID of the solution.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'sln-xxxxx'], ], [ - 'name' => 'EventName', + 'name' => 'RegionId', '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', - ], + 'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'cn-shanghai'], ], [ - 'name' => 'ResourceId', + 'name' => 'Parameters', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The resource ID.'."\n", - 'type' => 'string', + 'title' => '', + 'description' => 'The parameters.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the parameters.', + 'type' => 'object', + 'properties' => [ + 'ParameterKey' => ['description' => 'The key of the parameter.', 'type' => 'string', 'required' => true, 'example' => '***', 'title' => ''], + 'ParameterValue' => ['description' => 'The value of the parameter.'."\n" + ."\n" + .'> The Parameters parameter is optional. If you specify Parameters, you must specify ParameterValue.', 'type' => 'string', 'required' => true, 'example' => '***', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'd-bp67acfmxazb4p****', + 'maxItems' => 100, + 'example' => '', ], ], [ - 'name' => 'ResourceType', + '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~~).', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-42665544****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The type of resource. Valid values:'."\n" - ."\n" - .'* disk.'."\n" - ."\n" - .'Default value: disk.', - 'type' => 'string', - 'required' => false, - 'example' => 'disk', + 'title' => 'DescribeSlnInstanceConfigurationResponse', + 'description' => 'DescribeSlnInstanceConfigurationResponse.', + 'type' => 'object', + 'properties' => [ + 'Data' => [ + 'description' => 'The returned data.', + 'type' => 'array', + 'items' => [ + 'description' => 'The returned data.', + 'type' => 'object', + 'additionalProperties' => ['description' => 'The returned data.', 'type' => 'any', 'example' => '[]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****'], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'AssumeRoleFail.solution', 'errorMessage' => 'Assume role fail, please check RamRole for EBS Laboratory already exist and policy is correct.', 'description' => 'Assume role fail, please check RamRole for EBS Laboratory already exist and policy is correct.'], + ], [ - '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', + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => 'DescribeSolutionInstanceConfiguration', + 'summary' => 'Queries the default configurations of a solution.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSolutionInstanceConfiguration'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeSolutionInstanceConfiguration', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Data\\": [\\n {\\n \\"key\\": \\"[]\\"\\n }\\n ],\\n \\"RequestId\\": \\"11B55F58-D3A4-4A9B-9596-342420D0****\\"\\n}","type":"json"}]', + ], + 'DescribeUserTagKeys' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ [ - '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', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '253920', + 'abilityTreeNodes' => ['FEATUREdisk2F270T'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ [ - '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' => 'NextToken', + 'in' => 'formData', + 'schema' => ['description' => 'The query token returned by this call (Token).', 'type' => 'string', 'required' => false, 'example' => 'f07b150eadfa1d7a', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], [ - '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' => 'TagFilterKey', + 'in' => 'formData', + 'schema' => ['description' => 'The tagKey for filtering the query.', 'type' => 'string', 'required' => false, 'example' => 'tagKey', 'title' => ''], ], [ - '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', - ], + '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', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => 'DescribeLensUserTagKeyResponse', + 'description' => 'DescribeLensUserTagKeyResponse', '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", + 'TagKeys' => [ + 'description' => 'List of matching tag keys.', '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' => '', - ], + 'items' => ['description' => 'List of matching tag keys.', 'type' => 'string', 'example' => '{\'TagKey\': []}', 'title' => ''], + 'title' => '', ], + 'NextToken' => ['description' => 'The token for the next query. An empty NextToken indicates there are no more results.', 'type' => 'string', 'example' => 'f07b150eadfa1d7a', 'title' => ''], + 'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', 'title' => ''], + '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', 'title' => ''], ], ], ], ], '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.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], ], [ - [ - 'errorCode' => 'InvalidApi.NotFound', - 'errorMessage' => 'Specified api is not found, please check your url and method.', - ], - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + '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', + 'summary' => 'Centralized Role: Query User Disk Snapshot tagKeys', + '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', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeUserTagKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - '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', - ], + 'DescribeUserTagValues' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -10231,752 +5992,319 @@ 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '185234', - 'abilityTreeNodes' => [ - 'FEATUREdiskLP80G7', - ], + 'abilityTreeCode' => '253922', + 'abilityTreeNodes' => ['FEATUREdisk2F270T'], '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' => 'TagKey', + 'in' => 'formData', + 'schema' => ['title' => '标签键。最多包含20个子项。', 'description' => 'Tag key.', 'type' => 'string', 'required' => false, 'example' => 'TestKey'], ], [ - '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' => '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' => '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' => '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' => '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' => 'TagFilterValue', + 'in' => 'formData', + 'schema' => ['description' => 'Tag content filter', 'type' => 'string', 'required' => false, 'example' => 'keyValue', 'title' => ''], ], [ '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, - ], + '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' => 'DescribeMetricDataResponse', - 'description' => 'DescribeMetricDataResponse', + 'title' => 'DescribeLensUserTagValueResponse', + 'description' => 'DescribeLensUserTagValueResponse', '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.', + 'TagValues' => [ + 'title' => '标签键对应的标签值。', + 'description' => 'Tag values corresponding to the tag key.', 'type' => 'array', - 'items' => [ - 'description' => 'Warning message.', - 'type' => 'string', - 'example' => 'not complete.', - ], + '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', 'title' => ''], ], ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation 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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 429 => [ - [ - 'errorCode' => 'BLOCK.LimitedRequest', - 'errorMessage' => 'Request was denied due to user flow control.', - ], + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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', + 'summary' => 'Centralized Role: Query User Disk and Snapshot tagValues', + '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', - ], - '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', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeUserTagValues', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'FailoverDiskReplicaGroup' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', - 'abilityTreeCode' => '140055', - 'abilityTreeNodes' => [ - 'FEATUREdiskLP80G7', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '115797', + 'abilityTreeNodes' => ['FEATUREdiskPPYCY9'], ], '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', - ], + 'schema' => ['description' => 'The region ID of the secondary site of the replication pair-consistent group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'ReplicaGroupId', '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', - ], + 'schema' => ['description' => 'The ID of the replication pair-consistent group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'group-myreplica****', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'ClientToken', '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****', - ], + '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'description' => 'The schema of the 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****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****'], ], ], ], ], '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' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.NoPairInGroup', 'errorMessage' => 'The operation is not allowed because no pair in the group.', 'description' => 'The operation is not supported while the specified replication pair-consistent group has no replication pairs.'], + ['errorCode' => 'OperationDenied.PairGroupStatusConflict', 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', 'description' => 'The operation is not supported while the state of the replication pair is not the same as that of the replication pair-consistent group.'], + ['errorCode' => 'OperationDenied.PairGroupAZoneConflict', 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', 'description' => 'The operation is not supported while the replication pair-consistent group and the replication pair do not belong to the same region and zone.'], + ['errorCode' => 'OperationDenied.PairInAnotherGroup', 'errorMessage' => 'The operation is not allowed because pair is already in another group.', 'description' => 'The operation is not supported while the replication pair is added to another replication pair-consistent group.'], + ['errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', 'errorMessage' => 'Operation is not allowed on the primary site.', 'description' => 'The operation is not allowed on the primary site.'], + ['errorCode' => 'OperationDenied.OperateNotAllowedForStandby', 'errorMessage' => 'Operation is not allowed on the secondary site.', 'description' => 'The operation is not allowed on the secondary site.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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" + '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', + '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.', + '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', + .'* 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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:FailoverDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], ], + ], + 'FailoverDiskReplicaPair' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '138275', - 'abilityTreeNodes' => [ - 'FEATUREdiskLP80G7', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '71755', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], ], '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', - ], + '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', 'title' => ''], ], [ - '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', + 'name' => 'ReplicaPairId', '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', - ], + 'schema' => ['description' => 'The ID of the replication pair.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pair-cn-dsa****', 'title' => ''], ], [ - 'name' => 'Type', + 'name' => 'ClientToken', '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', - ], + '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'description' => 'The schema of the 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', - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****'], ], ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User is not authorized to operate.', - ], - [ - 'errorCode' => 'Forbidden.Action', - 'errorMessage' => 'User is not authorized to operate this action.', - ], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', 'errorMessage' => 'Operation is not allowed on the primary site.', 'description' => 'The operation is not allowed on the primary site.'], + ['errorCode' => 'OperationDenied.OperateNotAllowedForStandby', 'errorMessage' => 'Operation is not allowed on the secondary site.', 'description' => 'The operation is not allowed on the secondary site.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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" + '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', + 'summary' => 'Enables the failover feature for replication pairs.', + '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', + .'* 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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:FailoverDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], ], + ], + 'GetReport' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10985,648 +6313,426 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '114018', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '209319', + 'abilityTreeNodes' => ['FEATUREdisk2F270T'], ], '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' => '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' => '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' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'Region name.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'MaxResults', + 'name' => 'ReportType', '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', - ], + 'schema' => ['title' => '可选值:history/present', 'description' => 'Optional values: history/present.', 'type' => 'string', 'required' => false, 'example' => 'history'], ], [ - 'name' => 'NextToken', + 'name' => 'AppName', '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****', - ], + 'schema' => ['title' => '可选值,只在ReportType=present时AppName才会生效', 'description' => 'Optional, AppName only takes effect when ReportType=present.', 'type' => 'string', 'required' => false, 'example' => 'App1'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => 'GetReportResponse', + 'description' => 'GetReportResponse.', '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", + 'Datas' => [ + 'description' => 'Data Details.', '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', + 'Title' => ['description' => 'Data Title.', 'type' => 'string', 'example' => 'disk_count_percent_by_category', 'title' => ''], + 'Data' => [ + 'description' => 'Data.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Labels' => ['description' => 'Data Labels.', 'type' => 'object', 'example' => '{'."\n" + .' "category": "cloud"'."\n" + .'}', 'title' => ''], + '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" + .'}', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], + 'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The parameter %s is invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User is not authorized to operate.', - ], - [ - 'errorCode' => 'Forbidden.Action', - 'errorMessage' => 'User is not authorized to operate this action.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'title' => 'Get User Cloud Disk Usage Report', + 'summary' => 'Centralized Role: Obtain User Usage Report with reportId', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetReport'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:GetReport', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + '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"}]', + ], + 'ListReplicaEdgeSupported' => [ + 'summary' => 'Queries the destination regions and zones that support asynchronous replication for a specified zone.', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '156758', - 'abilityTreeNodes' => [ - 'FEATUREdiskFDS0SW', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '186462', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], + 'tenantRelevance' => 'publicInformation', ], '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-***', - ], + 'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'Azone', 'in' => 'query', - 'schema' => [ - 'title' => '解决方案示例名称', - 'description' => 'The name of the instance.', - 'type' => 'string', - 'required' => false, - 'example' => 'defaultName', - ], + 'schema' => ['description' => 'The zone ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou-h', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '解决方案示例描述', - 'description' => 'The description of the instance.', - 'type' => 'string', - 'required' => false, - 'example' => 'defaultDescription', - ], + 'schema' => ['description' => 'The token that is used to start the next query. Set this parameter to the value of NextToken that was returned by the last call. Do not set this parameter for the first call. If you set NextToken, PageSize and PageNumber are ignored. TotalCount is also invalid in the response. This parameter is not enabled.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'e71d8a535bd9c****'], ], [ - 'name' => 'ClientToken', + 'name' => 'MaxResults', '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****', - ], + 'schema' => ['description' => 'The maximum number of entries to return on each page. Valid values: 1 to 500. This parameter is not enabled.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], ], '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****', + 'SupportedRegions' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'title' => '', 'example' => 'cn-hangzhou'], + 'Zones' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SupportRtc' => ['description' => 'Indicates whether replication time control is supported.', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'ZoneId' => ['description' => 'The zone ID.', 'type' => 'string', 'title' => '', 'example' => 'cn-hangzhou-i'], + ], + 'description' => 'The zone information.', + 'title' => '', + 'example' => '', + ], + 'description' => 'The set of zone information.', + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'description' => 'The set of region information.', + 'title' => '', + 'example' => '', ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '17EE62D8-064E-5404-8B0D-72122478****'], + 'NextToken' => ['description' => 'The token that is used to start the next query. If NextToken is empty, no more results are available.', 'type' => 'string', 'example' => 'e71d8a535bd9c****', 'title' => ''], + 'MaxResults' => ['description' => 'The maximum number of entries to return on each page.'."\n" + ."\n" + .'Valid values: 1 to 500.'."\n" + ."\n" + .'Default value: 10.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], ], + 'title' => '', + 'description' => 'ListReplicaPairEdgeResponse', + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'title' => 'ListReplicaEdgeSupported', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'disk', 'title' => '块存储'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"20758A-585D-4A41-A9B2-28DA8F4F****\\"\\n}","type":"json"}]', - 'title' => 'UpdateSolutionInstanceAttribute', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SupportedRegions\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Zones\\": [\\n {\\n \\"SupportRtc\\": false,\\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"}]', ], - 'TagResources' => [ - 'summary' => 'Creates tags and adds the tags to Elastic Block Storage (EBS) resources.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListReports' => [ + 'summary' => 'Queries the historical report list for a specified application using a centralized role.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '200638', + 'abilityTreeNodes' => ['FEATUREdisk2F270T'], ], 'parameters' => [ [ - 'name' => 'ResourceId', + 'name' => 'NextToken', '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, - ], + 'schema' => ['title' => '', 'description' => 'The pagination token. Set this parameter to the value of NextToken returned in the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'a6792e832ff0XXXXX'], ], [ - 'name' => 'Tag', + 'name' => 'MaxResults', '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, - ], + 'schema' => ['title' => '', 'description' => 'The maximum number of entries to return when using token-based pagination.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'RegionId', + 'name' => 'PageSize', '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', - ], + 'schema' => ['title' => '', 'description' => 'The number of entries per page in a paged query.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], ], [ - 'name' => 'ResourceType', + 'name' => 'PageNumber', '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', - ], + 'schema' => ['title' => '', 'description' => 'The page number in a paged query.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', + 'in' => 'formData', + 'schema' => ['description' => 'The region ID. You can call [DescribeRegions](~~354276~~) to query the regions supported by EBS Lens.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'AppId', '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****', - ], + 'schema' => ['description' => 'The application ID.', 'type' => 'string', 'required' => false, 'example' => 'app-xxx', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'TagResponse', - 'description' => 'TagResponse', + 'title' => '', + 'description' => 'DescribeAppHistoryReportsResponse', '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****', + 'HistoryReports' => [ + 'title' => '', + 'description' => 'historyReports', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => 'The application name.', 'type' => 'string', 'example' => 'default', 'title' => ''], + 'ReportId' => ['description' => 'The report ID.', 'type' => 'string', 'example' => 'report-e19c7b597f5fXX', 'title' => ''], + 'ReportTime' => ['description' => 'The time when the report was generated (UTC).', 'type' => 'string', 'example' => '2024-10-07T02:09:17Z', 'title' => ''], + 'SubscribePeriod' => ['description' => 'The subscription period of the report.', 'type' => 'string', 'example' => 'Weekly', 'title' => ''], + 'ReportName' => ['description' => 'The report name.', 'type' => 'string', 'example' => 'default-2024-09-30~2024-10-07-Usage Report', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'example' => '', ], + 'NextToken' => ['title' => '', 'description' => 'The pagination token. Set this parameter to the value of NextToken returned in the previous API call.', 'type' => 'string', 'example' => 'a6792e832ff0XXXX'], + 'PageNumber' => ['title' => '', 'description' => 'The page number in a paged query.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['title' => '', 'description' => 'The number of entries per page in a paged query.', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalCount' => ['title' => '', 'description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'RequestId' => ['description' => 'The request ID generated by Alibaba Cloud for this request.', 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', 'title' => ''], ], + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], + 'staticInfo' => ['returnType' => 'synchronous'], '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', + '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"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'Query usage report list', + 'changeSet' => [ + ['createdAt' => '2025-06-10T02:34:55.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-05-15T01:56:18.000Z', 'description' => 'Request parameters changed'], ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListReports'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:ListReports', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + ], + 'ListTagResources' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11637,9 +6743,7 @@ 'systemTags' => [ 'operationType' => 'list', 'abilityTreeCode' => '140645', - 'abilityTreeNodes' => [ - 'FEATUREdiskFDS0SW', - ], + 'abilityTreeNodes' => ['FEATUREdiskFDS0SW'], ], 'parameters' => [ [ @@ -11647,15 +6751,10 @@ 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => '资源ID,n的取值范围为 [1, 50]', + 'title' => '', '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****', - ], + 'items' => ['description' => 'The ID of resource N. Valid values of N: 1 to 50.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pair-cn-c4d2t7f****', 'title' => ''], 'required' => false, 'example' => 'disk-123', 'maxItems' => 51, @@ -11666,7 +6765,7 @@ 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => '标签键值对。n的取值范围为 [1, 20]', + 'title' => '', 'description' => 'The information about the tags.'."\n" ."\n" .'You can specify at most 20 tags in each call.', @@ -11674,29 +6773,18 @@ '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', - ], + '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.', + 'title' => '', ], 'required' => false, 'maxItems' => 21, @@ -11705,50 +6793,26 @@ [ 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '下一个查询开始Token', - 'description' => 'The token used to start the next query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'token123', - ], + 'schema' => ['title' => '', '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', - ], + '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', - ], + '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****', - ], + '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 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' => [ @@ -11758,159 +6822,64 @@ 'description' => 'ListTagResourcesResponse', 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'title' => '下一个查询开始Token', - 'description' => 'The token used to start the next query.'."\n", - 'type' => 'string', - 'example' => 'caeba0bbb2be03f84eb48b699f0a****', - ], + 'NextToken' => ['title' => '', 'description' => 'The token used to start the next query.'."\n", 'type' => 'string', 'example' => 'caeba0bbb2be03f84eb48b699f0a****'], 'TagResources' => [ - 'title' => '资源标签列表', + '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', - ], + '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' => '', '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", + 'title' => '', ], ], - '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****', - ], + 'RequestId' => ['title' => '', '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.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The Tag.N.Key contain duplicate key.', 'description' => ''], + ['errorCode' => 'NumberExceed.ResourceIds', 'errorMessage' => 'The ResourceIds parameter number is exceed , Valid : 50', 'description' => ''], + ['errorCode' => 'NumberExceed.Tags', 'errorMessage' => 'NumberExceed.Tags', 'description' => ''], + ['errorCode' => 'OperationDenied.QuotaExceed', 'errorMessage' => 'The quota of tags on resource is beyond permitted range.', 'description' => ''], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The specified parameter has changed while using an already used clientToken.', 'description' => 'The request and a previous request contains the same client token but different parameters.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => ''], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified ResourceIds are not found in our records.', 'description' => ''], + ['errorCode' => 'InvalidResourceType.NotFound', 'errorMessage' => 'The ResourceType provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], 'eventInfo' => [ @@ -11919,443 +6888,397 @@ ], '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', + 'summary' => 'Queries the tags that are added to EBS resources, or queries the IDs and tags of resources in a non-default resource group.', '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', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'ModifyApp' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '140644', - 'abilityTreeNodes' => [ - 'FEATUREdiskFDS0SW', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '193442', + 'abilityTreeNodes' => ['FEATUREdisk2F270T', 'FEATUREdiskLP80G7'], ], 'parameters' => [ [ - 'name' => 'ResourceId', + 'name' => 'AppName', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['title' => '', 'description' => 'The name of the app.', 'type' => 'string', 'required' => false, 'example' => 'App1'], + ], + [ + 'name' => 'AppTags', '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.', + 'title' => '', + 'description' => 'The custom tags.', 'type' => 'array', 'items' => [ - 'description' => 'The ID of resource N. Valid values of N: 1 to 50.'."\n", - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'key', 'title' => ''], + 'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'value', 'title' => ''], + ], 'required' => false, - 'example' => 'pair-cn-c4d2t7f****', + 'description' => '', + 'title' => '', + 'example' => '', ], 'required' => true, - 'example' => 'disk-123', - 'maxItems' => 51, + 'example' => 'default', + 'maxItems' => 100, ], ], [ - 'name' => 'TagKey', + 'name' => 'SubscribeStatus', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['title' => '', 'description' => 'The subscription status of the app usage report. Valid values:'."\n" + ."\n" + .'- UnSubscribe'."\n" + .'- Subscribe.', 'type' => 'string', 'required' => true, 'example' => 'Subscribe'], + ], + [ + 'name' => 'SubscribePeriod', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The send interval of the app usage report. Valid values:'."\n" + .'- Weekly'."\n" + .'- Biweekly'."\n" + .'- Monthly.', 'type' => 'string', 'required' => true, 'example' => 'Weekly'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the app.', 'type' => 'string', 'required' => false, 'example' => 'This is description.'], + ], + [ + 'name' => 'ReportSendEnabled', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Specifies whether to send reports to email and internal messages.', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID. You can call [DescribeRegions](~~25609~~) to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'title' => ''], + ], + [ + 'name' => 'Owner', + 'in' => 'query', + 'schema' => ['description' => 'The owner.', 'type' => 'string', 'required' => false, 'example' => 'dev789`', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'A string generated by the server that serves as a request identifier for the client.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****'], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => ['description' => 'The app ID.', 'type' => 'string', 'required' => false, 'example' => 'app-xxx', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + 'title' => '', + 'description' => 'LensResponse', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****', 'title' => ''], + 'Code' => ['description' => 'The response code.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'UserCode' => ['description' => 'The user code.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'Message' => ['description' => 'The returned message.', 'type' => 'string', 'example' => 'successful', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful. Valid values: true: The request was successful. false: The request failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'DynamicCode' => ['description' => 'The error code.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'DynamicMessage' => ['description' => 'The dynamic message. This parameter is not in use. Ignore this parameter.', 'type' => 'string', 'example' => '-', 'title' => ''], + 'AccessDeniedDetail' => ['description' => 'The details about the access denial.', 'type' => 'string', 'example' => 'None', 'title' => ''], ], - 'required' => false, - 'example' => 'disk-123', - 'maxItems' => 21, + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ], [ - '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', + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 429 => [ + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], + ], + ], + 'title' => 'Modify an app', + 'summary' => 'Centralized role: Modifies an app.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ModifyApp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + '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"}]', + ], + 'ModifyDedicatedBlockStorageClusterAttribute' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '138430', + 'abilityTreeNodes' => ['FEATUREdisk1O4P8E'], + ], + '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', - ], + 'schema' => ['title' => '', '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' => 'ResourceType', + 'name' => 'DbscId', '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', - ], + 'schema' => ['title' => '', '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 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****', - ], + '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 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' => 'TagResponse', - 'description' => 'TagResponse', + 'description' => '', '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****', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '11B55F58-D3A4-4A9B-9596-342420D0****', 'title' => ''], ], + 'title' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => ''], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified ResourceIds are not found in our records.', 'description' => ''], + ['errorCode' => 'InvalidResourceType.NotFound', 'errorMessage' => 'The ResourceType provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'MissingParameter.ResourceType', 'errorMessage' => 'The parameter - ResourceType should not be null', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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', + 'summary' => 'Modifies the information of a dedicated elastic block storage cluster.', + '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.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ModifyDedicatedBlockStorageClusterAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ], + ], + ], ], + ], + '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' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'abilityTreeCode' => '152482', - 'abilityTreeNodes' => [ - 'FEATUREdiskFDS0SW', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '115799', + 'abilityTreeNodes' => ['FEATUREdiskPPYCY9'], ], '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', - ], + 'schema' => ['description' => 'The region ID of the replication pair-consistent group.', 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ - 'name' => 'ResourceType', + 'name' => 'ReplicaGroupId', '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', - ], + 'schema' => ['description' => 'The ID of the replication pair-consistent group. Call [DescribeDiskReplicaGroups](~~426614~~) to query the IDs of replication pair-consistent groups.', 'type' => 'string', 'required' => true, 'example' => 'pg-myreplica****', 'title' => ''], ], [ - 'name' => 'ResourceId', + 'name' => 'GroupName', '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', - ], + 'schema' => ['description' => 'The name of the replication pair-consistent group. The name must be 2 to 128 characters in length. It must start with a letter or a Chinese character and cannot start with `http://` or `https://`. The name can contain digits, colons (:), underscores (\\_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'myreplicagrouptest', 'title' => ''], ], [ - 'name' => 'NewResourceGroupId', + 'name' => 'Description', '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', - ], + '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://`.', 'type' => 'string', 'required' => false, 'example' => 'This is description.', 'title' => ''], + ], + [ + 'name' => 'RPO', + 'in' => 'query', + 'schema' => ['description' => 'The recovery point objective (RPO) of the replication pair-consistent group. Unit: seconds. A value of 900 is supported.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '900', 'title' => ''], ], [ '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****', - ], + 'schema' => ['description' => 'A client token to ensure the idempotence of the request. Generate a unique value for this parameter from your client. 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****', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth. Unit: Kbps.'."\n" + ."\n" + .'> This parameter is not available.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'required' => false, 'example' => 'null'], + ], + [ + 'name' => 'EnableRtc', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable replication time control (RTC). Valid values:'."\n" + ."\n" + .'- false: RTC is disabled.'."\n" + ."\n" + .'- true: RTC is enabled.'."\n" + ."\n" + .'> If this parameter is set to true, RTC is enabled for the replication pair-consistent group. RTC is also enabled for all asynchronous replication pairs that are added to the group.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'TagResponse', - 'description' => 'TagResponse'."\n", + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****'], ], + 'example' => '', ], ], ], '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' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.GroupHasPair', 'errorMessage' => 'The group cannot be deleted due to not empty.', 'description' => 'The replication pair-consistent group contains replication pairs and cannot be deleted.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', 'errorMessage' => 'Operation is not allowed on the primary site.', 'description' => 'The operation is not allowed on the primary site.'], + ['errorCode' => 'OperationDenied.OperateNotAllowedForStandby', 'errorMessage' => 'Operation is not allowed on the secondary site.', 'description' => 'The operation is not allowed on the secondary site.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - '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.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], 'eventInfo' => [ @@ -12363,221 +7286,178 @@ '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', + 'title' => 'ModifyDiskReplicaGroup', + 'description' => '## Description'."\n" + ."\n" + .'- For information about the regions that support the replication pair-consistent group feature, see [Overview of asynchronous replication](~~314563~~).'."\n" + ."\n" + .'- The replication pair-consistent group must be in the **Created** (`created`) or **Stopped** (`stopped`) state.', + 'changeSet' => [ + ['createdAt' => '2025-07-07T11:22:39.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-30T09:09:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-16T11:40:00.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDiskReplicaGroup'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ModifyDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], ], + ], + 'ModifyDiskReplicaPair' => [ + 'summary' => 'Modifies an async replication pair.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '189350', - 'abilityTreeNodes' => [ - 'FEATUREdiskFDS0SW', - ], + 'abilityTreeCode' => '44716', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], ], 'parameters' => [ [ - 'name' => 'SolutionId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '解决方案ID', - 'description' => 'The ID of the solution.', - 'type' => 'string', - 'required' => true, - 'example' => 'sln-xxxxx', - ], + 'schema' => ['description' => 'The region ID of the primary or secondary disk in the replication pair. You can call [DescribeRegions](~~354276~~) to query the regions that support async replication.', 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ReplicaPairId', 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the replication pair.', 'type' => 'string', 'required' => true, 'example' => 'pair-cn-dsa****', 'title' => ''], ], [ - 'name' => 'Parameters', + 'name' => 'PairName', '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, - ], + 'schema' => ['description' => 'The name of the replication pair.', 'type' => 'string', 'required' => false, 'example' => 'TestReplicaPair', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the replication pair.', 'type' => 'string', 'required' => false, 'example' => 'This is description.', 'title' => ''], ], [ '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****', - ], + 'schema' => ['description' => 'A client token to ensure the idempotence of the request. Generate a value for this parameter from your client. 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****', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth for async replication, in Kbps.'."\n" + ."\n" + .'> This parameter is not yet available.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10240', 'title' => ''], + ], + [ + 'name' => 'RPO', + 'in' => 'query', + 'schema' => ['description' => 'The recovery point objective (RPO) of the replication pair-consistent group. Unit: seconds. Currently, only a value of 900 is supported.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '900', 'title' => ''], + ], + [ + 'name' => 'EnableRtc', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable replication time control (RTC). Valid values:'."\n" + ."\n" + .'- false: Disables RTC.'."\n" + ."\n" + .'- true: Enables RTC.'."\n" + ."\n" + .'Default value: false.'."\n" + ."\n" + .'> If a replication pair is part of a replication group, its RTC setting is the same as the setting of the group.', 'type' => 'boolean', 'title' => '', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'DescribeSlnInstanceConfigurationResponse', - 'description' => 'DescribeSlnInstanceConfigurationResponse.', + 'title' => 'Schema of Response', + 'description' => 'Response schema', '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****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****'], ], + 'example' => '', ], ], ], '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' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', 'errorMessage' => 'Operation is not allowed on the primary site.', 'description' => 'The operation is not allowed on the primary site.'], + ['errorCode' => 'OperationDenied.OperateNotAllowedForStandby', 'errorMessage' => 'Operation is not allowed on the secondary site.', 'description' => 'The operation is not allowed on the secondary site.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - 'errorCode' => 'InvalidApi.NotFound', - 'errorMessage' => 'Specified api is not found, please check your url and method.', - ], - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C123F94F-4E38-19AE-942A-A8D6F44F****\\"\\n}","type":"json"}]', + 'title' => 'ModifyDiskReplicaPair', + 'description' => '## Description'."\n" + ."\n" + .'- For information about the regions that support the asynchronous replication feature, see [Overview of asynchronous replication](~~314563~~).'."\n" + ."\n" + .'- You can modify the name or description of a replication pair only when the pair is in the **Created** (`created`) or **Stopped** (`stopped`) state.', + 'changeSet' => [ + ['createdAt' => '2025-07-07T11:22:38.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-30T09:09:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-06-23T11:05:57.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDiskReplicaPair'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ModifyDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + ], ], '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', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -12588,9 +7468,7 @@ 'systemTags' => [ 'operationType' => 'get', 'abilityTreeCode' => '207585', - 'abilityTreeNodes' => [ - 'FEATUREdisk1O4P8E', - ], + 'abilityTreeNodes' => ['FEATUREdisk1O4P8E'], ], 'parameters' => [ [ @@ -12602,28 +7480,18 @@ 'required' => true, 'enumValueTitles' => [], 'example' => 'A37597B5-BB99-19B3-85EA-4C2B91F0****', + 'title' => '', ], ], [ 'name' => 'RegionId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The region ID of the dedicated block storage cluster.', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the dedicated block storage cluster.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ '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****', - ], + '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' => [ @@ -12641,1171 +7509,814 @@ .'- 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', - ], + 'enumValueTitles' => ['SUCCESS' => '成功', 'RUNNING' => '正常运行', 'WAIT' => '待执行', 'FAIL' => '失败'], 'example' => 'RUNNING', + 'title' => '', ], - 'RequestId' => [ - 'title' => '请求ID。无论调用接口成功与否,我们都会返回请求 ID。', - 'description' => 'The ID of the request.', - 'type' => 'string', - 'example' => 'A37597A6-BB99-19B3-85EA-4C2B91F0****', - ], + 'RequestId' => ['title' => '', '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.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation 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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 429 => [ - [ - 'errorCode' => 'BLOCK.LimitedRequest', - 'errorMessage' => 'Request was denied due to user flow control.', - ], + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"Running\\",\\n \\"RequestId\\": \\"A37597A6-BB99-19B3-85EA-4C2B91F0****\\"\\n}","type":"json"}]', + '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', + 'summary' => 'Query the throughput status of a dedicated block storage cluster disk which has been set through the SetDedicatedBlockStorageClusterDiskThroughput API.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:QueryDedicatedBlockStorageClusterDiskThroughputStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDedicatedBlockStorageClusterInventoryData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', + 'abilityTreeCode' => '149411', + 'abilityTreeNodes' => ['FEATUREdisk1O4P8E'], ], 'parameters' => [ [ - 'name' => 'DiskId', + 'name' => 'DbscId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the disk.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'd-bp67acfmxazb4p****', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the dedicated block storage cluster.'."\n", 'type' => 'string', 'required' => true, 'example' => 'dbsc-xxx'], ], [ - 'name' => 'RegionId', + 'name' => 'Period', 'in' => 'formData', 'schema' => [ - 'description' => 'The region ID of disk.', - 'type' => 'string', + 'title' => '', + 'description' => 'The time interval (seconds) between data retrieval points.', + 'type' => 'integer', + 'format' => 'int32', 'required' => true, - 'example' => 'cn-hangzhou', + 'enumValueTitles' => [60 => '60', 3600 => '3600', 86400 => '86400'], + 'example' => '60', ], ], [ - 'name' => 'Bps', + 'name' => 'StartTime', 'in' => 'formData', - 'schema' => [ - 'description' => 'Target throughput.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], + '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', 'title' => ''], ], [ '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****', - ], + '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Response', - 'description' => 'Response', + 'title' => 'DescribeDbscInventoryDataResponse', + 'description' => 'DescribeDbscInventoryDataResponse', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。无论调用接口成功与否,我们都会返回请求 ID。', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '17EE62D8-064E-5404-8B0D-72122478****', + 'DbscId' => ['title' => '', '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' => '', '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', 'title' => ''], + 'TotalSize' => ['description' => 'Total capacity size of the dedicated block storage cluster.', 'type' => 'integer', 'format' => 'int64', 'example' => '61440', 'title' => ''], + ], + 'title' => '', + ], + 'Timestamp' => ['title' => '', 'description' => 'The timestamp when the data is collected.', 'type' => 'string', 'example' => '1606403800'], + 'ResourceId' => ['title' => '', 'description' => 'The ID list of the resource.', 'type' => 'string', 'example' => 'dbsc-xxx'], + ], + 'title' => '', + ], ], + 'RequestId' => ['title' => '', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'F1A4258A-0C8C-5329-B495-BC5AD7AD****'], ], ], ], ], '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' => 'InvalidTime.Malformed', 'errorMessage' => 'The specified parameter StartTime or EndTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.EndTime', 'errorMessage' => 'The specified parameter EndTime is earlier than StartTime.', 'description' => ''], + ['errorCode' => 'InvalidPeriod.ValueNotSupported', 'errorMessage' => 'The specified parameter Period is not valid', 'description' => ''], + ['errorCode' => 'InvalidParameter.TooManyDataQueried', 'errorMessage' => 'Too many data queried.', 'description' => ''], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - '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.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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', + '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.', + '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.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:QueryDedicatedBlockStorageClusterInventoryData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ], + ], + ], ], + ], + 'RemoveDiskReplicaPair' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '200638', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '115802', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], ], 'parameters' => [ [ - 'name' => 'NextToken', + 'name' => 'RegionId', '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', - ], + 'schema' => ['description' => 'The region ID of the replication pair-consistent group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'ReplicaGroupId', 'in' => 'query', - 'schema' => [ - 'title' => 'Token方式最大个数。', - 'description' => 'Maximum number of items for Token-based pagination.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + '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****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ReplicaPairId', 'in' => 'query', - 'schema' => [ - 'title' => '分页查询时设置的每页行数。', - 'description' => 'Number of rows per page when performing paginated queries.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => 'The ID of the replication pair.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pair-cn-dsa****', 'title' => ''], ], [ - 'name' => 'PageNumber', + '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****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '分页模式查询时的页数。', - 'description' => 'Page number for paginated queries.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + '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.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.GroupStatusCannotRemovePair', 'errorMessage' => 'The pair cannot be removed in group current status.', 'description' => 'The replication pair cannot be removed from the replication pair-consistent group while the group is in the current state.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.NoPairInGroup', 'errorMessage' => 'The operation is not allowed because no pair in the group.', 'description' => 'The operation is not supported while the specified replication pair-consistent group has no replication pairs.'], + ['errorCode' => 'OperationDenied.PairGroupAZoneConflict', 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', 'description' => 'The operation is not supported while the replication pair-consistent group and the replication pair do not belong to the same region and zone.'], + ['errorCode' => 'OperationDenied.PairGroupStatusConflict', 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', 'description' => 'The operation is not supported while the state of the replication pair is not the same as that of the replication pair-consistent group.'], + ['errorCode' => 'OperationDenied.PairInAnotherGroup', 'errorMessage' => 'The operation is not allowed because pair is already in another group.', 'description' => 'The operation is not supported while the replication pair is added to another replication pair-consistent group.'], + ['errorCode' => 'OperationDenied.PairNotInGroup', 'errorMessage' => 'The operation is not allowed because pair is not in any group.', 'description' => 'The operation is not supported while the specified replication pair belongs to no replication pair-consistent groups.'], + ['errorCode' => 'OperationDenied.PairStatusCannotRemoveFromGroup', 'errorMessage' => 'The pair cannot be removed in pair current status.', 'description' => 'The replication pair cannot be removed from the replication pair-consistent group while the pair is in the current state.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ], [ - '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', + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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.', + '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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:RemoveDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], ], ], + ], + ], + 'ReprotectDiskReplicaGroup' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'AppId', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '115794', + 'abilityTreeNodes' => ['FEATUREdiskAQUAFH', 'FEATUREdiskVW208V'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the application.', - 'type' => 'string', - 'required' => false, - 'example' => 'app-xxx', - ], + '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', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + [ + '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', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'DescribeAppHistoryReportsResponse', - 'description' => 'DescribeAppHistoryReportsResponse', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', '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****', - ], + 'RequestId' => ['title' => 'Id of the request', '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', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => ''], + ['errorCode' => 'OperationDenied.NoPairInGroup', 'errorMessage' => 'The operation is not allowed because no pair in the group.', 'description' => ''], + ['errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', 'errorMessage' => 'Operation is not allowed on the primary site.', 'description' => ''], + ['errorCode' => 'OperationDenied.OperateNotAllowedForStandby', 'errorMessage' => 'Operation is not allowed on the secondary site.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], - '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', + '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', + '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.', + '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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ReprotectDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], ], + ], + 'ReprotectDiskReplicaPair' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '209319', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '71806', + 'abilityTreeNodes' => ['FEATUREdiskAQUAFH', 'FEATUREdiskVW208V'], ], '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' => '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', 'title' => ''], ], [ - 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'title' => '', - 'description' => 'Region name.', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the replication pair.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pair-cn-dsa****', 'title' => ''], ], [ - 'name' => 'ReportType', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '可选值:history/present', - 'description' => 'Optional values: history/present.', - 'type' => 'string', - 'required' => false, - 'example' => 'history', - ], + '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****', 'title' => ''], ], [ - 'name' => 'AppName', + 'name' => 'ReverseReplicate', 'in' => 'query', - 'schema' => [ - 'title' => '可选值,只在ReportType=present时AppName才会生效', - 'description' => 'Optional, AppName only takes effect when ReportType=present.', - 'type' => 'string', - 'required' => false, - 'example' => 'App1', - ], + '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', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'GetReportResponse', - 'description' => 'GetReportResponse.', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", '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****', - ], + 'RequestId' => ['title' => 'Id of the request', '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', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => ''], + ['errorCode' => 'OperationDenied.NoPairInGroup', 'errorMessage' => 'The operation is not allowed because no pair in the group.', 'description' => ''], + ['errorCode' => 'OperationDenied.PairGroupAZoneConflict', 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', 'description' => ''], + ['errorCode' => 'OperationDenied.PairGroupStatusConflict', 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', 'description' => ''], + ['errorCode' => 'OperationDenied.PairNotInGroup', 'errorMessage' => 'The operation is not allowed because pair is not in any group.', 'description' => ''], + ['errorCode' => 'OperationDenied.OperateNotAllowedForPrimary', 'errorMessage' => 'Operation is not allowed on the primary site.', 'description' => ''], + ['errorCode' => 'OperationDenied.OperateNotAllowedForStandby', 'errorMessage' => 'Operation is not allowed on the secondary site.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], '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', + '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', + 'summary' => 'Enables the reverse replication feature for a replication pair.', + '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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ReprotectDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], ], + ], + 'SetDedicatedBlockStorageClusterDiskThroughput' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '253920', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - ], - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'NextToken', + 'name' => 'DiskId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The query token returned by this call (Token).', - 'type' => 'string', - 'required' => false, - 'example' => 'f07b150eadfa1d7a', - ], + 'schema' => ['description' => 'The ID of the disk.'."\n", 'type' => 'string', 'required' => true, 'example' => 'd-bp67acfmxazb4p****', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'RegionId', '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', - ], + 'schema' => ['description' => 'The region ID of disk.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'TagFilterKey', + 'name' => 'Bps', 'in' => 'formData', - 'schema' => [ - 'description' => 'The tagKey for filtering the query.', - 'type' => 'string', - 'required' => false, - 'example' => 'tagKey', - ], + 'schema' => ['description' => 'Target throughput.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100', 'title' => ''], ], [ - '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', - ], + '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' => 'DescribeLensUserTagKeyResponse', - 'description' => 'DescribeLensUserTagKeyResponse', + 'title' => 'Response', + 'description' => 'Response', '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', - ], + 'RequestId' => ['title' => '', '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.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], ], [ - [ - 'errorCode' => 'InvalidApi.NotFound', - 'errorMessage' => 'Specified api is not found, please check your url and method.', - ], - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 429 => [ - [ - 'errorCode' => 'BLOCK.LimitedRequest', - 'errorMessage' => 'Request was denied due to user flow control.', - ], + ['errorCode' => 'BLOCK.LimitedRequest', 'errorMessage' => 'Request was denied due to user flow control.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], - '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', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"17EE62D8-064E-5404-8B0D-72122478****\\"\\n}","type":"json"}]', + 'title' => '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.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:SetDedicatedBlockStorageClusterDiskThroughput', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'StartDiskReplicaGroup' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '253922', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - ], - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'TagKey', - 'in' => 'formData', - 'schema' => [ - 'title' => '标签键。最多包含20个子项。', - 'description' => 'Tag key.', - 'type' => 'string', - 'required' => false, - 'example' => 'TestKey', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the replication pair-consistent group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ - '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' => '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****', 'title' => ''], ], [ - 'name' => 'MaxResults', - 'in' => 'formData', + '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****', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ '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', + '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.', 'description' => 'The secondary disk is attached to the instance at the secondary site. Stop the instance or detach the disk from the instance.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.ManualSyncLimit', 'errorMessage' => 'One shot start manual syncing too frequently, please try again later.', 'description' => 'The requirements of the cooldown period after manual synchronization operations are not met.'], + ['errorCode' => 'OperationDenied.NoPairInGroup', 'errorMessage' => 'The operation is not allowed because no pair in the group.', 'description' => 'The operation is not supported while the specified replication pair-consistent group has no replication pairs.'], + ['errorCode' => 'OperationDenied.PairGroupStatusConflict', 'errorMessage' => 'The operation is not allowed due to pair and group status are not consistent.', 'description' => 'The operation is not supported while the state of the replication pair is not the same as that of the replication pair-consistent group.'], + ['errorCode' => 'OperationDenied.PairGroupAZoneConflict', 'errorMessage' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', 'description' => 'The operation is not supported while the replication pair-consistent group and the replication pair do not belong to the same region and zone.'], + ['errorCode' => 'OperationDenied.PairNotInGroup', 'errorMessage' => 'The operation is not allowed because pair is not in any group.', 'description' => 'The operation is not supported while the specified replication pair belongs to no replication pair-consistent groups.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ], [ - 'name' => 'TagFilterValue', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Tag content filter', - 'type' => 'string', - 'required' => false, - 'example' => 'keyValue', + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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.', + '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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:StartDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], ], ], + ], + ], + 'StartDiskReplicaPair' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '48741', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], + ], + 'parameters' => [ [ 'name' => 'RegionId', - 'in' => 'formData', - 'schema' => [ - 'title' => '一致性复制组所属的地域ID。', - 'description' => 'The region ID of the consistency replication group.', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - ], + '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', 'title' => ''], + ], + [ + 'name' => 'ReplicaPairId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the replication pair.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pair-cn-dsa****', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + [ + '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', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'DescribeLensUserTagValueResponse', - 'description' => 'DescribeLensUserTagValueResponse', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", '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', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", '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.', - ], + ['errorCode' => 'OperationDenied.StandbyDeviceAttached', 'errorMessage' => 'The secondary disk is attached.', 'description' => 'The secondary disk is attached to the instance at the secondary site. Stop the instance or detach the disk from the instance.'], ], 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', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.InvalidStatus', 'errorMessage' => 'The operation is not allowed in current status.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied.ManualSyncLimit', 'errorMessage' => 'One shot start manual syncing too frequently, please try again later.', 'description' => 'The requirements of the cooldown period after manual synchronization operations are not met.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], ], [ - [ - '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.', - ], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + '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', + 'summary' => 'Activates the async replication feature for a specific replication pair.', + '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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:StartDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], ], + ], + 'StartPairDrill' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13814,1203 +8325,2204 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '193443', - 'abilityTreeNodes' => [ - 'FEATUREdisk7F2R1Z', - ], + 'operationType' => 'create', + 'abilityTreeCode' => '186458', + 'abilityTreeNodes' => ['FEATUREdiskVW208V', 'FEATUREdiskAQUAFH'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + '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', 'title' => ''], ], [ - 'name' => 'Owner', + 'name' => 'PairId', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'anchashi', - ], + 'schema' => ['title' => '', '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****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'title' => 'StartPairDrillResponse', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'DrillId' => ['title' => '', 'description' => 'The drill ID.'."\n", 'type' => 'string', 'example' => 'drill-xxx'], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C123F94F-4E38-19AE-942A-A8D6F44F****'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.RecoverPointNotFound', 'errorMessage' => 'Recover point is not found.', 'description' => 'No recovery points are available for the replication pair or replication pair-consistent group.'], + ['errorCode' => 'OperationDenied.StartDrillShouldOnDestRegion', 'errorMessage' => 'Operation should be executed on the secondary region.', 'description' => 'This operation must be performed at the secondary site.'], + ], [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'app-xxx', + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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.', + '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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:StartPairDrill', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#PairId}'], + ], ], ], ], + ], + 'StartReplicaGroupDrill' => [ + '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' => '', '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' => '', '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' => 'LensResponse', - 'description' => 'LensResponse', + 'title' => 'StartPairGroupDrillResponse', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '', - 'type' => 'string', - 'example' => '1F58EB6E-7B7A-5437-9612-F14D50822A61', - ], + 'DrillId' => ['title' => '', 'description' => 'The drill ID.'."\n", 'type' => 'string', 'example' => 'pg-drill-xxxx'], + 'RequestId' => ['title' => '', '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationDenied.RecoverPointNotFound', 'errorMessage' => 'Recover point is not found.', 'description' => 'No recovery points are available for the replication pair or replication pair-consistent group.'], + ['errorCode' => 'OperationDenied.StartDrillShouldOnDestRegion', 'errorMessage' => 'Operation should be executed on the secondary region.', 'description' => 'This operation must be performed at the secondary site.'], ], [ - [ - 'errorCode' => 'InvalidApi.NotFound', - 'errorMessage' => 'Specified api is not found, please check your url and method.', - ], - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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.', + '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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:StartReplicaGroupDrill', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#GroupId}'], + ], ], ], - 429 => [ - [ - 'errorCode' => 'BLOCK.LimitedRequest', - 'errorMessage' => 'Request was denied due to user flow control.', + ], + ], + 'StopDiskReplicaGroup' => [ + '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', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + [ + '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****', 'title' => ''], + ], + ], + '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.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ], + [ + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + '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', + 'summary' => 'Stops a replication pair-consistent group. This operation stops all replication pairs in the replication pair-consistent group.', + '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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:StopDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], ], + ], + 'StopDiskReplicaPair' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '193441', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - 'FEATUREdiskLP80G7', - ], + 'operationType' => 'none', + 'abilityTreeCode' => '48742', + 'abilityTreeNodes' => ['FEATUREdiskVW208V'], ], 'parameters' => [ [ - 'name' => 'AppNames', + 'name' => 'RegionId', '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, - ], + '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', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ReplicaPairId', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the replication pair.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pair-cn-dsa****', 'title' => ''], ], [ - 'name' => 'Owner', + '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****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '1485558146415628', + '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.', 'description' => 'The operation is not supported in the current state.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ], [ - 'name' => 'ClientToken', + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. 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', + 'summary' => 'Stops a replication pair.', + '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", + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'ebs:StopDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + ], + ], + 'TagResources' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ + [ + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', + 'title' => '', + '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****', 'title' => ''], + 'required' => true, + 'example' => 'disk-123', + 'maxItems' => 51, ], ], [ - 'name' => 'AppIds', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '', + 'title' => '', + 'description' => 'The resource tags. You can specify up to 20 tags.'."\n", 'type' => 'array', 'items' => [ - 'description' => '', - 'type' => 'string', + '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, - 'example' => 'app-25603551', + 'title' => '', ], - 'required' => false, - 'maxItems' => 100, + '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' => '', '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' => 'DescribeAppsResponse', - 'description' => 'DescribeAppsResponse', + 'title' => 'TagResponse', + 'description' => 'TagResponse', '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', - ], + 'RequestId' => ['title' => '', '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' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The Tag.N.Key contain duplicate key.', 'description' => ''], + ['errorCode' => 'NumberExceed.ResourceIds', 'errorMessage' => 'The ResourceIds parameter number is exceed , Valid : 50', 'description' => ''], + ['errorCode' => 'NumberExceed.Tags', 'errorMessage' => 'NumberExceed.Tags', 'description' => ''], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified ResourceIds are not found in our records.', 'description' => ''], + ['errorCode' => 'InvalidResourceType.NotFound', 'errorMessage' => 'The ResourceType provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'MissingParameter.ResourceType', 'errorMessage' => 'The parameter - ResourceType should not be null', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], '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', + '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', + 'summary' => 'Creates tags and adds the tags to Elastic Block Storage (EBS) resources.', + '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~~).', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'SolutionInstance', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:solutioninstance/{#SolutionInstanceId}'], + ], + ], + ], ], + ], + 'UnbindEnterpriseSnapshotPolicy' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '193444', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - 'FEATUREdiskLP80G7', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '159100', + 'abilityTreeNodes' => ['FEATUREdiskAAH44P'], ], 'parameters' => [ [ - 'name' => 'AppName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => 'App名称', - 'description' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'App1', - ], + 'schema' => ['title' => '', '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' => 'AppTags', + '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' => '用户自定义标签,多个标签用', - 'description' => '', + 'title' => 'the disk targets', + 'description' => 'The list of disks.', '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, + 'items' => ['description' => 'The id of a disk.', 'type' => 'string', 'required' => false, 'example' => 'd-xxx', 'title' => ''], + 'required' => false, + 'maxItems' => 10, ], ], [ - 'name' => 'SubscribeStatus', + '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****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => 'App使用报告订阅状态', - 'description' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'Subscribe', + 'title' => 'Response', + 'description' => 'Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '061DE1AB-08BA-5ACD-A03A-440117C6939A'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], + ], [ - 'name' => 'SubscribePeriod', + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], + ], + ], + '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', + 'summary' => 'Unbind disks from a enterprise-level snapshot policy.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:UnbindEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ], + ], + ], + ], + ], + 'UntagResources' => [ + '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' => 'App使用报告发送间隔', - 'description' => '', - 'type' => 'string', + 'title' => '', + '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****', 'title' => ''], 'required' => true, - 'example' => 'Weekly', + 'example' => 'disk-123', + 'maxItems' => 51, ], ], [ - 'name' => 'Description', + 'name' => 'TagKey', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => 'App简介', - 'description' => '', - 'type' => 'string', + 'title' => '', + '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', 'title' => ''], 'required' => false, - 'example' => 'test', + 'example' => 'disk-123', + 'maxItems' => 21, ], ], [ - 'name' => 'ReportSendEnabled', + 'name' => 'All', 'in' => 'query', - 'schema' => [ - 'title' => '发送报告到邮箱和站内信', - 'description' => '', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '', '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' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + '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' => 'Owner', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '1/0', - ], + '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' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-42665544****', - ], + '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' => '0c593ea1-3bea-11e9-b96b-88e9fe63****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'LensResponse', - 'description' => 'LensResponse', + 'title' => 'TagResponse', + 'description' => 'TagResponse', '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', - ], + 'RequestId' => ['title' => '', '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' => 'App.NumberExceed', - 'errorMessage' => 'The number of apps exceeded.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The Tag.N.Key contain duplicate key.', 'description' => ''], + ['errorCode' => 'NumberExceed.ResourceIds', 'errorMessage' => 'The ResourceIds parameter number is exceed , Valid : 50', 'description' => ''], + ['errorCode' => 'NumberExceed.Tags', 'errorMessage' => 'NumberExceed.Tags', 'description' => ''], + ['errorCode' => 'OperationDenied.QuotaExceed', 'errorMessage' => 'The quota of tags on resource is beyond permitted range.', 'description' => ''], ], 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' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], ], [ - [ - '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.', - ], + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified ResourceIds are not found in our records.', 'description' => ''], + ['errorCode' => 'InvalidResourceType.NotFound', 'errorMessage' => 'The ResourceType provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', - ], + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], ], ], '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', + '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', + 'summary' => 'Removes tags from specified Elastic Block Storage (EBS) resources.', + '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.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:UntagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateEnterpriseSnapshotPolicy' => [ + 'summary' => 'Modifies the configuration of an enterprise-level snapshot policy.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '193442', - 'abilityTreeNodes' => [ - 'FEATUREdisk2F270T', - 'FEATUREdiskLP80G7', - ], + 'abilityTreeCode' => '159103', + 'abilityTreeNodes' => ['FEATUREdisk1W6OYH'], ], 'parameters' => [ [ - 'name' => 'AppName', + 'name' => 'RegionId', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'title' => 'App名称', - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'App1', - ], + 'schema' => ['title' => '', 'description' => 'The region ID. You can call [DescribeRegions](~~25609~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'AppTags', + 'name' => 'PolicyId', '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, - ], + 'schema' => ['title' => '', 'description' => 'The snapshot policy ID.', 'type' => 'string', 'required' => true, 'example' => 'esp-xxx'], ], [ - 'name' => 'SubscribeStatus', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'title' => 'App使用报告订阅状态', - 'description' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'Subscribe', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the policy to modify.', 'type' => 'string', 'required' => false, 'example' => 'xxx'], ], [ - 'name' => 'SubscribePeriod', + 'name' => 'State', 'in' => 'query', 'schema' => [ - 'title' => 'App使用报告发送间隔', - 'description' => '', + 'title' => '', + 'description' => 'The status of the snapshot policy. Valid values:'."\n" + ."\n" + .'- ENABLED'."\n" + .'- DISABLED', + 'enumValueTitles' => ['DISABLED' => 'DISABLED', 'ENABLED' => 'ENABLED'], 'type' => 'string', - 'required' => true, - 'example' => 'Weekly', + 'example' => 'ENABLED', + 'required' => false, ], ], [ - 'name' => 'Description', + 'name' => 'Desc', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the snapshot policy.', 'type' => 'string', 'required' => false, 'example' => 'xxx'], + ], + [ + 'name' => 'Schedule', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => 'App简介', - 'description' => '', - 'type' => 'string', + 'title' => '', + 'description' => 'The schedule rule.', + 'type' => 'object', + 'properties' => [ + 'CronExpression' => ['title' => '', 'description' => 'The execution cycle and time of the policy. A cron expression is used.'."\n" + ."\n" + .'For example, `0 0 4 1/1 * ?` specifies that the snapshot operation is performed at 04:00 every day, starting from the first day of each month.', 'type' => 'string', 'required' => true, 'example' => '0 0 */24 * * *'], + ], 'required' => false, - 'example' => 'This is description.', + 'example' => '', ], ], [ - 'name' => 'ReportSendEnabled', + 'name' => 'RetainRule', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '发送报告到邮箱和站内信', - 'description' => '', - 'type' => 'boolean', + 'title' => '', + 'description' => 'The retention rule.', + 'type' => 'object', + 'properties' => [ + 'Number' => ['title' => '', 'description' => 'The number of snapshots to retain. Valid values: 1 to 256.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + 'TimeInterval' => ['title' => '', 'description' => 'The time interval of the retention rule. The unit is specified by the TimeUnit parameter. The value must be greater than 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '14'], + 'TimeUnit' => [ + 'title' => '', + 'description' => 'The unit of the retention time. Valid values:'."\n" + ."\n" + .'- DAYS'."\n" + .'- WEEKS', + 'enumValueTitles' => ['WEEKS' => 'WEEKS', 'DAYS' => 'DAYS'], + 'type' => 'string', + 'required' => false, + 'example' => 'DAYS', + ], + ], 'required' => false, - 'example' => 'true', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'SpecialRetainRules', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '', - 'type' => 'string', + 'title' => '', + 'description' => 'The special retention rules.', + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'title' => '', + 'description' => 'Specifies whether to enable special retention. Valid values:'."\n" + ."\n" + .'- true'."\n" + .'- false', + 'enumValueTitles' => ['true' => 'true', 'false' => 'false'], + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + 'Rules' => [ + 'title' => '', + 'description' => 'The list of special retention rules. Multiple rules are supported.', + 'type' => 'array', + 'items' => [ + 'description' => 'The special retention rules.', + 'type' => 'object', + 'properties' => [ + 'SpecialPeriodUnit' => [ + 'title' => '', + 'description' => 'The period unit for special retention snapshots. For example, if this parameter is set to WEEKS, the first snapshot of each week is given special retention. The retention duration is determined by the TimeUnit and TimeInterval parameters. Valid values:'."\n" + ."\n" + .'- WEEKS'."\n" + .'- MONTHS'."\n" + .'- YEARS', + 'enumValueTitles' => ['MONTHS' => 'MONTHS', 'YEARS' => 'YEARS', 'WEEKS' => 'WEEKS'], + 'type' => 'string', + 'example' => 'WEEKS', + 'required' => false, + ], + 'TimeInterval' => ['title' => '', 'description' => 'The time interval of the retention rule. The unit is specified by the TimeUnit parameter. The value must be greater than 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + 'TimeUnit' => [ + 'title' => '', + 'description' => 'The unit of the retention time for special snapshots. Valid values:'."\n" + ."\n" + .'- DAYS'."\n" + .'- WEEKS', + 'enumValueTitles' => ['WEEKS' => 'WEEKS', 'DAYS' => 'DAYS'], + 'type' => 'string', + 'example' => 'DAYS', + 'required' => false, + ], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'example' => '', + ], + ], 'required' => false, - 'example' => 'cn-shanghai', + 'example' => '', ], ], [ - 'name' => 'Owner', + 'name' => 'CrossRegionCopyInfo', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '', - 'type' => 'string', + 'title' => '', + 'description' => 'The cross-region copy destination information.', + 'type' => 'object', + 'properties' => [ + 'Enabled' => [ + 'title' => '', + 'description' => 'Specifies whether to enable cross-region replication. Valid values:'."\n" + ."\n" + .'- true'."\n" + .'- false', + 'enumValueTitles' => ['true' => 'true', 'false' => 'false'], + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + 'Regions' => [ + 'title' => '', + 'description' => 'The destination region information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The copy destination region information.', + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['title' => '', 'description' => 'The destination region ID for snapshot replication. You can call [DescribeDiskReplicaPairs](~~354206~~) to query the region information of existing asynchronous replication relationships.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + 'RetainDays' => ['title' => '', 'description' => 'The number of days to retain snapshots in the destination region. The value must be greater than 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '7'], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'example' => '', + ], + ], 'required' => false, - 'example' => 'dev789`', + 'example' => '', ], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '服务端生成的一串字符串,作为客户端进行请求的一个标识。', - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'Ensures the idempotence of the request. Generate a parameter value from your client to ensure that the value is unique across different requests. The ClientToken value supports 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****', 'title' => ''], ], [ - 'name' => 'AppId', + 'name' => 'StorageRule', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '', - 'type' => 'string', + 'title' => '', + 'description' => 'The advanced snapshot feature.', + 'type' => 'object', + 'properties' => [ + 'EnableImmediateAccess' => [ + 'title' => '', + 'description' => 'Specifies whether to enable instant access for snapshots. Valid values:'."\n" + ."\n" + .'- true'."\n" + .'- false', + 'enumValueTitles' => ['true' => 'true', 'false' => 'false'], + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], 'required' => false, - 'example' => 'app-xxx', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'LensResponse', - 'description' => 'LensResponse', + 'title' => '', + 'description' => 'The response.', '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', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'FED145A8-7D5F-5C60-B054-4EB2899A5996'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The parameter %s is invalid.', + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => 'The specified parameter value is invalid.'], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => 'english description'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => 'The parameter must be specified.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => 'You are not authorized to create service-linked roles.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => 'The operation is not supported.'], + ], + [ + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => 'The specified resource does not exist.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error has occurred.'], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => 'The request has timed out. Try again later.'], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"FED145A8-7D5F-5C60-B054-4EB2899A5996\\"\\n}","type":"json"}]', + 'gatewayOptions' => [ + 'gatewayProtocols' => [], + ], + 'title' => 'Modify an enterprise-level snapshot policy', + 'changeSet' => [ + ['createdAt' => '2024-10-08T07:16:34.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEnterpriseSnapshotPolicy'], + ], + 'product' => ['code' => 'disk', 'title' => '块存储'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:UpdateEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ], ], - [ - 'errorCode' => 'InvalidParameter.Conflict', - 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', + ], + ], + ], + 'UpdateSolutionInstanceAttribute' => [ + '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' => '', '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' => '', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '20758A-585D-4A41-A9B2-28DA8F4F****'], + ], ], - [ - 'errorCode' => 'InvalidParameter.Format', - 'errorMessage' => 'Specified parameter format is not valid.', + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter %s is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Conflict', 'errorMessage' => 'The specified parameter %s and %s are not blank at the same time.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Format', 'errorMessage' => 'Specified parameter format is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User is not authorized to operate.', 'description' => ''], + ['errorCode' => 'Forbidden.Action', 'errorMessage' => 'User is not authorized to operate this action.', 'description' => ''], + ['errorCode' => 'InvalidAccountStatus.NotEnoughBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'LastTokenProcessing', 'errorMessage' => 'The last token request is processing.', 'description' => ''], + ['errorCode' => 'NoPermission.SLR', 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not allowed.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidApi.NotFound', 'errorMessage' => 'Specified api is not found, please check your url and method.', 'description' => ''], + ['errorCode' => 'NoSuchResource.SlnInst', 'errorMessage' => 'The specified solution instance is not found.', 'description' => ''], + ['errorCode' => 'NoSuchResource', 'errorMessage' => 'The specified resource does not exist.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ], + 504 => [ + ['errorCode' => 'RequestTimeout', 'errorMessage' => 'The request is timeout, please try again later.', 'description' => ''], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"20758A-585D-4A41-A9B2-28DA8F4F****\\"\\n}","type":"json"}]', + 'title' => 'UpdateSolutionInstanceAttribute', + 'summary' => 'Updates the attributes of a solution instance.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:UpdateSolutionInstanceAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'SolutionInstance', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:solutioninstance/{#SolutionInstanceId}'], + ], ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'The input parameter %s that is mandatory for processing this request is not supplied.', + ], + ], + ], + ], + 'endpoints' => [ + ['regionId' => 'cn-qingdao', 'regionName' => 'China (Qingdao)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-qingdao.aliyuncs.com', 'endpoint' => 'ebs.cn-qingdao.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-qingdao.aliyuncs.com'], + ['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-beijing.aliyuncs.com', 'endpoint' => 'ebs.cn-beijing.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-zhangjiakou', 'regionName' => 'China (Zhangjiakou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'ebs.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-zhangjiakou.aliyuncs.com'], + ['regionId' => 'cn-zhengzhou-jva', 'regionName' => 'Zhengzhou (China Unicom Joint Venture)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-zhengzhou-jva.aliyuncs.com', 'endpoint' => 'ebs.cn-zhengzhou-jva.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-zhengzhou-jva.aliyuncs.com'], + ['regionId' => 'cn-huhehaote', 'regionName' => 'China (Hohhot)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-huhehaote.aliyuncs.com', 'endpoint' => 'ebs.cn-huhehaote.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-huhehaote.aliyuncs.com'], + ['regionId' => 'cn-wulanchabu', 'regionName' => 'China (Ulanqab)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'ebs.cn-wulanchabu.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-wulanchabu.aliyuncs.com'], + ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-hangzhou.aliyuncs.com', 'endpoint' => 'ebs.cn-hangzhou.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-hangzhou.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-shanghai.aliyuncs.com', 'endpoint' => 'ebs.cn-shanghai.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-nanjing', 'regionName' => 'China (Nanjing - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-nanjing.aliyuncs.com', 'endpoint' => 'ebs.cn-nanjing.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-nanjing.aliyuncs.com'], + ['regionId' => 'cn-fuzhou', 'regionName' => 'China (Fuzhou - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-fuzhou.aliyuncs.com', 'endpoint' => 'ebs.cn-fuzhou.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-fuzhou.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-shenzhen.aliyuncs.com', 'endpoint' => 'ebs.cn-shenzhen.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'cn-heyuan', 'regionName' => 'China (Heyuan)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-heyuan.aliyuncs.com', 'endpoint' => 'ebs.cn-heyuan.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-heyuan.aliyuncs.com'], + ['regionId' => 'cn-guangzhou', 'regionName' => 'China (Guangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-guangzhou.aliyuncs.com', 'endpoint' => 'ebs.cn-guangzhou.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-guangzhou.aliyuncs.com'], + ['regionId' => 'cn-chengdu', 'regionName' => 'China (Chengdu)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-chengdu.aliyuncs.com', 'endpoint' => 'ebs.cn-chengdu.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-chengdu.aliyuncs.com'], + ['regionId' => 'cn-wuhan-lr', 'regionName' => 'China (Wuhan - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-wuhan-lr.aliyuncs.com', 'endpoint' => 'ebs.cn-wuhan-lr.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-wuhan-lr.aliyuncs.com'], + ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.cn-hongkong.aliyuncs.com', 'endpoint' => 'ebs.cn-hongkong.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-hongkong.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.ap-northeast-1.aliyuncs.com', 'endpoint' => 'ebs.ap-northeast-1.aliyuncs.com', 'vpc' => 'ebs-vpc.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-northeast-2', 'regionName' => 'South Korea (Seoul)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.ap-northeast-2.aliyuncs.com', 'endpoint' => 'ebs.ap-northeast-2.aliyuncs.com', 'vpc' => 'ebs-vpc.ap-northeast-2.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.ap-southeast-1.aliyuncs.com', 'endpoint' => 'ebs.ap-southeast-1.aliyuncs.com', 'vpc' => 'ebs-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-2', 'regionName' => 'Australia (Sydney) Closed', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.ap-southeast-2.aliyuncs.com', 'endpoint' => 'ebs.ap-southeast-2.aliyuncs.com', 'vpc' => 'ebs-vpc.ap-southeast-2.aliyuncs.com'], + ['regionId' => 'ap-southeast-3', 'regionName' => 'Malaysia (Kuala Lumpur)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.ap-southeast-3.aliyuncs.com', 'endpoint' => 'ebs.ap-southeast-3.aliyuncs.com', 'vpc' => 'ebs-vpc.ap-southeast-3.aliyuncs.com'], + ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.ap-southeast-5.aliyuncs.com', 'endpoint' => 'ebs.ap-southeast-5.aliyuncs.com', 'vpc' => 'ebs-vpc.ap-southeast-5.aliyuncs.com'], + ['regionId' => 'ap-southeast-6', 'regionName' => 'Philippines (Manila)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.ap-southeast-6.aliyuncs.com', 'endpoint' => 'ebs.ap-southeast-6.aliyuncs.com', 'vpc' => 'ebs-vpc.ap-southeast-6.aliyuncs.com'], + ['regionId' => 'ap-southeast-7', 'regionName' => 'Thailand (Bangkok)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'ebs.ap-southeast-7.aliyuncs.com', 'endpoint' => 'ebs.ap-southeast-7.aliyuncs.com', 'vpc' => 'ebs-vpc.ap-southeast-7.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => 'US (Virginia)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'ebs.us-east-1.aliyuncs.com', 'endpoint' => 'ebs.us-east-1.aliyuncs.com', 'vpc' => 'ebs-vpc.us-east-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'ebs.us-west-1.aliyuncs.com', 'endpoint' => 'ebs.us-west-1.aliyuncs.com', 'vpc' => 'ebs-vpc.us-west-1.aliyuncs.com'], + ['regionId' => 'eu-west-1', 'regionName' => 'UK (London)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'ebs.eu-west-1.aliyuncs.com', 'endpoint' => 'ebs.eu-west-1.aliyuncs.com', 'vpc' => 'ebs-vpc.eu-west-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'ebs.eu-central-1.aliyuncs.com', 'endpoint' => 'ebs.eu-central-1.aliyuncs.com', 'vpc' => 'ebs-vpc.eu-central-1.aliyuncs.com'], + ['regionId' => 'na-south-1', 'regionName' => 'Mexico', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'ebs.na-south-1.aliyuncs.com', 'endpoint' => 'ebs.na-south-1.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'us-southeast-1', 'regionName' => 'US(Atlanta)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'ebs.us-southeast-1.aliyuncs.com', 'endpoint' => 'ebs.us-southeast-1.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'me-east-1', 'regionName' => 'UAE (Dubai)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'ebs.me-east-1.aliyuncs.com', 'endpoint' => 'ebs.me-east-1.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'me-central-1', 'regionName' => 'Saudi Arabia (Riyadh)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'ebs.me-central-1.aliyuncs.com', 'endpoint' => 'ebs.me-central-1.aliyuncs.com', 'vpc' => 'ebs-vpc.me-central-1.aliyuncs.com'], + ['regionId' => 'cn-hangzhou-finance', 'regionName' => 'China East 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'ebs.cn-hangzhou-finance.aliyuncs.com', 'endpoint' => 'ebs.cn-hangzhou-finance.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-hangzhou-finance.aliyuncs.com'], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'ebs.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'ebs.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-shanghai-finance-1.aliyuncs.com'], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => 'China South 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'ebs.cn-shenzhen-finance-1.aliyuncs.com', 'endpoint' => 'ebs.cn-shenzhen-finance-1.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-shenzhen-finance-1.aliyuncs.com'], + ['regionId' => 'cn-beijing-finance-1', 'regionName' => 'China North 2 Finance (Preview)', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'ebs.cn-beijing-finance-1.aliyuncs.com', 'endpoint' => 'ebs.cn-beijing-finance-1.aliyuncs.com', 'vpc' => 'ebs-vpc.cn-beijing-finance-1.aliyuncs.com'], + ], + 'errorCodes' => [ + ['code' => 'AliCroup2CloudUserCannotBuyNotInnerCommodity', 'message' => 'There is no group cloud commodity label, and users within the group are not allowed to purchase.', 'http_code' => 403, 'description' => 'There is no group cloud commodity label, and users within the group are not allowed to purchase.'], + ['code' => 'App.NumberExceed', 'message' => 'The number of apps exceeded.', 'http_code' => 400, 'description' => ''], + ['code' => 'BLOCK.LimitedRquest', 'message' => 'BLOCK.LimitedRequest', 'http_code' => 429, 'description' => ''], + ['code' => 'ControllerDevice.AlreadyAttached', 'message' => 'The specified disk as controller channel already attached.', 'http_code' => 400, 'description' => 'Specifies that the disk is in the mounted state'], + ['code' => 'DocumentConvertFailed.ExceedFileSizeLimit', 'message' => 'The conversion has been failed, exceed file size limit.', 'http_code' => 400, 'description' => 'english description1'], + ['code' => 'Duplicate.TagKey', 'message' => 'The Tag.N.Key contain duplicate key.', 'http_code' => 400, 'description' => ''], + ['code' => 'Forbidden', 'message' => 'User is not authorized to operate.', 'http_code' => 403, 'description' => 'You are not authorized to manage the resource. Check the account permissions or contact the Alibaba Cloud account.'], + ['code' => 'Forbidden.Action', 'message' => 'User is not authorized to operate this action.', 'http_code' => 403, 'description' => 'You are not authorized to perform this operation. Check the account permissions or contact the Alibaba Cloud account.'], + ['code' => 'IdempotentParameterMismatch', 'message' => 'The specified parameter has changed while using an already used clientToken.', 'http_code' => 400, 'description' => 'The request and a previous request contains the same client token but different parameters.'], + ['code' => 'IncorrectDiskStatus.CreatingSnapshot', 'message' => 'A previous snapshot creation is in process.', 'http_code' => 403, 'description' => ''], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error, exception or failure.', 'http_code' => 500, 'description' => 'An internal error has occurred.'], + ['code' => 'InternalInvokeError', 'message' => 'The internal invoking has failed.', 'http_code' => 400, 'description' => 'Service not available, please try again after a while'], + ['code' => 'InvalidAccountStatus.NotEnoughBalance', 'message' => 'Your account does not have enough balance.', 'http_code' => 403, 'description' => ''], + ['code' => 'InvalidDiskCategory.NotSupported', 'message' => 'The specified disk category is not supported.', 'http_code' => 403, 'description' => ''], + ['code' => 'InvalidDiskSize.NotSupported', 'message' => 'The specified parameter size is not valid.', 'http_code' => 400, 'description' => ''], + ['code' => 'InvalidMetric', 'message' => 'The metric is invalid.', 'http_code' => 400, 'description' => 'Invalid indicator name.'], + ['code' => 'InvalidParameter', 'message' => 'The parameter %s is invalid.', 'http_code' => 400, 'description' => 'The specified parameter value is invalid.'], + ['code' => 'InvalidParameter.Conflict', 'message' => 'The specified parameter %s and %s are not blank at the same time.', 'http_code' => 400, 'description' => ''], + ['code' => 'InvalidParameter.EndTime', 'message' => 'The specified parameter EndTime is earlier than StartTime.', 'http_code' => 400, 'description' => ''], + ['code' => 'InvalidParameter.Format', 'message' => 'Specified parameter format is not valid.', 'http_code' => 400, 'description' => 'english description'], + ['code' => 'InvalidParameter.TooManyDataQueried', 'message' => 'Too many data queried.', 'http_code' => 400, 'description' => ''], + ['code' => 'InvalidParameter.TooManyDataQueried', 'message' => 'Too many data queried in request.', 'http_code' => 400, 'description' => 'Query too much data.'], + ['code' => 'InvalidPayMethod', 'message' => 'The specified pay method is not valid.', 'http_code' => 403, 'description' => ''], + ['code' => 'InvalidPeriod.ValueNotSupported', 'message' => 'The specified parameter Period is not valid', 'http_code' => 400, 'description' => ''], + ['code' => 'InvalidPeriod.ValueNotSupported', 'message' => 'The specified parameter "Period" is not valid.', 'http_code' => 400, 'description' => 'The \'Period\' field is invalid.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The specified RegionId does not exist.', 'http_code' => 404, 'description' => ''], + ['code' => 'InvalidResourceGroup.NotFound', 'message' => 'The ResourceGroup provided does not exist in our records.', 'http_code' => 404, 'description' => ''], + ['code' => 'InvalidResourceId.NotFound', 'message' => 'The specified ResourceId is not found in our records.', 'http_code' => 404, 'description' => ''], + ['code' => 'InvalidResourceId.NotFound', 'message' => 'The specified ResourceIds are not found in our records.', 'http_code' => 404, 'description' => ''], + ['code' => 'InvalidResourceType.NotFound', 'message' => 'The ResourceType provided does not exist in our records.', 'http_code' => 404, 'description' => ''], + ['code' => 'InvalidTime.Malformed', 'message' => 'The specified parameter StartTime or EndTime is not valid.', 'http_code' => 400, 'description' => ''], + ['code' => 'InvalidTime.Malformed', 'message' => 'The specified parameter "StartTime" or "EndTime" is not valid.', 'http_code' => 400, 'description' => 'The "StartTime" or "EndTime" parameter field format is incorrect.'], + ['code' => 'InvalidZoneId.NotFound', 'message' => 'The specified ZoneId does not exist.', 'http_code' => 404, 'description' => ''], + ['code' => 'INVALID_COMPONENT', 'message' => 'The order configuration parameters do not meet the validation criteria. Please reselect the parameters.', 'http_code' => 403, 'description' => 'The order configuration parameters do not meet the validation criteria. Please reselect the parameters.'], + ['code' => 'LastTokenProcessing', 'message' => 'The last token request is processing.', 'http_code' => 403, 'description' => 'The value of clientToken is used in another request that is being processed. Try again later.'], + ['code' => 'MissingParameter', 'message' => 'The input parameter %s that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'The parameter must be specified.'], + ['code' => 'MissingParameter.ResourceGroup', 'message' => 'The parameter - Resource Group should not be null', 'http_code' => 404, 'description' => ''], + ['code' => 'MissingParameter.ResourceIdsOrTags', 'message' => 'You must specify ResourceId.N or Tags', 'http_code' => 404, 'description' => ''], + ['code' => 'MissingParameter.ResourceType', 'message' => 'The parameter - ResourceType should not be null', 'http_code' => 404, 'description' => ''], + ['code' => 'NoPermission.SLR', 'message' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', 'http_code' => 403, 'description' => 'You are not authorized to create service-linked roles.'], + ['code' => 'NoSuchResource', 'message' => 'The specified resource does not exist.', 'http_code' => 404, 'description' => 'The specified resource does not exist.'], + ['code' => 'NoSuchResource.Disk', 'message' => 'The specified disk does not exist.', 'http_code' => 404, 'description' => 'The disk does not exist.'], + ['code' => 'NoSuchResource.Pair', 'message' => 'The specified replica pair does not exist.', 'http_code' => 404, 'description' => 'The replication pair does not exist.'], + ['code' => 'NoSuchResource.SlnInst', 'message' => 'The specified solution instance is not found.', 'http_code' => 404, 'description' => ''], + ['code' => 'NoSuchResource.Solution', 'message' => 'The specified solution is not found.', 'http_code' => 404, 'description' => ''], + ['code' => 'NotOnSale.Region', 'message' => 'The specified region is not on sale.', 'http_code' => 403, 'description' => ''], + ['code' => 'NotOnSale.Zone', 'message' => 'The specified zone is not on sale.', 'http_code' => 403, 'description' => ''], + ['code' => 'NumberExceed.ResourceIds', 'message' => 'The ResourceIds parameter number is exceed , Valid : 50', 'http_code' => 400, 'description' => ''], + ['code' => 'NumberExceed.Tags', 'message' => 'NumberExceed.Tags', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied', 'message' => 'The operation is not allowed.', 'http_code' => 403, 'description' => 'The operation is not supported.'], + ['code' => 'OperationDenied.GroupHasPair', 'message' => 'The group cannot be deleted due to not empty.', 'http_code' => 403, 'description' => 'The replication pair-consistent group contains replication pairs and cannot be deleted.'], + ['code' => 'OperationDenied.GroupStatusCannotAddPair', 'message' => 'The pair cannot be added in group current status.', 'http_code' => 403, 'description' => 'The replication pair cannot be added to the replication pair-consistent group while the group is in the current state.'], + ['code' => 'OperationDenied.GroupStatusCannotRemovePair', 'message' => 'The pair cannot be removed in group current status.', 'http_code' => 403, 'description' => 'The replication pair cannot be removed from the replication pair-consistent group while the group is in the current state.'], + ['code' => 'OperationDenied.GroupTotalDiskCapacityLimit', 'message' => 'The disk space in the replication pair-consistent group exceeds the upper limit.', 'http_code' => 403, 'description' => 'The disk space in the replication pair-consistent group exceeds the upper limit.'], + ['code' => 'OperationDenied.InvalidStatus', 'message' => 'The operation is not allowed in current status.', 'http_code' => 403, 'description' => 'The operation is not supported in the current state.'], + ['code' => 'OperationDenied.ManualSyncLimit', 'message' => 'One shot start manual syncing too frequently, please try again later.', 'http_code' => 403, 'description' => 'The requirements of the cooldown period after manual synchronization operations are not met.'], + ['code' => 'OperationDenied.NoPairInGroup', 'message' => 'The operation is not allowed because no pair in the group.', 'http_code' => 403, 'description' => 'The operation is not supported while the specified replication pair-consistent group has no replication pairs.'], + ['code' => 'OperationDenied.OperateNotAllowedForPrimary', 'message' => 'Operation is not allowed on the primary site.', 'http_code' => 403, 'description' => 'The operation is not allowed on the primary site.'], + ['code' => 'OperationDenied.OperateNotAllowedForStandby', 'message' => 'Operation is not allowed on the secondary site.', 'http_code' => 403, 'description' => 'The operation is not allowed on the secondary site.'], + ['code' => 'OperationDenied.PairGroupAZoneConflict', 'message' => 'The operation is not allowed due to pair and group having different RegionId or ZoneId.', 'http_code' => 403, 'description' => 'The operation is not supported while the replication pair-consistent group and the replication pair do not belong to the same region and zone.'], + ['code' => 'OperationDenied.PairGroupStatusConflict', 'message' => 'The operation is not allowed due to pair and group status are not consistent.', 'http_code' => 403, 'description' => 'The operation is not supported while the state of the replication pair is not the same as that of the replication pair-consistent group.'], + ['code' => 'OperationDenied.PairInAnotherGroup', 'message' => 'The operation is not allowed because pair is already in another group.', 'http_code' => 403, 'description' => 'The operation is not supported while the replication pair is added to another replication pair-consistent group.'], + ['code' => 'OperationDenied.PairInitializing', 'message' => 'The operation is not allowed due to pair initializing, please try again later.', 'http_code' => 403, 'description' => 'The operation is not supported while the replication pair is being initialized. Try again later.'], + ['code' => 'OperationDenied.PairNotInGroup', 'message' => 'The operation is not allowed because pair is not in any group.', 'http_code' => 403, 'description' => 'The operation is not supported while the specified replication pair belongs to no replication pair-consistent groups.'], + ['code' => 'OperationDenied.PairsExceedInGroup', 'message' => 'The operation is not allowed due to too much pair in the group.', 'http_code' => 403, 'description' => 'The operation is not supported while the maximum number of replication pairs in the replication pair-consistent group has been exceeded.'], + ['code' => 'OperationDenied.PairStatusCannotAddToGroup', 'message' => 'The pair cannot be added in pair current status.', 'http_code' => 403, 'description' => 'The replication pair cannot be added to the replication pair-consistent group while the pair is in the current state.'], + ['code' => 'OperationDenied.PairStatusCannotRemoveFromGroup', 'message' => 'The pair cannot be removed in pair current status.', 'http_code' => 403, 'description' => 'The replication pair cannot be removed from the replication pair-consistent group while the pair is in the current state.'], + ['code' => 'OperationDenied.QuotaExceed', 'message' => 'The operation is not allowed due to quota exceed.', 'http_code' => 403, 'description' => 'The quota for performing this operation has been exceeded.'], + ['code' => 'OperationDenied.QuotaExceed', 'message' => 'The quota of tags on resource is beyond permitted range.', 'http_code' => 400, 'description' => ''], + ['code' => 'OperationDenied.QuotaExceed', 'message' => 'The operation is denied due to quota exceed.', 'http_code' => 403, 'description' => 'Your request exceeded the quota limit.'], + ['code' => 'OperationDenied.RecoverPointNotFound', 'message' => 'Recover point is not found.', 'http_code' => 403, 'description' => 'No recovery points are available for the replication pair or replication pair-consistent group.'], + ['code' => 'OperationDenied.StandbyDeviceAttached', 'message' => 'The secondary disk is attached.', 'http_code' => 400, 'description' => 'The secondary disk is attached to the instance at the secondary site. Stop the instance or detach the disk from the instance.'], + ['code' => 'OperationDenied.StartDrillShouldOnDestRegion', 'message' => 'Operation should be executed on the secondary region.', 'http_code' => 403, 'description' => 'This operation must be performed at the secondary site.'], + ['code' => 'OperationDenied.TooMuchEmptyGroup', 'message' => 'Operation failed because of too many empty groups.', 'http_code' => 403, 'description' => 'You have created excessive empty replication pair-consistent groups.'], + ['code' => 'RequestTimeout', 'message' => 'The request is timeout, please try again later.', 'http_code' => 504, 'description' => 'The request has timed out. Try again later.'], + ['code' => 'AssumeRoleFail.solution', 'message' => 'Assume role fail, please check RamRole for EBS Laboratory already exist and policy is correct.', 'http_code' => 403, 'description' => 'Assume role fail, please check RamRole for EBS Laboratory already exist and policy is correct.'], + ], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiskReplicaPairs'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateSolutionInstanceAttribute'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDiskReplicaGroup'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagResources'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDiskReplicaGroup'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UntagResources'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiskReplicaPairProgress'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDiskReplicaPair'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartReplicaGroupDrill'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelLensService'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDedicatedBlockStorageClusterDiskThroughput'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ClearReplicaGroupDrill'], + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMetricData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ClearPairDrill'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDedicatedBlockStorageClusterInventoryData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribePairDrills'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiskMonitorDataList'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ApplyLensService'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartDiskReplicaPair'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiskEvents'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopDiskReplicaGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartPairDrill'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiskMonitorData'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEnterpriseSnapshotPolicy'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEnterpriseSnapshotPolicy'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindEnterpriseSnapshotPolicy'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeEnterpriseSnapshotPolicy'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ReprotectDiskReplicaGroup'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDedicatedBlockStorageCluster'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveDiskReplicaPair'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ReprotectDiskReplicaPair'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDiskReplicaGroup'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDiskReplicaPair'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'FailoverDiskReplicaPair'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDedicatedBlockStorageClusterAttribute'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindEnterpriseSnapshotPolicy'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'FailoverDiskReplicaGroup'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRegions'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDiskReplicaPair'], + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetReport'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDedicatedBlockStorageClusters'], + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListReports'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDedicatedBlockStorageClusterDisks'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopDiskReplicaPair'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDiskReplicaPair'], + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeSolutionInstanceConfiguration'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeReplicaGroupDrills'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDiskReplicaGroups'], + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeEvents'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserTagValues'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLensServiceStatus'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDedicatedBlockStorageClusterDiskThroughputStatus'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagResources'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ChangeResourceGroup'], + ['threshold' => '25', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEnterpriseSnapshotPolicy'], + ['threshold' => '12', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLensMonitorDisks'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartDiskReplicaGroup'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserTagKeys'], + ], + 'product' => ['code' => 'disk', 'title' => 'ebs'], + ], + 'ram' => [ + 'productCode' => 'EBS', + 'productName' => 'Elastic Block Storage', + 'ramCodes' => ['ebs'], + 'ramLevel' => 'RESOURCE', + 'ramConditions' => [], + 'ramActions' => [ + [ + 'apiName' => 'UnbindEnterpriseSnapshotPolicy', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:UnbindEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User is not authorized to operate.', + ], + [ + 'apiName' => 'ReprotectDiskReplicaGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ReprotectDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], ], - [ - 'errorCode' => 'Forbidden.Action', - 'errorMessage' => 'User is not authorized to operate this action.', + ], + ], + [ + 'apiName' => 'ModifyDedicatedBlockStorageClusterAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ModifyDedicatedBlockStorageClusterAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], ], - [ - 'errorCode' => 'InvalidAccountStatus.NotEnoughBalance', - 'errorMessage' => 'Your account does not have enough balance.', + ], + ], + [ + 'apiName' => 'DescribeLensServiceStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeLensServiceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'LastTokenProcessing', - 'errorMessage' => 'The last token request is processing.', + ], + ], + [ + 'apiName' => 'RemoveDiskReplicaPair', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:RemoveDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], ], - [ - 'errorCode' => 'NoPermission.SLR', - 'errorMessage' => 'The RAM user does not have the permission to create service linked role: AliyunServiceLinkedRoleForEBS.', + ], + ], + [ + 'apiName' => 'CreateEnterpriseSnapshotPolicy', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:CreateEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/*'], ], - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'The operation is not allowed.', + ], + ], + [ + 'apiName' => 'DescribeEnterpriseSnapshotPolicy', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/*'], ], ], - [ - [ - 'errorCode' => 'InvalidApi.NotFound', - 'errorMessage' => 'Specified api is not found, please check your url and method.', + ], + [ + 'apiName' => 'DeleteEnterpriseSnapshotPolicy', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:DeleteEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], ], - [ - 'errorCode' => 'NoSuchResource', - 'errorMessage' => 'The specified resource does not exist.', + ], + ], + [ + 'apiName' => 'DescribeSolutionInstanceConfiguration', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeSolutionInstanceConfiguration', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - 429 => [ - [ - 'errorCode' => 'BLOCK.LimitedRequest', - 'errorMessage' => 'Request was denied due to user flow control.', + ], + [ + 'apiName' => 'FailoverDiskReplicaGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:FailoverDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + [ + 'apiName' => 'StartDiskReplicaGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:StartDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], ], ], - 504 => [ - [ - 'errorCode' => 'RequestTimeout', - 'errorMessage' => 'The request is timeout, please try again later.', + ], + [ + 'apiName' => 'StartDiskReplicaPair', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:StartDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDiskReplicaPairProgress', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiskReplicaPairProgress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + [ + 'apiName' => 'DescribePairDrills', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribePairDrills', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#PairId}'], + ], + ], + ], + [ + 'apiName' => 'StopDiskReplicaPair', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'ebs:StopDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + [ + 'apiName' => 'QueryDedicatedBlockStorageClusterDiskThroughputStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:QueryDedicatedBlockStorageClusterDiskThroughputStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDedicatedBlockStorageClusters', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDedicatedBlockStorageClusters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/*'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ], + ], + ], + [ + 'apiName' => 'FailoverDiskReplicaPair', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:FailoverDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateSolutionInstanceAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:UpdateSolutionInstanceAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'SolutionInstance', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:solutioninstance/{#SolutionInstanceId}'], + ], + ], + ], + [ + 'apiName' => 'ApplyLensService', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ApplyLensService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BindEnterpriseSnapshotPolicy', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:BindEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ], + ], + ], + [ + 'apiName' => 'CreateDedicatedBlockStorageCluster', + 'description' => '', + 'operationType' => 'create', + 'additionalActions' => [ + ['action' => 'ram:CreateServiceLinkedRole', 'validationType' => 'always'], + ], + 'ramAction' => [ + 'action' => 'ebs:CreateDedicatedBlockStorageCluster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/*'], + ], + ], + ], + [ + 'apiName' => 'CreateDiskReplicaGroup', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:CreateDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/*'], + ], + ], + ], + [ + 'apiName' => 'TagResources', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'SolutionInstance', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:solutioninstance/{#SolutionInstanceId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeEvents', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'ebs:DescribeEvents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeReplicaGroupDrills', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeReplicaGroupDrills', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#GroupId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeUserTagValues', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeUserTagValues', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ReprotectDiskReplicaPair', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ReprotectDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + [ + 'apiName' => 'StopDiskReplicaGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:StopDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeApps', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeApps', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteApp', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:DeleteApp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDiskReplicaPair', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:DeleteDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeUserTagKeys', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeUserTagKeys', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeMetricData', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeMetricData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ListReports', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:ListReports', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateEnterpriseSnapshotPolicy', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:UpdateEnterpriseSnapshotPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ], + ], + ], + [ + 'apiName' => 'ListReplicaEdgeSupported', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:ListReplicaEdgeSupported', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDiskReplicaGroups', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiskReplicaGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/*'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], + [ + 'apiName' => 'QueryDedicatedBlockStorageClusterInventoryData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:QueryDedicatedBlockStorageClusterInventoryData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ], + ], + ], + [ + 'apiName' => 'ChangeResourceGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ChangeResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#dedicatedblockstorageclusterId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#diskreplicagroupId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#diskreplicapairId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'SolutionInstance', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:solutioninstance/{#SolutionInstanceId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeLensMonitorDisks', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeLensMonitorDisks', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeRegions', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeRegions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ListTagResources', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateDiagnoseReport', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:CreateDiagnoseReport', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'AddDiskReplicaPair', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:AddDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], + [ + 'apiName' => 'CreateDiskReplicaPair', + 'description' => '', + 'operationType' => 'create', + 'additionalActions' => [ + ['action' => 'ram:CreateServiceLinkedRole', 'validationType' => 'always'], + ], + 'ramAction' => [ + 'action' => 'ebs:CreateDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDiskReplicaGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:DeleteDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], + [ + 'apiName' => 'CreateApp', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:CreateApp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ModifyDiskReplicaGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ModifyDiskReplicaGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ], + ], + ], + [ + 'apiName' => 'UntagResources', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:UntagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'SolutionInstance', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:solutioninstance/{#SolutionInstanceId}'], + ], + ], + ], + [ + 'apiName' => 'StartReplicaGroupDrill', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:StartReplicaGroupDrill', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#GroupId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDedicatedBlockStorageClusterDisks', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDedicatedBlockStorageClusterDisks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ], + ], + ], + [ + 'apiName' => 'GetReport', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:GetReport', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDiskReplicaPairs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiskReplicaPairs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/*'], + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDiskMonitorData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiskMonitorData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDiagnoseReport', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'ebs:DescribeDiagnoseReport', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'StartPairDrill', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'ebs:StartPairDrill', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#PairId}'], + ], + ], + ], + [ + 'apiName' => 'ModifyApp', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ModifyApp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CancelLensService', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:CancelLensService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ClearPairDrill', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:ClearPairDrill', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#PairId}'], + ], + ], + ], + [ + 'apiName' => 'ClearReplicaGroupDrill', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'ebs:ClearReplicaGroupDrill', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#GroupId}'], + ], + ], + ], + [ + 'apiName' => 'ModifyDiskReplicaPair', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:ModifyDiskReplicaPair', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ], + ], + ], + [ + 'apiName' => 'SetDedicatedBlockStorageClusterDiskThroughput', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'ebs:SetDedicatedBlockStorageClusterDiskThroughput', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EBS', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - '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', + 'resourceTypes' => [ + ['validationType' => 'always', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/{#EnterpriseSnapshotPolicyId}'], + ['validationType' => 'always', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#ReplicaGroupId}'], + ['validationType' => 'always', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/{#DedicatedBlockStorageClusterId}'], + ['validationType' => 'always', 'resourceType' => 'EnterpriseSnapshotPolicy', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:enterprisesnapshotpolicy/*'], + ['validationType' => 'always', 'resourceType' => 'Solution', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:solution/*'], + ['validationType' => 'always', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#ReplicaPairId}'], + ['validationType' => 'always', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#PairId}'], + ['validationType' => 'always', 'resourceType' => 'DedicatedBlockStorageCluster', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:dedicatedblockstoragecluster/*'], + ['validationType' => 'always', 'resourceType' => 'SolutionInstance', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:solutioninstance/{#SolutionInstanceId}'], + ['validationType' => 'always', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/*'], + ['validationType' => 'always', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#GroupId}'], + ['validationType' => 'always', 'resourceType' => 'App', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:app/*'], + ['validationType' => 'always', 'resourceType' => 'App', 'arn' => 'acs:ebs::{#accountId}:app/*'], + ['validationType' => 'always', 'resourceType' => 'Lens', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:lens/*'], + ['validationType' => 'always', 'resourceType' => 'DiskReplicaGroup', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicagroup/{#diskreplicagroupId}'], + ['validationType' => 'always', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/{#diskreplicapairId}'], + ['validationType' => 'always', 'resourceType' => 'DiskReplicaPair', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:diskreplicapair/*'], + ['validationType' => 'always', 'resourceType' => 'SolutionInstance', 'arn' => 'acs:ebs:{#regionId}:{#accountId}:solutioninstance/*'], + ['validationType' => 'always', 'resourceType' => 'Disk', 'arn' => 'acs:ebs::{#accountId}:lens/*'], ], ], ]; |
