接口功能介绍
从快照创建云硬盘。
接口约束
1、云硬盘类型、加密属性、所在地域可用区快照源云硬盘保持一致;
2、创建磁盘容量不小于快照容量;
3、只有快照状态为可用时才能从快照创建云硬盘;
4、单个快照支持创建云硬盘个数最多为128个。
URI
POST /v4/ebs/new-from-snapshot
请求参数
请求体body参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
snapshotID | 是 | String | 快照ID | 参考请求示例 |
clientToken | 否 | String | 客户端存根,用于保证订单幂等性。要求单个云平台账户内唯一 | 参考请求示例 |
regionID | 是 | String | 资源池ID, 例:100054c0416811e9a6690242ac110002 | 参考请求示例 |
multiAttach | 否 | Boolean | 是否多云主机挂载,默认false | 参考请求示例 |
projectID | 否 | String | 企业项目ID,默认为”0” | 参考请求示例 |
diskMode | 是 | String | 磁盘模式,VBD/ISCSI/FCSAN | 参考请求示例 |
name | 是 | String | 磁盘命名,单账户单资源池下,命名需唯一 | 参考请求示例 |
diskSize | 是 | Integer | 磁盘大小,单位GB,容量不小于快照容量 | 参考请求示例 |
onDemand | 否 | Boolean | 是否按需下单。默认为true | 参考请求示例 |
cycleType | 否 | String | 包周期类型,year/month。onDemand为false时,必须指定。 | 参考请求示例 |
cycleCount | 否 | Integer | 包周期数。onDemand为false时必须指定。周期最大长度不能超过5年 | 参考请求示例 |
响应参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
statusCode | 是 | Integer | 返回状态码(800为成功,900为处理中/失败) | 参考响应示例 | |
message | 是 | String | 失败时的错误描述,一般为英文描述 | 参考响应示例 | |
description | 是 | String | 失败时的错误描述,一般为中文描述 | 参考响应示例 | |
returnObj | 是 | Object | 参考表returnObj | 参考响应示例 | 参考表returnObj |
errorCode | 是 | String | 业务细分码,为product.module.code三段式码. 参考通用结果码 |
参考响应示例 | |
errorDetail | 是 | Object | 错误明细。一般情况下,会对订单侧(bss)的云硬盘订单业务相关的错误做明确的错误映射和提升,有唯一对应的errorCode。 其他订单侧(bss)的错误,以ebs.order.procFailed的errorCode统一映射返回,并在errorDetail中返回订单侧的详细错误信息 |
参考响应示例 |
表 returnObj
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
masterOrderID | 是 | String | 订单ID。调用方在拿到masterOrderID之后,在若干错误情况下,可以使用materOrderID进一步确认订单状态及资源状态 | 参考响应示例 | |
masterOrderNO | 是 | String | 订单号 | 参考响应示例 | |
masterResourceID | 是 | String | 主资源ID。云硬盘场景下,无需关心。 | 参考响应示例 | |
masterResourceStatus | 是 | String | 主资源状态。只有主订单资源会返回。unknown/failed/ starting,具体状态信息请参考资源状态 | 参考响应示例 | |
regionID | 是 | String | 资源所属资源池ID | 参考响应示例 | |
resources | 是 | Object | 资源明细列表,参考表resources | 参考响应示例 | 参考表resources |
表 resources
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
resourceID | 是 | String | 单项资源的变配、续订、退订等需要该资源项的ID。 比如某个云主机资源作为主资源,对其挂载.磁盘操作时,需要磁盘资源项的资源ID |
参考响应示例 | |
orderID | 是 | String | 无需关心 | 参考响应示例 | |
startTime | 是 | Integer | 启动时刻,epoch时戳,毫秒精度 | 参考响应示例 | |
createTime | 是 | Integer | 创建时刻,epoch时戳,毫秒精度 | 参考响应示例 | |
updateTime | 是 | Integer | 更新时刻,epoch时戳,毫秒精度 | 参考响应示例 | |
status | 是 | Integer | 资源状态,无需关心。参考masterResourceStatus | 参考响应示例 | |
isMaster | 是 | Boolean | 是否是主资源项 | 参考响应示例 | |
itemValue | 是 | Integer | 资源规格,磁盘资源为磁盘大小GB | 参考响应示例 | |
resourceUUID | 是 | String | 资源UUID,结合regionID一起使用 | 参考响应示例 | |
masterResourceID | 是 | String | 主资源ID。云硬盘场景下,无需关心 | 参考响应示例 | |
resourceConfig | 是 | Object of String | 可忽略 | 参考响应示例 | |
name | 是 | String | 磁盘命名,单账户单资源池下,命名需唯一 | 参考响应示例 | |
resourceType | 是 | String | 云硬盘资源类型为EBS,只有一种 | 参考响应示例 | |
masterOrderID | 是 | String | 订单ID | 参考响应示例 |
表 errorDetail
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
bssErrCode | 是 | String | bss错误明细码,包含于bss格式化JSON错误信息中 | 参考响应示例 |
bssErrMsg | 是 | String | bss错误信息,包含于bss格式化JSON错误信息中 | 参考响应示例 |
bssOrigErr | 是 | String | 无法明确解码bss错误信息时,原样透出的bss错误信息 | 参考响应示例 |
bssErrPrefixHint | 是 | String | bss格式化JSON错误信息的前置提示信息 | 参考响应示例 |
请求示例
请求头header
无
请求体body
{
"snapshotID":"3f868846-f47f-4619-a5b4-a02e9714f744",
"clientToken": "cbe3840c-bda4-4102-b68f-98c9d7190d69",
"regionID": "41f64827f25f468595ffa3a5deb5d15d",
"multiAttach": false,
"projectID": "0",
"diskMode": "VBD",
"name": "mydisk-0001",
"diskSize": 200,
"onDemand": false,
"cycleType": "month",
"cycleCount": 2
}
响应示例
下单后会先显示订单处理中:
{
"description": "订单处理中,可使用订单ID查询或使用原clientToken重试下单",
"returnObj": {
"masterOrderNO": "20220812171600203284",
"regionID": "41f64827f25f468595ffa3a5deb5d15d",
"masterOrderID": "beacf51a20dd4889bfc99877d89e03e2"
},
"details": "",
"errorCode": "ebs.order.inProgress",
"message": "order in progress",
"statusCode": 900
}
已经成功下单后,使用重复的clientToken时,返回订单信息:
{
"returnObj": {
"masterResourceStatus": "started",
"regionID": "41f64827f25f468595ffa3a5deb5d15d",
"masterOrderID":"beacf51a20dd4889bfc99877d89e03e2",
"masterResourceID":"2ec9776a9ad94343b4ece701ce18e688",
"masterOrderNO": "20220812171600203284",
"resources": [
{
"orderID": "a71317c1efee48c2b44de52eb9a2d4a7",
"status": 2,
"isMaster": true,
"name": "vol-name-from-snap-yy-glgue",
"resourceType": "EBS",
"resourceID": "2ec9776a9ad94343b4ece701ce18e688",
"masterOrderID": "c7d4c728fa7a11ed96bc0242ac110002",
"masterResourceID": "45ab1c3648be4db8b839f2597eb53ec6",
"updateTime": 1660295799000,
"itemValue": "10",
"startTime": 1660295799000,
"resourceConfig": {},
"resourceUUID": "770fb5e7-7f84-423c-9dd4-2eaf7912d5bc",
"createTime": 1660295761000
}
]
},
"details": "",
"message": "success",
"description": "成功",
"statusCode": 800
}
状态码
状态码 | 描述 |
---|---|
800 | 表示请求成功 |
错误码
请参考通用结果码。