云硬盘接口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个字符,不能以特殊字符及数字开头,只可包含特殊字符中的".","_"或"-"
  • 云硬盘处在中间状态时创建快照不可用,包括:创建中,挂载中,卸载中,扩容中。
  • 每块云硬盘最多支持创建7个快照。

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"
 }]

响应示例