资源池产品可售查询
接口功能介绍
查询用户可用的某个产品是否可售。产品售罄不可售,产品未售罄看用户当前配额余量是否满足。
接口约束
无
请求定义
URI
POST /v4/region/check-demand
路径参数
无
请求Query参数
无
请求Json Body参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
regionID | 是 | String | 资源池ID | ||
azName | 否 | String | 可用区名称(可选,资源池4.0查云主机规格区分AZ) | ||
demand | 是 | Object | 产品规格下的需求量 | 产品需求量 |
产品需求量
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
product | 是 | String | 产品代码, ecs(资源池4.0区分AZ)/eip(不区分AZ)/ebs(不区分AZ) | |
spec | 是 | Object | 规格信息 | |
amount | 否 | Integer | 需求量(可选,不传默认为1) |
云主机规格参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
flavorID | 否 | String | 云主机规格ID (获取规格列表/v4/common/get-ecs-flavors,取flavorID) | |
specName | 否 | String | 云主机规格ID (获取规格列表/v4/common/get-ecs-flavors,取specName) |
磁盘规格参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
type | 是 | String | 磁盘类型 SATA/SAS/SSD | |
size | 是 | Integer | 磁盘大小 |
请求header参数
无
响应定义
响应参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
statusCode | 是 | Integer | 返回状态码('800为成功,900为失败) ,默认值:800 | 800 |
errorCode | 是 | String | 错误码,为product.module.code三段式码。为空表示成功。 | |
message | 是 | String | 失败时的错误描述,一般为英文描述 | |
description | 是 | String | 失败时的错误描述,一般为中文描述 | |
returnObj | 是 | Object | 返回参数 |
returnObj
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
satisfied | 是 | Boolean | 是否可售 | |
sellout | 是 | Boolean | 是否售罄 | |
hasQuota | 是 | Boolean | 用户配额余量是否满足 | |
quotaInfo | 是 | Object | 产品用户配额信息 | |
usedInfo | 是 | Object | 用户已用量信息 |
请求示例
请求头header
无
请求体body
云主机
{
"regionID": "",
"azName": "az1",
"demand": {
"product": "ecs",
"spec": {"flavorID": "s7.small.1"},
"amount": 20
}
}
磁盘
{
"regionID": "",
"azName": "",
"demand": {
"product": "ebs",
"spec": {"type": "SATA", "size": 30}
}
}
IP
{
"regionID": "",
"azName": "",
"demand": {
"product": "eip",
"amount": 2
}
}
响应示例
成功响应示例
云主机
{
"statusCode": 800,
"message": "success",
"returnObj": {
"satisfied": true,
"sellout": false,
"hasQuota": true,
"quotaInfo": {
"ecsCountQuota": 100,
"cpuVcoreQutoa": 10000,
"memQuota": 100000
},
"usedInfo": {
"ecsCount": 10,
"cpuVcoreCount": 2000,
"memUsed": 40000
}
}
}
硬盘
{
"returnObj": {
"satisfied": true,
"sellout": false,
"hasQuota": true,
"usedInfo": {
"ebsSize": 10710,
"ebsCount": 34
},
"quotaInfo": {
"ebsSizeQuota": 32768,
"ebsCountQuota": 200
},
},
"errorCode": "",
"message": "",
"description": "",
"statusCode": 800
}
IP
{
"returnObj": {
"hasQuota": true,
"usedInfo": {
"ipCount": 60
},
"satisfied": true,
"quotaInfo": {
"ipCountQuota": 150
},
"sellout": false
},
"errorCode": "",
"message": "",
"description": "",
"statusCode": 800
}
失败响应示例
配额不足:
{
"description": "CPU用户配额500,已使用225,此次需求900",
"returnObj": {
"hasQuota": false,
"quotaInfo": {
"ecsCountQuota": 10000,
"cpuVcoreQutoa": 500,
"memQuota": 409600
},
"usedInfo": {
"ecsCount": 106,
"memUsed": 631.0,
"cpuVcoreCount": 225
}
},
"errorCode": "region.demandCheck.userQuotaLimited",
"details": "",
"message": "User quota not met",
"statusCode": 900
}
产品售罄:
{
"description": "规格已售罄",
"returnObj": {
"satisfied": false,
"sellout": true
"hasQuota": true,
"usedInfo": {
"ipCount": 12
},
"quotaInfo": {
"ipCountQuota": 50
},
},
"errorCode": "region.flavorSaleCheck.saleOut",
"details": "",
"message": "flavor sale out",
"statusCode": 900
}
状态码
状态码 | 描述 |
---|---|
200 | 表示请求成功。 |
错误码
errorCode | 含义 |
---|---|
Region.RegionInfo.AccessFailed | region资源池错误 |
Region.Parameter.Invaliderror | 请求参数错误 |
Region.FlavorSaleCheck.SaleOut | 已售罄 |
Region.DemandCheck.UserQuotaLimited | 用户配额不满足 |