云硬盘接口API详情

创建云硬盘

创建一块或多块按量付费或者预付费(包年包月)云硬盘。

描述

  • 用户根据需要选择云硬盘大小和类型,提交订单,购买云硬盘。

  • 创建的云硬盘分为包年包月和按需两种类型。

  • 单次最多能创建100块云硬盘。

  • 实例创建成功后将自动开机启动,实例状态变为“available未挂载”。

  • 预付费实例的购买会预先扣除本次实例购买所需金额,按小时后付费实例购买会预先冻结本次实例购买一小时内所需金额,在调用本接口前请确保账户余额充足。

  • 在启动实例时,实例属于“创建中”(creating)状态,在实例准备好时,会进入“运行中(available)”状态。

URI

POST /ebs/v1/volumes

请求参数

名称 位置 类型 是否必须 描述
indiskName body String 是 云硬盘名称
indiskSize body int 是 云硬盘大小
backupId body String 否 备份ID,备份容量必须与云硬盘大小相同
indiskNum body int 是 云硬盘数目
productTypeCode body String 是 产品类型编码(普通型传SATA)
billType body String 是 计费方式(按需传hourlySettlement,包年包月传monthly)
duration body String 否 购买时长,折算成月,9个月则填写为9,3年为36,在计费方式为monthly时有效
durationUnit body String 否 购买时长单位,取值范围:M(月),填写时必须为M(区分大小写),不填默认值为M ,在计费方式为monthly时有效
isAutoRenew body String 否 是否自动从预充值账号扣款,true--自动续费/false--不自动续费,默认为自动续费,非必填
shared body String 否 是否是共享盘(可选值为"true"or"false")
availabilityZone body String 否 可用域

返回参数

名称 位置 类型 是否必须 描述
orderId 订单ID String 是 订单标识

示例

创建云硬盘可以指定云硬盘名称,云硬盘大小,批量创建的数量,计费方式(包年包月或者按需),云硬盘的类型,使用接口创建云硬盘时 请求体是相同的,您只需根据请求中的参数说明,更换如下请求样例中的参数值即可。 假设创建2块40G按需的普通型(SATA)云硬盘,指定名称为test。

请求示例

 /ebs/v1/volumes
 {
     "indiskName":"test",
     "indiskSize": 40,
     "indiskNum": 2,
     "billType": "hourlySettlement",
     "productTypeCode":"SATA",
     "availabilityZone":"nova",
     "shared": "true"
 }

响应示例

 {
     "orderId": "188950322035359744"
 }

返回值

请参考通用请求返回值

错误码

请参考错误码

扩容云硬盘

扩容一块按量付费或者预付费(包年包月)云硬盘。

描述

  • 用户根据需要指定扩容后的云硬盘大小,提交订单,扩容云硬盘。

  • 实例状态必须为“available未挂载”时方可进行扩容。

  • 当实例处于正在扩容的过程中时,实例处于“扩容中”(extending)状态,在实例扩容完毕后,会进入“运行中(available)”状态。

URI

POST /ebs/v1/volumes/{volumeId}/action/extend

请求参数

名称 位置 类型 是否必须 描述
volumeId path String 是 所需扩容云硬盘的ID
indiskNewSize body int 是 云硬盘扩容后的大小

返回参数

名称 位置 类型 是否必须 描述
orderId 订单ID String 是 订单标识

示例

扩容云硬盘必须指定云硬盘扩容后的大小。 假设1块40G按需的普通型(SATA)云硬盘扩容到60G,其ID为c97becda-1a55-440b-bc8d-b507c4ff3c44。

请求示例

 /ebs/v1/volumes/c97becda-1a55-440b-bc8d-b507c4ff3c44/action/extend
{
  "indiskNewSize": 60
}

响应示例

 {
     "orderId": "190414814317051904"
 }

返回值

请参考通用请求返回值

错误码

请参考错误码

云硬盘续费

只针对预付费(包年包月)的云硬盘,为一块预付费(包年包月)的云硬盘进行续费。

描述

  • 用户根据需要指定云硬盘续费的时长、时长单位,提交订单,续费云硬盘。

  • 云硬盘续费只针对用户以预付费(包年包月)所购买的云硬盘。

URI

POST /ebs/v1/volumes/{volumeId}/action/renew

请求参数

名称 位置 类型 是否必须 描述
volumeId path String 是 所需续费云硬盘的ID
duration body String 是 购买时长,折算成月,9个月则填写为9,3年为36
durationUnit body String 否 购买时长单位,取值范围:M(月),填写时必须为M(区分大小写),不填默认值为M

返回参数

名称 位置 类型 是否必须 描述
orderId 订单ID String 是 订单标识

示例

续费云硬盘必须指定云硬盘的续费时长。 假设1块30G包年包月的普通型(SATA)云硬盘需要续费2个月,其ID为5422c7b1-09b4-45ad-a173-68df3f6c02c8。

请求示例

 /ebs/v1/volumes/5422c7b1-09b4-45ad-a173-68df3f6c02c8/action/renew
{
    "duration": "2",
    "durationUnit": "M"
}

响应示例

 {
     "orderId": "190414544170319872"
 }

返回值

请参考通用请求返回值

错误码

请参考错误码

删除云硬盘

只针对按量付费的云硬盘,删除一块或多块按量付费的云硬盘。

描述

  • 用户根据需要指定所需删除的一块或多块云硬盘的ID,提交订单,删除云硬盘。

  • 删除云硬盘只针对用户以按量付费所购买的云硬盘。

  • 删除15天内创建的云硬盘是硬删除,删除超过15天创建的云硬盘是软删除。

  • 实例状态必须为“available未挂载”时方可进行删除。

URI

POST /ebs/v1/volumes/action/delete

请求参数

名称 位置 类型 是否必须 描述
volumeIds body List<String> 是 所需退订云硬盘的ID集合

返回参数

名称 位置 类型 是否必须 描述
orderId 订单ID String 是 订单标识

示例

假设要退订1块30G按量付费的普通型(SATA)和1块20G按量付费的普通型(SATA)云硬盘,云硬盘的ID分别为395ad417-979c-44d3-8ec1-3193888d8e6c和c97becda-1a55-440b-bc8d-b507c4ff3c44。

请求示例

 /ebs/v1/volumes/action/delete
{
    "volumeIds": ["395ad417-979c-44d3-8ec1-3193888d8e6c", "c97becda-1a55-440b-bc8d-b507c4ff3c44"]
}

响应示例

 {
     "orderId": "190414544170319882"
 }

返回值

请参考通用请求返回值

错误码

请参考错误码

更新云硬盘名称

更新云硬盘的显示名称。

描述

  • 更改指定云硬盘的显示名称。

URI

PUT /ebs/v1/volumes/{volumeId}

请求参数

名称 位置 类型 是否必须 描述
volumeId path String 是 需要更改名称的云硬盘ID
name body String 是 新的云硬盘名称

返回参数

无

示例

假设将一块ID为 c2fb761c-ad8b-4f6b-a616-6cb2cf09d36c 的云硬盘名称更改为 test

请求示例

 /ebs/v1/volumes/c2fb761c-ad8b-4f6b-a616-6cb2cf09d36c
 {
    "name": "test"
 }

返回值

请参考通用请求返回值

错误码

请参考错误码

云硬盘列表和检索

描述

  • 查询/检索云硬盘列表。
  • 可按名称/id两个参数进行筛选,先对名称进行模糊搜索,再对id进行精确搜索。为空时不进行过滤。
  • 可按状态进行搜索。
  • 可指定是否包含停服的云硬盘。

URI

GET /ebs/v1/volumes/{pageNo}/{pageSize}

请求参数

名称 位置 类型 是否必须 描述
searchValue params string N 搜索参数,按名称/id两个参数进行筛选,先对名称进行模糊搜索,再对id进行精确搜索。为空时不进行过滤
sortField params string N 按哪个字段进行排序,默认created_at,目前仅created_at
sortOrder params string N descend/ascend,升序排序/降序排序,默认descend,目前仅descend
status params string N 按状态进行搜索
pageNo path int Y 查询页数,为-1时查询全部云硬盘
pageSize path int Y 每页显示条数,为-1时查询全部云硬盘
containStopService params string N 是否包含停服的云硬盘,true:是,false:否,默认为true
serverId params string N 根据云服务器的 id,查出该云服务器下挂载的云硬盘的列表
availabilityZone params string N 按 az 过滤,只返回对应 az 下的云硬盘
withBrief params string N 是否是简要备份信息(不包括计费信息,对应服务器信息等)"true"为是,"false"为否

返回参数

名称 位置 类型 是否必须 描述
pageNo body int 是 查询页数
pageSize body int 是 每页显示条数
totalCount body int 是 总条数
data body List<VolumeDTO> 是 具体云硬盘列表(metaData中的volume_tag二进制下第三位取值为1,表示该盘为共享盘)

示例

以查询关键字为“EBS”的云硬盘列表为例:

请求示例

/ebs/v1/volumes/1/10?searchValue=EBS

响应示例

{
    "data": [
        {
            "id": "3e0c9132-c03c-44cd-9967-a86e8f26910b",
            "name": "EBS-2019521111340-3",
            "description": null,
            "status": "available",
            "size": 40,
            "createdAt": "2019-05-21T03:13:16Z",
            "volumeType": "SATA",
            "snapshotId": null,
            "bootable": "false",
            "multiattach": null,
            "imageRef": null,
            "metaData": {
                "expire": "",
                "productTag": "EBS",
                "volume_tag": "0"
            },
            "attachments": [],
            "availabilityZone": null,
            "userId": null,
            "projectId": null,
            "feeData": {
                "chargeType": "hourlySettlement",
                "startFeeTime": "2019-05-21 11:13:16",
                "nextFeeTime": "2099-12-31 23:59:59",
                "createTime": "2019-05-22 16:41:15",
                "serviceStatus": "alreadyOpened",
                "deleteTime": null,
                "daysOfDelete": null,
                "isAutoRenew": "false"
            },
            "region": "cn-north-3",
            "regionDisplayName": null,
            "backupId": null
        },
        {
            "id": "7c390279-646f-4503-9748-51d7148c3e20",
            "name": "mqtest2",
            "description": null,
            "status": "in-use",
            "size": 20,
            "createdAt": "2019-05-17T07:58:57Z",
            "volumeType": "SATA",
            "snapshotId": null,
            "bootable": "false",
            "multiattach": null,
            "imageRef": null,
            "metaData": {
                "expire": "",
                "attached_mode": "rw",
                "volume_tag": "0",
                "productTag": "EBS"
            },
            "attachments": [
                {
                    "device": "/dev/vdd",
                    "id": "7c390279-646f-4503-9748-51d7148c3e20",
                    "attachment_id": "a159ef89-5f28-46df-acab-b3ac099a3647",
                    "hostname": "cmp003",
                    "serverId": "1dd012e4-e632-4ccf-98ec-f57e897bb594",
                    "volumeId": "7c390279-646f-4503-9748-51d7148c3e20",
                    "serverName": "ECS-2019425153043"
                }
            ],
            "availabilityZone": null,
            "userId": null,
            "projectId": null,
            "feeData": {
                "chargeType": "hourlySettlement",
                "startFeeTime": "2019-05-17 15:58:57",
                "nextFeeTime": "2099-12-31 23:59:59",
                "createTime": "2019-05-17 15:58:57",
                "serviceStatus": "alreadyOpened",
                "deleteTime": null,
                "daysOfDelete": null,
                "isAutoRenew": "false"
            },
            "region": "cn-north-3",
            "regionDisplayName": null,
            "backupId": null
        }
    ],
    "pageNo": 1,
    "pageSize": 10,
    "totalCount": 2
}

返回值

请参考通用请求返回值

错误码

请参考错误码

查询云硬盘详情

描述

  • 查询某一个云硬盘详情

    URI

    GET /ebs/v1/volumes/{volumeId}

请求参数

名称 位置 类型 是否必须 描述
volumeId path String 是 云硬盘id
withBrief params String 否 是否为简要信息,“true”表示简要信息

返回参数

名称 位置 类型 是否必须 描述
id body String 是 云硬盘ID
name body String 是 云硬盘名称
description body String 否 描述
size body int 是 云硬盘大小
createdAt body String 是 创建时间
volumeType body String 是 云硬盘类型,目前可支持SATA和SSD
snapshotId body String 否 备份id
bootable body String 是 是否为系统盘 ,"true"为系统盘,"false"为数据盘
multiattach body boolean 否 是否支持多挂载
imageRef body String 否 镜像标识
metaData body Map 否 元数据(volume_tag在二进制下第三位取值为1,表示该盘为共享盘)
attachments body List<? extends VolumeAttachment> 否 挂载信息
availabilityZone body String 否 可用域
userId body String 否 用户id(openstack)
projectId body String 否 项目id(openstack)
feeData body FeeData 否 计费信息
region body String 是 区域,前端根据此字段来展示区域名称
regionDisplayName body String 是 保留字段,值为null,没有实际作用
backupNum body Integer 是 该云硬盘的备份数量
snapshotNum body Integer 是 该云硬盘的快照数量
backupId body String 否 备份id

示例

以查看id为7c390279-646f-4503-9748-51d7148c3e20的云硬盘详情为例:

请求示例

/ebs/v1/volumes/7c390279-646f-4503-9748-51d7148c3e20

响应示例

 {
    "id": "7c390279-646f-4503-9748-51d7148c3e20",
    "name": "mqtest2",
    "description": null,
    "status": "in-use",
    "size": 20,
    "createdAt": "2019-05-17T07:58:57Z",
    "volumeType": "SATA",
    "snapshotId": null,
    "bootable": "false",
    "multiattach": null,
    "imageRef": null,
    "metaData": {
        "expire": "",
        "attached_mode": "rw",
        "volume_tag": "0",
        "productTag": "EBS"
    },
    "attachments": [
        {
            "device": "/dev/vdd",
            "id": "7c390279-646f-4503-9748-51d7148c3e20",
            "attachment_id": "a159ef89-5f28-46df-acab-b3ac099a3647",
            "hostname": "cmp003",
            "serverId": "1dd012e4-e632-4ccf-98ec-f57e897bb594",
            "volumeId": "7c390279-646f-4503-9748-51d7148c3e20",
            "serverName": "ECS-2019425153043"
        }
    ],
    "availabilityZone": null,
    "userId": null,
    "projectId": null,
    "feeData": {
        "chargeType": "hourlySettlement",
        "startFeeTime": "2019-05-17 15:58:57",
        "nextFeeTime": "2099-12-31 23:59:59",
        "createTime": "2019-05-17 15:58:57",
        "serviceStatus": "alreadyOpened",
        "deleteTime": null,
        "daysOfDelete": null,
        "isAutoRenew": "false"
    },
    "region": "cn-north-3",
    "regionDisplayName": null,
    "backupId": null
}

返回值

请参考通用请求返回值

错误码

请参考错误码

挂载云硬盘

描述

  • 挂载云硬盘到云服务器。
  • 处于停服状态的云硬盘不可挂载。
  • 实例状态为 'AVAILABLE' 时才可挂载。

URI

POST /ebs/v1/volumes/{volumeId}/action/attach

请求参数

名称 位置 类型 是否必须 描述
volumeId path string Y 云硬盘ID
osAttach body Map Y 实例ID及挂载点信息

返回参数

无

示例

将一块ID为 c2fb761c-ad8b-4f6b-a616-6cb2cf09d36c 的云硬盘挂载到实例ID为 adce2737-eb93-4bfe-a276-472be188d64c 的云服务器上。

请求示例

 /ebs/v1/volumes/c2fb761c-ad8b-4f6b-a616-6cb2cf09d36c/action/attach
 {
    "osAttach": {
        "instanceUuid": "adce2737-eb93-4bfe-a276-472be188d64c",
        "mountPoint": "c2fb761c-ad8b-4f6b-a616-6cb2cf09d36c"
    }
}

返回值

请参考通用请求返回值

错误码

请参考错误码

卸载云硬盘

描述

  • 将云硬盘从云服务器上卸载。
  • 实例状态为 'in-use' 的云硬盘才可执行卸载操作。

URI

POST /ebs/v1/volumes/{volumeId}/action/detach

请求参数

名称 位置 类型 是否必须 描述
volumeId path string Y 云硬盘ID
osDetach body Map Y 挂载点信息(非共享盘取值为attachments.id,共享盘取值为attachments.attachment_id)

返回参数

无

示例

将一块ID为 c2fb761c-ad8b-4f6b-a616-6cb2cf09d36c 的云硬盘从云服务器上卸载。

请求示例

 /ebs/v1/volumes/c2fb761c-ad8b-4f6b-a616-6cb2cf09d36c/action/detach
 {
    "osDetach": {
        "attachmentId": "adce2737-eb93-4bfe-a276-472be188d64c"
    }
 }

返回值

请参考通用请求返回值

错误码

请参考错误码

导出云硬盘

描述

  • 以excel形式导出云硬盘列表

URI

GET /ebs/v1/volumes/action/export

请求参数

名称 位置 类型 是否必须 描述

返回参数

名称 位置 类型 是否必须 描述
- - application/octet-stream 是 云硬盘列表excel的输出流

示例

请求示例

 /ebs/v1/volumes/action/export

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

获取用户已购买的云硬盘数量

描述

URI

GET /ebs/v1/volumes/instance-num

请求参数

名称 位置 类型 是否必须 描述

返回参数

名称 位置 类型 是否必须 描述
data body int 是 用户已购买的云硬盘数量

示例

请求示例

 /ebs/v1/volumes/instance-num

响应示例

 {
    "data": 6
 }

返回值

请参考通用请求返回值

错误码

请参考错误码

获取单个云硬盘的备份配额信息

获取单个云硬盘的备份配额信息

描述

  • 获取单个云硬盘的备份配额信息

URI

GET /ebs/v1/volumes/{volumeId}/snaps/quota

请求参数

名称 位置 类型 是否必须 描述
volumeId path String 是 云硬盘 id

返回参数

名称 位置 类型 是否必须 描述
used body int 是 云硬盘已用备份数量
remain body int 是 云硬盘剩余可用备份数量

示例

假设获取 id 为 9191b064-82d5-4290-843f-cf3b00222676 的云硬盘的备份配额信息。

请求示例

/ebs/v1/volumes/9191b064-82d5-4290-843f-cf3b00222676/snaps/quota

响应示例

{
    "remain": 3,
    "used": 4
}

返回值

请参考通用请求返回值

错误码

请参考错误码

获取指定云硬盘的备份数量

获取指定云硬盘的备份数量

描述

  • 获取指定云硬盘的备份数量

URI

GET /ebs/v1/volumes/{volumeId}/snap-num

请求参数

名称 位置 类型 是否必须 描述
projectName Param string 否 项目名称(必须与keystoneToken一起使用)
keystoneToken param String 否 keystone token

返回参数

名称 位置 类型 是否必须 描述
snapNum body int 是 云硬盘的备份数量

示例

请求示例

/ebs/v1/volumes/f82b63b5-91c0-495b-ad18-67793d8382a8/snap-num?projectName=zhangyan&keystoneToken=gAAAAABdznNhGYIROg5OJ2ZCzK34FvpkT5_CzHwaTaJH44BQzTLeYoMMGqjQ275-QOpd-kR-staaakpa_2326jlcREaVtZjLxhD90Cr5wwbMyiMxULCesp7e72IWPPZMyJ_c7RvLDzgrVrYQaaNQzhlbFKHDAGCu4NXZCXWN63M9QW9MXI-0XUeRD36RbgznqxwuEiFFuit3

响应示例

{
  "snapNum":0
}

返回值

请参考通用请求返回值

错误码

请参考错误码

备份相关接口

查询备份列表

获取云硬盘的备份列表。

描述

  • 获取云硬盘的备份列表。
  • 支持分页,可以指定查询的页码,每页的条数。
  • 支持筛选,对备份名称进行模糊搜索,对 id 进行精确搜索,对备份id批量搜索。

URI

GET /ebs/v1/snaps/{pageNo}/{pageSize}

请求参数

名称 位置 类型 是否必须 描述
searchValue param string N 搜索参数,将对备份名称/备份id/云硬盘id进行筛选,对名称进行模糊搜索,对id进行精确搜索。为空时不进行过滤
isVolumeId param string N 标志传入的 searchValue 是否只为云硬盘 id,「是」则传"y"
status param string N 按备份状态进行搜索
pageNo path int Y 查询页数,为-1时查询全部备份
pageSize path int Y 每页显示条数,为-1时查询全部备份
snapIds String param N 备份 id 集合,多个备份用 "," 分隔
productTag String param N 产品标识,缺省为 EBS,其他产品使用则需要传入产品名称
projectName String Param N 项目名称 (必须与keystoneToken一起使用)
keystoneToken String param N keystone token
availabilityZone String param N 可用域
withBrief String param N 是否是简要备份信息(不包括盘信息等)"true"为是,"false"为否

返回参数

| 名称 | 位置 | 类型 | 是否必须 | 描述 | |-----------|------|---------------|---------|------003031------------| | pageNo | body | int | 是 | 查询页数 | | pageSize | body | int | 是 | 每页显示条数 | | totalCount | body | int | 是 | 总条数 | | data | body | List<SnapDTO> | 是 | 具体备份列表 |

示例

假设获取第 1 页的备份列表,每页显示 3 条,根据「备份状态是 available」当做条件进行筛选。

请求示例

/ebs/v1/snaps/1/3?status=available

响应示例

{
    "data": [
        {
            "id": "14c90ae2-0340-49fb-97a9-2058b5d7bd19",
            "name": "auto_20190815080047",
            "size": 20,
            "status": "available",
            "createdAt": "2019-08-15T00:00:49Z",
            "volumeId": "079337cf-2a7f-4f7c-bc80-a7fb5b1bfdaa",
            "volumeName": "bao05306",
            "bootable": "false",
            "kkUserId": "f679eb23-f74d-477a-a31f-a656d71604ed",
            "accountId": "dev",
            "availabilityZone": "nova"
        },
        {
            "id": "ef64b7bc-4eb1-4b44-816c-d52655234759",
            "name": "auto_20190815080047",
            "size": 20,
            "status": "available",
            "createdAt": "2019-08-15T00:00:48Z",
            "volumeId": "135d04f8-6f0b-4ea8-ab8b-24982b0d7f2e",
            "volumeName": "bao05306",
            "bootable": "false",
            "kkUserId": "f679eb23-f74d-477a-a31f-a656d71604ed",
            "accountId": "dev",
            "availabilityZone": "nova"
        },
        {
            "id": "123f4d6d-1955-452c-9a47-bab4c26c7da5",
            "name": "auto_20190815080045",
            "size": 20,
            "status": "available",
            "createdAt": "2019-08-15T00:00:48Z",
            "volumeId": "e70c1204-5518-4145-b92d-e5b2361189f5",
            "volumeName": "EBS-2019678284-mock-1",
            "bootable": "false",
            "kkUserId": "f679eb23-f74d-477a-a31f-a656d71604ed",
            "accountId": "dev",
            "availabilityZone": "nova"
        }
    ],
    "pageNo": 1,
    "pageSize": 3,
    "totalCount": 10
}

返回值

请参考通用请求返回值

错误码

请参考错误码

回滚备份

回滚备份到源硬盘

描述

  • 回滚的云硬盘需要是挂载状态,并且对应的云服务器是关机状态。
  • 恢复备份数据到云硬盘,云硬盘回滚前的数据消失。

URI

POST /ebs/v1/snaps/{snapId}/action/restore

请求参数

名称 位置 类型 是否必须 描述
snapId path String 是 备份 id
volumeId body String 是 回滚的云硬盘 id

返回参数



示例

假设将 id 为 7191e920-5096-4418-bb9e-07380846358b 的备份,回滚到 id 为 12a946a0-0ab8-4e79-b95e-09f0661d360b 的云硬盘, 则URI 为 /ebs/v1/snaps/7191e920-5096-4418-bb9e-07380846358b/action/restore。

请求示例

{
    "volumeId":"12a946a0-0ab8-4e79-b95e-09f0661d360b"
}

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

创建备份

创建云硬盘备份

描述

  • 当前云硬盘没有创建备份的任务。
  • 创建备份时需要输入名称,名称规则:长度为2-128个字符,不能以特殊字符及数字开头,只可包含特殊字符中的".","_"或"-"
  • 云硬盘处在中间状态时创建备份不可用,包括:创建中,挂载中,卸载中,扩容中。
  • 每块云硬盘最多支持创建7个备份。

URI

POST /ebs/v1/snaps

请求参数

名称 位置 类型 是否必须 描述
id body String 是 云硬盘 id
name body String 是 备份名称
incremental body Boolean 否 true:增量 false:全量
region body String 否 区域
availabilityZone body String 否 可用域
productTag body String 否 产品标识,缺省为 EBS,其他产品接入则需要传入产品名称
container body String 否 桶名,缺省为默认桶名,其他产品接入则需要传入自己产品的桶名
projectName body String 否 项目名称(必须与keystoneToken一起使用)
keystoneToken body String 否 keystone token

返回参数

名称 位置 类型 是否必须 描述
id body String 是 备份id
name body String 是 备份名称
size body int 是 备份容量
volumeId body String 是 云硬盘 id
status body String 是 备份状态
volumeName body String 是 云硬盘名字

示例

假设给 id 为 135d04f8-6f0b-4ea8-ab8b-24982b0d7f2e 的云硬盘,创建一个名称为 test 的备份。

请求示例

{
    "id" : "135d04f8-6f0b-4ea8-ab8b-24982b0d7f2e",
    "name" : "test"
}

响应示例

{
    "id": "8d67b3d6-7354-4902-ae86-451887788bcd",
    "name": "test",
    "size": 40,
    "status": "creating",
    "createdAt": null,
    "volumeId": "9697268f-0d32-4590-9a89-21049f9d470b",
    "volumeName": "volume_667376cc-e688-4601-a731-8f5ce9e6a276",
    "bootable": null,
    "kkUserId": null,
    "accountId": null,
    "availabilityZone": null,
    "updatedAt": null,
    "metadata": null
}

返回值

请参考通用请求返回值

错误码

请参考错误码

删除备份

删除备份

描述

  • 支持批量删除。
  • 删除备份不受云硬盘限制,即使备份有关联的云硬盘也可以删除。

URI

POST /ebs/v1/snaps/action/delete

请求参数

名称 位置 类型 是否必须 描述
snapIds body String 是 备份 id 集合,多个备份用 "," 分隔
projectName body String 否 项目名称 (必须与keystoneToken一起使用)
keystoneToken body String 否 keystone token

返回参数



示例

假设删除两个备份,id 分别为 1cc70ca7-b47f-4ffc-92ec-a7b70bd85135、7191e920-5096-4418-bb9e-07380846358b。

请求示例

{
    "snapIds":"1cc70ca7-b47f-4ffc-92ec-a7b70bd85135,7191e920-5096-4418-bb9e-07380846358b"
}

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

查询备份统计信息

获取用户下备份的统计信息

描述

  • 获取用户下备份的使用容量和使用数量

URI

GET /ebs/v1/snaps/statistics

请求参数

返回参数

名称 位置 类型 是否必须 描述
size body int 是 备份使用容量
count body int 是 备份使用数量

示例

假设获取某个用户下的备份统计信息,根据 公共请求头 来获取用户信息, 再获取备份统计信息。

请求示例

/ebs/v1/snaps/statistics

响应示例

{
    "size": 200,
    "count": 10
}

返回值

请参考通用请求返回值

错误码

请参考错误码

修改备份名称

修改备份的名称

描述

  • 修改备份的名称

URI

PUT /ebs/v1/snaps/{backupId}

请求参数

名称 位置 类型 是否必须 描述
snapId path string 是 备份 id
name body string 是 备份名称

返回参数



示例

假设将 id 为 7191e920-5096-4418-bb9e-07380846358b 的备份的名称改为 test,则 URI 为 /ebs/v1/snaps/7191e920-5096-4418-bb9e-07380846358b。

请求示例

{
    "name":"test"
}

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

备份详情

备份详情

描述

  • 备份详情

URI

GET /ebs/v1/snaps/{backupId}

请求参数

名称 位置 类型 是否必须 描述
projectName Param string 否 项目名称

返回参数

名称 位置 类型 是否必须 描述
id body string 是 备份id
name body String 是 备份名字
size body int 是 云硬盘容量
status body String 是 备份状态
createdAt body String 是 创建时间
volumeId body String 是 云硬盘id
metadata body Map 是 元数据

示例

请求示例

/ebs/v1/snaps/23bac307-6a85-4123-becd-ebbd9ebd9792?projectName=zhangyan

响应示例

{
    "id": "23bac307-6a85-4123-becd-ebbd9ebd9792",
    "name": "test",
    "size": 20,
    "status": "available",
    "createdAt": "2019-10-30T00:26:21Z",
    "volumeId": "ba0f4678-97d9-41c7-ab7d-5a4f08da0878",
    "volumeName": null,
    "bootable": null,
    "kkUserId": "223f6fac-cacf-4447-ba2e-ee42ab125148",
    "accountId": null,
    "availabilityZone": null,
    "updatedAt": null,
    "metadata": {
        "productTag": "EBS",
        "availability_zone": "nova"
    }
}

返回值

请参考通用请求返回值

错误码

请参考错误码

自动备份策略相关接口

创建备份策略

创建一个自动备份策略。

描述

  • 用户根据需要确定自动备份策略的名称、周期、时间点,创建自动备份策略。

  • 周期、时间点在接口中以Cron表达式的形式进行输入和保存。

URI

POST /ebs/v1/strategies

请求参数

名称 位置 类型 是否必须 描述
strategyName body String 是 自动备份策略名称
strategyCycle body String 是 自动备份策略周期、时间点对的Cron表达式

返回参数

假设创建一个名称为“shang0604”,Cron表达式为 40 15 ? *的自动备份策略。

示例

请求示例

/ebs/v1/strategies
{
    "strategyName": "shang0604",
    "strategyCycle": "* 40 15 ? * *"
}

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

删除备份策略

删除一个指定的自动备份策略。

描述

  • 用户通过自动备份策略ID,删除一个指定的自动备份策略。

URI

DELETE /ebs/v1/strategies/{strategyId}

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动备份策略ID

返回参数

示例

假设删除ID为407ed6d7-8631-4f57-b6a5-2f2f8a7f31ec的自动备份策略。

请求示例

/ebs/v1/strategies/407ed6d7-8631-4f57-b6a5-2f2f8a7f31ec

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

更新备份策略

更新一个指定的自动备份策略。

描述

  • 用户更新指定备份策略的名称和Cron表达式信息。
  • 当名称和Cron表达式同时都指定时则同时更新;当只传名称或只传Cron表达式时则只更新名称或只更新Cron表达式。
  • 名称和Cron表达式不能同时传空

URI

PUT /ebs/v1/strategies/{strategyId}

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动备份策略ID
strategyName body String 否 自动备份策略名称
strategyCycle body String 否 自动备份策略Cron表达式

注:strategyName和strategyCycle不能同时为空

返回参数

示例

假设更新ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动备份策略的名称为testshang、Cron表达式为 59 18 ? *1。

请求示例

/ebs/v1/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c
{
    "strategyName": "testshang",
    "strategyCycle": "* 59 18 ? * *1"
}

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

备份策略列表

自动备份策略列表。

描述

  • 获取某个用户下的自动备份策略列表。
  • 支持分页。

URI

GET /ebs/v1/strategies/{pageNo}/{pageSize}

请求参数

名称 位置 类型 是否必须 描述
pageNo path int 是 查询页数,为-1时查询全部自动备份策略
pageSize path int 是 每页显示条数,为-1时查询全部自动备份策略

返回参数

名称 位置 类型 是否必须 描述
pageNo body int 是 查询页数
pageSize body int 是 每页显示条数
totalCount body int 是 总条数
data body List<SnapStrategy> 是 自动备份策略列表

示例

假设查询某个用户下的自动备份策略列表且页数为2,每页显示3条。

请求示例

/ebs/v1/strategies/2/3

响应示例

{
    "data": [
        {
            "strategyId": "3f70c12e-e31d-4fac-b5a1-9df2460866a4",
            "strategyName": "fangwen123",
            "strategyStatus": "1",
            "strategyCreateTime": "2019-05-18T15:48:17Z",
            "projectName": "gaoss",
            "strategyCycle": "* 48 15 ? * *",
            "associateNum": 0
        },
        {
            "strategyId": "407ed6d7-8631-4f57-b6a5-2f2f8a7f31ec",
            "strategyName": "gaoss2",
            "strategyStatus": "1",
            "strategyCreateTime": "2019-04-06T09:16:23Z",
            "projectName": "gaoss",
            "strategyCycle": "* 19 9 ? * 1",
            "associateNum": 0
        }
    ],
    "pageNo": 2,
    "pageSize": 3,
    "totalCount": 5
}

返回值

请参考通用请求返回值

错误码

请参考错误码

查看单个备份策略详情

查看单个自动备份策略的详情。

描述

  • 查看指定strategyId对应的自动备份策略的详情信息。
  • 详情包括ID、名称、状态、创建时间、周期时间点对应的Cron表达式、区域等信息。

URI

GET /ebs/v1/strategies/{strategyId}

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动备份策略ID

返回参数

名称 位置 类型 是否必须 描述
strategyId body String 是 自动备份策略ID
strategyName body String 是 自动备份策略名称
strategyStatus body String 是 自动备份策略状态
strategyCreateTime body String 是 自动备份策略创建时间
strategyCycle body String 是 自动备份策略周期、时间点对应的Cron表达式
region body String 是 所在区域,如cn-north-3

示例

假设查询ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动备份策略的详情信息。

请求示例

/ebs/v1/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c

响应示例

{
    "strategyId": "1b8b38f0-6ba5-44b2-b089-39cfe134b94c",
    "strategyName": "sed",
    "strategyStatus": "1",
    "strategyCreateTime": "2019-05-29T01:21:42Z",
    "strategyCycle": "* 24 10 ? * *",
    "region": "cn-north-3"
}

返回值

请参考通用请求返回值

错误码

请参考错误码

启用备份策略

启用一个指定的自动备份策略。

描述

  • 启用strategyId对应的自动备份策略。
  • 处于禁用状态下的自动备份策略才能执行启用。

URI

POST /ebs/v1/strategies/{strategyId}/action/enable

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动备份策略ID

返回参数

示例

假设启用ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动备份策略,且其状态当前为禁用。

请求示例

/ebs/v1/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c/action/enable

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

禁用备份策略

禁用一个指定的自动备份策略。

描述

  • 禁用strategyId对应的自动备份策略。
  • 处于启用状态下的自动备份策略才能执行禁用。

URI

POST /ebs/v1/strategies/{strategyId}/action/disable

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动备份策略ID

返回参数

示例

假设禁用ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动备份策略,且其状态当前为可用。

请求示例

/ebs/v1/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c/action/disable

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

修改备份策略关联的云硬盘

修改指定备份策略所关联的云硬盘集合。

描述

  • 用户根据需要确定strategyId所对应的自动备份策略关联的云硬盘ID集合,修改备份策略关联的云硬盘。
  • 一个备份策略可关联多个云硬盘,一个云硬盘只能关联一个备份策略。
  • 当某个云硬盘之前关联了其它的自动备份策略,在与当前自动备份策略进行关联时会首先解除与之前策略的关联。
  • 用户每次执行修改策略所关联的云硬盘时,会首先解除在该用户下此策略关联的云硬盘,然后根据用户指定的云硬盘ID集合为此策略关联云硬盘ID集合对应的云硬盘。

URI

POST /ebs/v1/strategies/{strategyId}/associations

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动备份策略ID
volumeIds body String 是 云硬盘ID,多个ID时用英文逗号隔开

返回参数

示例

假设为ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动备份策略关联2个云硬盘,云硬盘的ID分别为ab04a79e-fb1a-4063-b10a-cb59059c6c83和894535c1-ef48-42ee-8e86-d48c669135eb。

请求示例

/ebs/v1/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c/associations
{
    "volumeIds":"ab04a79e-fb1a-4063-b10a-cb59059c6c83,894535c1-ef48-42ee-8e86-d48c669135eb"
}

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

获取备份策略关联的云硬盘列表

获取指定自动备份策略下关联的云硬盘列表。

描述

  • 获取某个用户指定strategyId对应的自动备份策略下关联的云硬盘列表。
  • 包括云硬盘的ID、名称、状态、大小、挂载位置等信息。
  • 支持分页。

URI

GET /ebs/v1/strategies/{strategyId}/associations/{pageNo}/{pageSize}

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动备份策略ID
pageNo path int 是 查询页数,为-1时查询全部自动备份策略
pageSize path int 是 每页显示条数,为-1时查询全部自动备份策略

返回参数

名称 位置 类型 是否必须 描述
pageNo body int 是 查询页数
pageSize body int 是 每页显示条数
totalCount body int 是 总条数
data body List<VolumeInfo> 是 云硬盘信息的列表

示例

假设查询ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动备份策略下关联的云硬盘列表。

请求示例

/ebs/v1/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c/associations/-1/-1

响应示例

{
    "data": [
        {
            "id": "0a064faa-0e43-46da-a659-2016fe2a52aa",
            "name": "shang0531",
            "status": "available",
            "size": 20,
            "bootable": "false",
            "attachments": [{
               "serverName": "test1"
            }],
            "strategyId": "1b8b38f0-6ba5-44b2-b089-39cfe134b94c"
        }
    ],
    "pageNo": -1,
    "pageSize": -1,
    "totalCount": 1
}

返回值

请参考通用请求返回值

错误码

请参考错误码

获取单个云硬盘的状态

获取一个指定云硬盘的状态。

描述

  • 根据云硬盘id获得对应云硬盘的状态

URI

GET /ebs/v1/volumes/{volumeId}/status

请求参数

名称 位置 类型 是否必须 描述
volumeId path String 是 云硬盘 id

返回参数

名称 位置 类型 是否必须 描述
status body String 是 云硬盘状态

示例

可以查询云硬盘id对应的云硬盘的状态

请求示例

 /ebs/v1/volumes/8eb620d0-81c4-424b-9d6e-e78b6a4ac716/status

响应示例

 {
        "status": "available"
 }

返回值

请参考通用请求返回值

错误码

请参考错误码

快照相关接口

查询快照列表

获取云硬盘的快照列表。

描述

  • 获取云硬盘的快照列表。
  • 支持分页,可以指定查询的页码,每页的条数。
  • 支持筛选,对快照名称进行模糊搜索,对快照id和快照的云硬盘id进行精确搜索。

URI

GET /ebs/v1/snapshots/{pageNo}/{pageSize}

请求参数

名称 位置 类型 是否必须 描述
pageNo path int Y 查询页数,为-1时查询全部快照
pageSize path int Y 每页显示条数,为-1时查询全部快照
searchValue param string N 搜索参数,将对快照名称/快照id/云硬盘id进行筛选(支持多盘查询,多个盘id用","分开),对名称进行模糊搜索,对id进行精确搜索。为空时不进行过滤
isVolumeId param string N 标志传入的 searchValue 是否只为云硬盘 id,「是」则传"y"
status param string N 按快照状态进行搜索
snapIds String param N 快照 id 集合,多个快照用 "," 分隔
productTag String param N 产品标识,缺省为 EBS,其他产品使用则需要传入产品名称
withBrief String param N 是否是简要快照信息(不包括盘信息等)"true"为是,"false"为否

返回参数

名称 位置 类型 是否必须 描述
pageNo body int 是 查询页数
pageSize body int 是 每页显示条数
totalCount body int 是 总条数
data body List<Snapshot> 是 具体快照列表

示例

假设获取第 1 页的快照列表,每页显示 2 条,根据「快照状态是 available」当做条件进行筛选。

请求示例

/ebs/v1/snapshots/1/2?status=available

响应示例

{
    "data": [
        {
            "id": "8ac5ec3c-8c3c-4e48-9f5a-41cd64cd5eb1",
            "name": "kxsnapshot07281001",
            "kkUserId": null,
            "accountId": null,
            "volumeId": "03f009d1-aa26-4568-8e44-2f1ac7ac80f0",
            "bootable": "false",
            "size": 20,
            "status": "available",
            "createdAt": "2020-07-28T02:04:59Z",
            "updateAt": null,
            "volumeName": "ebstestt",
            "metadata": null
        },
        {
            "id": "ceddf43e-b2c5-4476-a812-1b7a8bd41240",
            "name": "snapshot_e02bcf82-5994-4fda-b801-e6ec57be882e",
            "kkUserId": null,
            "accountId": null,
            "volumeId": "e02bcf82-5994-4fda-b801-e6ec57be882e",
            "bootable": "false",
            "size": 20,
            "status": "available",
            "createdAt": "2020-07-15T02:02:28Z",
            "updateAt": null,
            "volumeName": "EBS-20207992044",
            "metadata": null
        }
    ],
    "pageSize": 2,
    "pageNo": 1
}

返回值

请参考通用请求返回值

错误码

请参考错误码

回滚快照

恢复云硬盘到指定快照

描述

  • 回滚的云硬盘需要是可用状态。
  • 回滚云硬盘到指定快照的状态,云硬盘回滚前的数据消失。

URI

POST /ebs/v1/snapshots/{snapshotId}/revert

请求参数

名称 位置 类型 是否必须 描述
snapshotId path String 是 快照 id
volumeId body String 是 云硬盘id

返回参数

成功响应码为202,无响应体

示例

假设将 id 为 7191e920-5096-4418-bb9e-07380846358b 的云硬盘回滚到 id 为 aff78562-7879-4968-9b69-28da6a8d1627 的快照, 则URI 为 /ebs/v1/snapshots/aff78562-7879-4968-9b69-28da6a8d1627/revert。

请求示例

{
    "volumeId":"aff78562-7879-4968-9b69-28da6a8d1627"
}

响应示例 无

返回值

请参考通用请求返回值

错误码

请参考错误码

创建快照

创建云硬盘快照

描述

  • 创建快照时需要输入名称,名称规则:长度为2-128个字符,不能以特殊字符及数字开头,只可包含特殊字符中的".","_"或"-"
  • 云硬盘处在中间状态时创建快照不可用,包括:创建中,挂载中,卸载中,扩容中。
  • 每块云硬盘最多支持创建1个快照。

URI

POST /ebs/v1/snapshots

请求参数

名称 位置 类型 是否必须 描述
volumeId body String 是 云硬盘 id
name body String 是 快照名称
productTag body String 否 产品标识,缺省为 EBS,其他产品接入则需要传入产品名称

返回参数

名称 位置 类型 是否必须 描述
id body String 是 快照id
name body String 是 快照名称
size body int 是 快照容量
volume_id body String 是 云硬盘 id
status body String 是 快照状态
volumeName body String 是 云硬盘名字
metadata body Map 是 快照元数据
volumeName body String 是 云硬盘名字
created_at body String 是 快照创建时间

示例

假设给 id 为 03f009d1-aa26-4568-8e44-2f1ac7ac80f0 的云硬盘,创建一个名称为 kxsnapshot07281001 的快照。

请求示例

{
    "name":"kxsnapshot07281001",
    "volumeId":"03f009d1-aa26-4568-8e44-2f1ac7ac80f0"
}

响应示例

{
    "id": "8ac5ec3c-8c3c-4e48-9f5a-41cd64cd5eb1",
    "status": "creating",
    "force": null,
    "name": "kxsnapshot07281001",
    "display_name": null,
    "description": null,
    "display_description": null,
    "volume_id": "03f009d1-aa26-4568-8e44-2f1ac7ac80f0",
    "size": 20,
    "created_at": "2020-07-28T02:04:59Z",
    "metadata": {
        "productTag": "EBS"
    }
}

返回值

请参考通用请求返回值

错误码

请参考错误码

删除快照

删除快照

描述

  • 支持批量删除。
  • 删除快照不受云硬盘限制,即使快照有关联的云硬盘也可以删除。

URI

POST /ebs/v1/snapshots/action/delete

请求参数

名称 位置 类型 是否必须 描述
snapshotIds body String 是 快照 id 集合,多个快照用 "," 分隔

返回参数

  • 成功状态码为202,无响应体。

示例

假设删除两个快照,id 分别为 1cc70ca7-b47f-4ffc-92ec-a7b70bd85135、7191e920-5096-4418-bb9e-07380846358b。

请求示例

{
    "snapIds":"1cc70ca7-b47f-4ffc-92ec-a7b70bd85135,7191e920-5096-4418-bb9e-07380846358b"
}

响应示例

无

返回值

请参考通用请求返回值

错误码

请参考错误码

修改快照名称

修改快照的名称

描述

  • 修改快照名称,名称规则:长度为2-128个字符,不能以特殊字符及数字开头,只可包含特殊字符中的".","_"或"-"

URI

PUT /ebs/v1/snapshots/{snapshotId}

请求参数

名称 位置 类型 是否必须 描述
snapshotId path string 是 快照 id
name body string 是 快照名称

返回参数

名称 位置 类型 是否必须 描述
data body Snapshot 是 快照信息

示例

假设将 id 为aff78562-7879-4968-9b69-28da6a8d1627 的快照的名称改为 test,则 URI 为 /ebs/v1/snapshots/aff78562-7879-4968-9b69-28da6a8d1627。

请求示例

{
    "name":"test"
}

响应示例

{
    "id": "aff78562-7879-4968-9b69-28da6a8d1627",
    "name": "test",
    "kkUserId": "18a817ef193e4728b287c92356b3f55c",
    "accountId": null,
    "volumeId": "3618ee16-f955-40f4-a65d-ae068f3c5f8a",
    "bootable": null,
    "size": 40,
    "status": "available",
    "createdAt": "2020-07-17T10:28:34.000000",
    "updateAt": "2020-07-17T10:29:02.000000",
    "volumeName": null,
    "metadata": {
        "productTag": "ebs"
    }
}

返回值

请参考通用请求返回值

错误码

请参考错误码

查询快照统计信息

获取用户下快照的统计信息

描述

  • 获取用户下快照的使用容量和使用数量

URI

GET /ebs/v1/snapshots/statistics

请求参数

返回参数

名称 位置 类型 是否必须 描述
size body int 是 快照使用容量
count body int 是 快照使用数量

示例

假设获取某个用户下的快照统计信息,根据 公共请求头 来获取用户信息, 再获取快照统计信息。

请求示例

/ebs/v1/snapshots/statistics

响应示例

{
    "size": 200,
    "count": 10
}

返回值

请参考通用请求返回值

错误码

请参考错误码

获取单个云硬盘的快照配额信息

获取单个云硬盘的快照配额信息

描述

  • 获取单个云硬盘的快照配额信息

URI

GET /ebs/v1/volumes/{volumeId}/snapshots/quota

请求参数

名称 位置 类型 是否必须 描述
volumeId path String 是 云硬盘 id

返回参数

名称 位置 类型 是否必须 描述
used body int 是 云硬盘已用快照数量
remain body int 是 云硬盘剩余可用快照数量

示例

假设获取 id 为 9191b064-82d5-4290-843f-cf3b00222676 的云硬盘的快照配额信息。

请求示例

/ebs/v1/volumes/9191b064-82d5-4290-843f-cf3b00222676/snapshots/quota

响应示例

{
    "remain": 3,
    "used": 4
}

返回值

请参考通用请求返回值

错误码

请参考错误码

自动快照策略相关接口

创建快照策略

创建一个自动快照策略。

描述

  • 用户根据需要确定自动快照策略的名称、周期、时间点,创建自动快照策略。

  • 周期、时间点在接口中以Cron表达式的形式进行输入和保存。

URI

POST /ebs/v1/snapshots/strategies

请求参数

名称 位置 类型 是否必须 描述
strategyName body String 是 自动快照策略名称
strategyCycle body String 是 自动快照策略周期、时间点对的Cron表达式

返回参数

假设创建一个名称为“test”,Cron表达式为0 0 12 ?的自动快照策略。

示例

请求示例

/ebs/v1/snapshots/strategies
{
    "strategyName":"test",
    "strategyCycle":"0 0 12 * * ?"
}

响应示例

{
    "strategyId": "962c9cb8-e45c-45b9-9680-10e847810618"
}

返回值

请参考通用请求返回值

错误码

请参考错误码

删除快照策略

删除一个指定的自动快照策略。

描述

  • 用户通过自动快照策略ID,删除一个指定的自动快照策略。

URI

DELETE /ebs/v1/snapshots/strategies/{strategyId}

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动快照策略ID

返回参数

示例

假设删除ID为37b4edf2-92c3-4008-b97b-f5688f5e1a12的自动快照策略。

请求示例

/ebs/v1/strategies/37b4edf2-92c3-4008-b97b-f5688f5e1a12

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

更新快照策略

更新一个指定的自动快照策略。

描述

  • 用户更新指定快照策略的名称和Cron表达式信息。
  • 当名称和Cron表达式同时都指定时则同时更新;当只传名称或只传Cron表达式时则只更新名称或只更新Cron表达式。
  • 名称和Cron表达式不能同时传空

URI

PUT /ebs/v1/snapshots/strategies/{strategyId}

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动快照策略ID
strategyName body String 否 自动快照策略名称
strategyCycle body String 否 自动快照策略Cron表达式

注:strategyName和strategyCycle不能同时为空

返回参数

示例

假设更新ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动快照策略的名称为xwctest、Cron表达式为 59 18 ? *1。

请求示例

/ebs/v1/snapshots/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c
{
    "strategyName": "xwctest",
    "strategyCycle": "* 59 18 ? * *1"
}

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

快照策略列表

自动快照策略列表。

描述

  • 获取某个用户下的自动快照策略列表。
  • 支持分页。

URI

GET /ebs/v1/snapshots/strategies/{pageNo}/{pageSize}

请求参数

名称 位置 类型 是否必须 描述
pageNo path int 是 查询页数,为-1时查询全部自动快照策略
pageSize path int 是 每页显示条数,为-1时查询全部自动快照策略

返回参数

名称 位置 类型 是否必须 描述
pageNo body int 是 查询页数
pageSize body int 是 每页显示条数
totalCount body int 是 总条数
data body List<SnapStrategy> 是 自动快照策略列表

示例

假设查询某个用户下的自动快照策略列表且页数为2,每页显示3条。

请求示例

/ebs/v1/snapshots/strategies/2/3

响应示例

{
    "data": [
        {
            "strategyId": "3f70c12e-e31d-4fac-b5a1-9df2460866a4",
            "strategyName": "fangwen123",
            "strategyStatus": "1",
            "strategyCreateTime": "2019-05-18T15:48:17Z",
            "projectName": "gaoss",
            "strategyCycle": "* 48 15 ? * *",
            "associateNum": 0
        },
        {
            "strategyId": "407ed6d7-8631-4f57-b6a5-2f2f8a7f31ec",
            "strategyName": "gaoss2",
            "strategyStatus": "1",
            "strategyCreateTime": "2019-04-06T09:16:23Z",
            "projectName": "gaoss",
            "strategyCycle": "* 19 9 ? * 1",
            "associateNum": 0
        }
    ],
    "pageNo": 2,
    "pageSize": 3,
    "totalCount": 5
}

返回值

请参考通用请求返回值

错误码

请参考错误码

查看单个快照策略详情

查看单个自动快照策略的详情。

描述

  • 查看指定strategyId对应的自动快照策略的详情信息。
  • 详情包括ID、名称、状态、创建时间、周期时间点对应的Cron表达式、区域等信息。

URI

GET /ebs/v1/snapshots/strategies/{strategyId}

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动快照策略ID

返回参数

名称 位置 类型 是否必须 描述
strategyId body String 是 自动快照策略ID
strategyName body String 是 自动快照策略名称
strategyStatus body String 是 自动快照策略状态
strategyCreateTime body String 是 自动快照策略创建时间
strategyCycle body String 是 自动快照策略周期、时间点对应的Cron表达式
region body String 是 所在区域,如cn-north-3

示例

假设查询ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动快照策略的详情信息。

请求示例

/ebs/v1/snapshots/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c

响应示例

{
    "strategyId": "1b8b38f0-6ba5-44b2-b089-39cfe134b94c",
    "strategyName": "sed",
    "strategyStatus": "1",
    "strategyCreateTime": "2019-05-29T01:21:42Z",
    "strategyCycle": "* 24 10 ? * *",
    "region": "cn-north-3"
}

返回值

请参考通用请求返回值

错误码

请参考错误码

启用快照策略

启用一个指定的自动快照策略。

描述

  • 启用strategyId对应的自动快照策略。
  • 处于禁用状态下的自动快照策略才能执行启用。

URI

POST /ebs/v1/snapshots/strategies/{strategyId}/action/enable

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动快照策略ID

返回参数

示例

假设启用ID为962c9cb8-e45c-45b9-9680-10e847810618的自动快照策略,且其状态当前为禁用。

请求示例

/ebs/v1/snapshots/strategies/962c9cb8-e45c-45b9-9680-10e847810618/action/enable

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

禁用快照策略

禁用一个指定的自动快照策略。

描述

  • 禁用strategyId对应的自动快照策略。
  • 处于启用状态下的自动快照策略才能执行禁用。

URI

POST /ebs/v1/snapshots/strategies/{strategyId}/action/disable

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动快照策略ID

返回参数

示例

假设禁用ID为962c9cb8-e45c-45b9-9680-10e847810618的自动快照策略,且其状态当前为可用。

请求示例

/ebs/v1/snapshots/strategies/962c9cb8-e45c-45b9-9680-10e847810618/action/disable

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

修改快照策略关联的云硬盘

修改指定快照策略所关联的云硬盘集合。

描述

  • 用户根据需要确定strategyId所对应的自动快照策略关联的云硬盘ID集合,修改快照策略关联的云硬盘。
  • 一个快照策略可关联多个云硬盘,一个云硬盘只能关联一个快照策略。
  • 当某个云硬盘之前关联了其它的自动快照策略,在与当前自动快照策略进行关联时会首先解除与之前策略的关联。
  • 云硬盘自动快照策略调用该接口时(不传递append参数),用户每次执行修改策略所关联的云硬盘时,会首先解除在该用户下此策略关联的云硬盘,然后根据用户指定的云硬盘ID集合为此策略关联云硬盘ID集合对应的云硬盘。
  • 云服务器调用该接口时(传递参数append=true),用户每次执行修改策略所关联的云硬盘时,会根据用户指定的云硬盘ID集合为此策略关联云硬盘ID集合对应的云硬盘,已经关联的数据且不在本次关联集合内的不做删除操作。即此时只会为策略关联新增的云硬盘,不会删除策略过去关联过的云硬盘。

URI

POST /ebs/v1/snapshots/strategies/{strategyId}/associations

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动快照策略ID
volumeIds body String 是 云硬盘ID,多个ID时用英文逗号隔开
append body String 否 是否新增 true为新增,false为修改

返回参数

示例

假设为ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动快照策略关联2个云硬盘,云硬盘的ID分别为ab04a79e-fb1a-4063-b10a-cb59059c6c83和894535c1-ef48-42ee-8e86-d48c669135eb。

请求示例

/ebs/v1/snapshots/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c/associations
{
    "volumeIds":"ab04a79e-fb1a-4063-b10a-cb59059c6c83,894535c1-ef48-42ee-8e86-d48c669135eb"
}

响应示例



返回值

请参考通用请求返回值

错误码

请参考错误码

获取快照策略关联的云硬盘列表

获取指定自动快照策略下关联的云硬盘列表。

描述

  • 获取某个用户指定strategyId对应的自动快照策略下关联的云硬盘列表。
  • 包括云硬盘的ID、名称、状态、大小、挂载位置等信息。
  • 支持分页。

URI

GET /ebs/v1/snapshots/strategies/{strategyId}/associations/{pageNo}/{pageSize}

请求参数

名称 位置 类型 是否必须 描述
strategyId path String 是 自动快照策略ID
pageNo path int 是 查询页数,为-1时查询全部自动快照策略
pageSize path int 是 每页显示条数,为-1时查询全部自动快照策略

返回参数

名称 位置 类型 是否必须 描述
pageNo body int 是 查询页数
pageSize body int 是 每页显示条数
totalCount body int 是 总条数
data body List<VolumeInfo> 是 云硬盘信息的列表

示例

假设查询ID为1b8b38f0-6ba5-44b2-b089-39cfe134b94c的自动快照策略下关联的云硬盘列表。

请求示例

/ebs/v1/snapshots/strategies/1b8b38f0-6ba5-44b2-b089-39cfe134b94c/associations/-1/-1

响应示例

{
    "data": [
        {
            "id": "0a064faa-0e43-46da-a659-2016fe2a52aa",
            "name": "shang0531",
            "status": "available",
            "size": 20,
            "bootable": "false",
            "attachments": [{
               "serverName": "test1"
            }],
            "strategyId": "1b8b38f0-6ba5-44b2-b089-39cfe134b94c"
        }
    ],
    "pageNo": -1,
    "pageSize": -1,
    "totalCount": 1
}

返回值

请参考通用请求返回值

错误码

请参考错误码

Atom创建云硬盘

通过原子接口创建一块或多块按量付费或者预付费(包年包月)云硬盘。

描述

  • 用户根据需要选择云硬盘大小和类型,提交订单,购买云硬盘。

  • 创建的云硬盘分为包年包月和按需两种类型。

  • 单次最多能创建100块云硬盘。

  • 实例创建成功后将自动开机启动,实例状态变为“available未挂载”。

  • 预付费实例的购买会预先扣除本次实例购买所需金额,按小时后付费实例购买会预先冻结本次实例购买一小时内所需金额,在调用本接口前请确保账户余额充足。

  • 在启动实例时,实例属于“创建中”(creating)状态,在实例准备好时,会进入“运行中(available)”状态。

URI

POST /ebs/atom/v1/volumes

请求参数

名称 位置 类型 是否必须 描述
indiskName body String 是 云硬盘名称
indiskSize body int 是 云硬盘大小
backupId body String 否 备份ID,备份容量必须与云硬盘大小相同
indiskNum body int 是 云硬盘数目
productTypeCode body String 是 产品类型编码(普通型传SATA)
billType body String 是 计费方式(按需传hourlySettlement,包年包月传monthly)
duration body String 否 购买时长,折算成月,9个月则填写为9,3年为36,在计费方式为monthly时有效
durationUnit body String 否 购买时长单位,取值范围:M(月),填写时必须为M(区分大小写),不填默认值为M ,在计费方式为monthly时有效
isAutoRenew body String 否 是否自动从预充值账号扣款,true--自动续费/false--不自动续费,默认为自动续费,非必填
shared body String 否 是否是共享盘(可选值为"true"or"false")
availabilityZone body String 否 可用域

返回参数

名称 位置 类型 是否必须 描述
volumeIds body List<String> 是 创建成功的云硬盘ID

示例

创建云硬盘可以指定云硬盘名称,云硬盘大小,批量创建的数量,计费方式(包年包月或者按需),云硬盘的类型,使用接口创建云硬盘时 请求体是相同的,您只需根据请求中的参数说明,更换如下请求样例中的参数值即可。 假设创建2块40G按需的普通型(SATA)云硬盘,指定名称为test。

请求示例

 /ebs/atom/v1/volumes
 {
     "indiskName":"test",
     "indiskSize": 40,
     "indiskNum": 2,
     "billType": "hourlySettlement",
     "productTypeCode":"SATA",
     "availabilityZone":"nova",
     "shared": "true"
 }

响应示例

 {
     "1b8b38f0-6ba5-44b2-b089-39cfe134b94c"
 }

返回值

请参考通用请求返回值

错误码

请参考错误码

回收站相关接口

回收站盘列表

描述

  • 获取当前用户下的回收站盘列表

URI

GET /ebs/v1/recycle-bin-volumes/1/10

请求参数

名称 位置 类型 是否必须 描述
pageNo path int 是 查询页数
pageSize path int 是 每页显示条数

返回参数

名称 位置 类型 是否必须 描述
data body List<RecycleVolumeVO> 是 回收站盘列表信息

示例

请求示例

GET localhost:8080/ebs/v1/recycle-bin-volume/1/10

响应示例

{
    "data": [
        {
            "id": "fd12a984-d14c-41b4-8258-d1c3e31d003e",
            "name": "EBS-LYT",
            "type": "SATA",
            "bootable": false,
            "size": 20,
            "status": "recycle",
            "region": "cn-north-3",
            "createdAt": "2021-02-18 14:41:59",
            "destroyAt": "2021-02-18 14:41:59"
        }
    ]
}

返回值

请参考通用请求返回值

错误码

请参考错误码

回收站盘详情

描述

  • 获取回收站盘详情信息

URI

GET /ebs/v1/recycle-bin-volumes/{volumeId}

请求参数

名称 位置 类型 是否必须 描述
indiskName body String 是 云硬盘名称
indiskSize body int 是 云硬盘大小
backupId body String 否 备份ID,备份容量必须与云硬盘大小相同
indiskNum body int 是 云硬盘数目
productTypeCode body String 是 产品类型编码(普通型传SATA)
billType body String 是 计费方式(按需传hourlySettlement,包年包月传monthly)
duration body String 否 购买时长,折算成月,9个月则填写为9,3年为36,在计费方式为monthly时有效
durationUnit body String 否 购买时长单位,取值范围:M(月),填写时必须为M(区分大小写),不填默认值为M ,在计费方式为monthly时有效
isAutoRenew body String 否 是否自动从预充值账号扣款,true--自动续费/false--不自动续费,默认为自动续费,非必填
shared body String 否 是否是共享盘(可选值为"true"or"false")
availabilityZone body String 否 可用域

返回参数

名称 位置 类型 是否必须 描述
volumeIds body List<String> 是 创建成功的云硬盘ID

示例

创建云硬盘可以指定云硬盘名称,云硬盘大小,批量创建的数量,计费方式(包年包月或者按需),云硬盘的类型,使用接口创建云硬盘时 请求体是相同的,您只需根据请求中的参数说明,更换如下请求样例中的参数值即可。 假设创建2块40G按需的普通型(SATA)云硬盘,指定名称为test。

请求示例

 /ebs/atom/v1/volumes
 {
     "indiskName":"test",
     "indiskSize": 40,
     "indiskNum": 2,
     "billType": "hourlySettlement",
     "productTypeCode":"SATA",
     "availabilityZone":"nova",
     "shared": "true"
 }

响应示例

 {
     "1b8b38f0-6ba5-44b2-b089-39cfe134b94c"
 }
名称 位置 类型 是否必须 描述
volumeId path String 是 云硬盘ID

返回参数

名称 位置 类型 是否必须 描述
id body String 是 id
name body String 是 名称
type body String 是 类型
bootable body String 是 是否为系统盘
size body int 是 容量大小
status body String 是 状态
region body String 是 所属区域
createdAt body String 是 创建时间
destroyAt body String 是 销毁时间

示例

请求示例

GET localhost:8080/ebs/v1/recycle-bin-volume/fd12a984-d14c-41b4-8258-d1c3e31d003e

响应示例

{
    "id": "fd12a984-d14c-41b4-8258-d1c3e31d003e",
    "name": "EBS-LYT",
    "type": "SATA",
    "bootable": false,
    "size": 20,
    "status": "recycled",
    "region": "cn-north-3",
    "createdAt": "2021-02-18T06:41:59Z",
    "destroyAt": "2021-02-21T06:50:59Z"
}

返回值

请参考通用请求返回值

错误码

请参考错误码

获取回收站配额

描述

  • 获取回收站配额

URI

GET /ebs/v1/recycle-bin-volumes/quota

请求参数

返回参数

名称 位置 类型 是否必须 描述
volumeNum body int 是 回收站盘数量配额 (最多支持20个)
spareVolumeNum body int 是 剩余回收站盘数量配额
capacity body int 是 回收站盘容量配额(最多支持2T)
spareCapacity body int 是 剩余回收站盘容量配额
keepTime body int 是 回收站保存时间(保存3天)

示例

请求示例

GET localhost:8080/ebs/v1/recycle-bin-volume/quota

响应示例

{
    "volumeNum": 20,
    "spareVolumeNum": 19,
    "capacity": 2000,
    "spareCapacity": 1980,
    "keepTime": 3
}

返回值

请参考通用请求返回值

错误码

请参考错误码

销毁回收站盘

描述

  • 彻底销毁回收站盘

URI

DELETE /ebs/v1/recycle-bin-volumes/{volumeId}

请求参数

名称 位置 类型 是否必须 描述
volumeId path String 是 云硬盘ID

返回参数

示例

销毁ID为fd12a984-d14c-41b4-8258-d1c3e31d003e的回收站盘。

请求示例

DELETE localhost:8080/ebs/v1/recycle-bin-volumes/fd12a984-d14c-41b4-8258-d1c3e31d003e

响应示例



恢复回收站盘

描述

  • 恢复回收站盘

URI

POST /ebs/v1/recycle-bin-volumes/{volumeId}/revert

请求参数

名称 位置 类型 是否必须 描述
volumeId path String 是 云硬盘ID

返回参数

示例

恢复ID为fd12a984-d14c-41b4-8258-d1c3e31d003e的回收站盘。

请求示例

POST localhost:8080/ebs/v1/recycle-bin-volumes/fd12a984-d14c-41b4-8258-d1c3e31d003e/revert

响应示例



加入回收站

描述

  • 将云硬盘加入回收站,可以一次性放入一块或者多块云硬盘

URI

POST /ebs/v1/recycle-bin-volumes

请求参数

名称 位置 类型 是否必须 描述
deleteInfos body List<DeleteVolumeInfo> 是 云硬盘详细信息

返回参数

示例

将云硬盘EBS-20210422170814放入回收站。

请求示例

POST localhost:8080/ebs/v1/recycle-bin-volumes
 [{
     "id": "9fe1496e-509e-429a-9b97-3bd5325aadd1",
     "name": "EBS-20210421104901-0002",
     "size": "20",
     "availableZone": "cn-north-3a",
     "volumeType": "SATA",
     "metaData": {
         "productTag": "EBS"
     },
     "chargeType": "hourlySettlement",
     "bootable": "false",
     "createdTime": "2021-04-22 11:12:22"
 }]

响应示例