Files
certd/packages/libs/lib-jdcloud/src/repo/dh/v1/dh.js
T
2025-04-02 23:13:55 +08:00

1269 lines
38 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* Copyright 2018 JDCLOUD.COM
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http:#www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Quota
* 与配额相关的接口
*
* OpenAPI spec version: v1
* Contact:
*
* NOTE: This class is auto generated by the jdcloud code generator program.
*/
require('../../../lib/node_loader')
var JDCloud = require('../../../lib/core')
var Service = JDCloud.Service
var serviceId = 'dh'
Service._services[serviceId] = true
/**
* dh service.
* @version 1.1.3
*/
class DH extends Service {
constructor (options = {}) {
options._defaultEndpoint = {}
options._defaultEndpoint.protocol =
options._defaultEndpoint.protocol || 'https'
options._defaultEndpoint.host =
options._defaultEndpoint.host || 'dh.jdcloud-api.com'
options.basePath = '/v1' // 默认要设为空""
super(serviceId, options)
}
/**
* 查询专有宿主机列表。<br>
此接口支持分页查询,默认每页20条。
* @param {Object} opts - parameters
* @param {integer} [opts.pageNumber] - 页码;默认为1 optional
* @param {integer} [opts.pageSize] - 分页大小;默认为20;取值范围[10, 100] optional
* @param {filter} [opts.filters] - dedicatedHostId - 专有宿主机ID,精确匹配,支持多个
az - 可用区,精确匹配,支持多个
status - 专有宿主机状态,精确匹配,支持多个,<a href="http://docs.jdcloud.com/dedicated-hosts/api/dh_status">参考专有宿主机状态</a>
name - 专有宿主机名称,模糊匹配,支持单个
dedicatedPoolId - 专有宿主机池ID,精确匹配,支持多个
dedicatedHostType - 专有宿主机机型,精确匹配,支持多个
optional
* @param {tagFilter} [opts.tags] - Tag筛选条件。 optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param dedicatedHost dedicatedHosts
* @param number totalCount
*/
describeDedicatedHosts (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling describeDedicatedHosts"
)
}
opts = opts || {}
let postBody = null
let queryParams = {}
if (opts.pageNumber !== undefined && opts.pageNumber !== null) {
queryParams['pageNumber'] = opts.pageNumber
}
if (opts.pageSize !== undefined && opts.pageSize !== null) {
queryParams['pageSize'] = opts.pageSize
}
Object.assign(queryParams, super.buildFilterParam(opts.filters, 'filters'))
Object.assign(queryParams, super.buildTagFilterParam(opts.tags, 'tags'))
let pathParams = {
regionId: regionId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call describeDedicatedHosts with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dedicatedHosts',
'GET',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 创建一台或多台指定机型的专有宿主机。<br>
创建专有宿主机必须指定专有宿主机池。
* @param {Object} opts - parameters
* @param {dedicatedHostSpec} opts.dedicatedHostSpec - 描述专有宿主机配置
* @param {string} [opts.deployPolicy] - 是否支持AZ内专有宿主机强制均衡,默认为preferred--非强制,取值[preferred--非强制,required--强制]
optional
* @param {integer} [opts.maxCount] - 购买云主机的数量;取值范围:[1,100],默认为1。
optional
* @param {string} [opts.clientToken] - 用于保证请求的幂等性。由客户端生成,长度不能超过64个字符。
optional
* @param {boolean} [opts.enableCpuTopology] - 是否开启cpu拓扑,true:开启,false:关闭,只有宿主机是非超卖模式,且没有资源的时候才能开启;开启后,该宿主机上的虚机可以配置cpu拓扑和NUMA映射等。
optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param string dedicatedHostIds
*/
allocDedicatedHosts (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling allocDedicatedHosts"
)
}
opts = opts || {}
if (
opts.dedicatedHostSpec === undefined ||
opts.dedicatedHostSpec === null
) {
throw new Error(
"Missing the required parameter 'opts.dedicatedHostSpec' when calling allocDedicatedHosts"
)
}
let postBody = {}
if (
opts.dedicatedHostSpec !== undefined &&
opts.dedicatedHostSpec !== null
) {
postBody['dedicatedHostSpec'] = opts.dedicatedHostSpec
}
if (opts.deployPolicy !== undefined && opts.deployPolicy !== null) {
postBody['deployPolicy'] = opts.deployPolicy
}
if (opts.maxCount !== undefined && opts.maxCount !== null) {
postBody['maxCount'] = opts.maxCount
}
if (opts.clientToken !== undefined && opts.clientToken !== null) {
postBody['clientToken'] = opts.clientToken
}
if (
opts.enableCpuTopology !== undefined &&
opts.enableCpuTopology !== null
) {
postBody['enableCpuTopology'] = opts.enableCpuTopology
}
let queryParams = {}
let pathParams = {
regionId: regionId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call allocDedicatedHosts with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dedicatedHosts',
'POST',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 释放按配置计费、或包年包月已到期的单个专有宿主机。不能释放没有计费信息的专有宿主机。<br>
专有宿主机状态必须为可用<b>available</b>、不可用<b>unavailable</b>、维护中<b>under-assessment</b>,同时专有宿主机上必须没有云主机实例才可删除。<br>
[MFA enabled]
* @param {Object} opts - parameters
* @param {string} opts.dedicatedHostId - 专有宿主机ID
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
*/
releaseDedicatedHost (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling releaseDedicatedHost"
)
}
opts = opts || {}
if (opts.dedicatedHostId === undefined || opts.dedicatedHostId === null) {
throw new Error(
"Missing the required parameter 'opts.dedicatedHostId' when calling releaseDedicatedHost"
)
}
let postBody = null
let queryParams = {}
let pathParams = {
regionId: regionId,
dedicatedHostId: opts.dedicatedHostId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call releaseDedicatedHost with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dedicatedHost/{dedicatedHostId}',
'DELETE',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 修改专有宿主机部分属性,包括名称、描述。
* @param {Object} opts - parameters
* @param {string} opts.dedicatedHostId - 专有宿主机ID
* @param {string} [opts.name] - 名称,<a href="http://docs.jdcloud.com/virtual-machines/api/general_parameters">参考公共参数规范</a>。 optional
* @param {string} [opts.description] - 描述,<a href="http://docs.jdcloud.com/virtual-machines/api/general_parameters">参考公共参数规范</a>。 optional
* @param {boolean} [opts.enableCpuTopology] - 是否开启cpu拓扑,true:开启,false:关闭,只有宿主机是非超卖模式,且没有资源的时候才能开启;开启后,该宿主机上的虚机可以配置cpu拓扑和NUMA映射等。
optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
*/
modifyDedicatedHostAttribute (
opts,
regionId = this.config.regionId,
callback
) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling modifyDedicatedHostAttribute"
)
}
opts = opts || {}
if (opts.dedicatedHostId === undefined || opts.dedicatedHostId === null) {
throw new Error(
"Missing the required parameter 'opts.dedicatedHostId' when calling modifyDedicatedHostAttribute"
)
}
let postBody = {}
if (opts.name !== undefined && opts.name !== null) {
postBody['name'] = opts.name
}
if (opts.description !== undefined && opts.description !== null) {
postBody['description'] = opts.description
}
if (
opts.enableCpuTopology !== undefined &&
opts.enableCpuTopology !== null
) {
postBody['enableCpuTopology'] = opts.enableCpuTopology
}
let queryParams = {}
let pathParams = {
regionId: regionId,
dedicatedHostId: opts.dedicatedHostId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call modifyDedicatedHostAttribute with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dedicatedHost/{dedicatedHostId}:modifyAttribute',
'POST',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 查询专有宿主机机型。
* @param {Object} opts - parameters
* @param {filter} [opts.filters] - dedicatedHostType - 专有宿主机机型,精确匹配,支持多个
az - 可用区,精确匹配,支持多个
optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param hostType dedicatedHostTypes
* @param number totalCount
*/
describeDedicatedHostType (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling describeDedicatedHostType"
)
}
opts = opts || {}
let postBody = null
let queryParams = {}
Object.assign(queryParams, super.buildFilterParam(opts.filters, 'filters'))
let pathParams = {
regionId: regionId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call describeDedicatedHostType with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dedicatedHostType',
'GET',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 查询专有宿主机池列表
* @param {Object} opts - parameters
* @param {integer} [opts.pageNumber] - 页码;默认为1 optional
* @param {integer} [opts.pageSize] - 分页大小;默认为20;取值范围[10, 100] optional
* @param {filter} [opts.filters] - dedicatedPoolId - 专有宿主机池ID,精确匹配,支持多个
name - 专有宿主机名称,模糊匹配,支持单个
dedicatedHostType - 专有宿主机机型,精确匹配,支持多个
optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param dedicatedPool dedicatedPools
* @param number totalCount
*/
describeDedicatedPools (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling describeDedicatedPools"
)
}
opts = opts || {}
let postBody = null
let queryParams = {}
if (opts.pageNumber !== undefined && opts.pageNumber !== null) {
queryParams['pageNumber'] = opts.pageNumber
}
if (opts.pageSize !== undefined && opts.pageSize !== null) {
queryParams['pageSize'] = opts.pageSize
}
Object.assign(queryParams, super.buildFilterParam(opts.filters, 'filters'))
let pathParams = {
regionId: regionId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call describeDedicatedPools with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dedicatedPools',
'GET',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 申请专有宿主机池。<br>
专有宿主机池为专有宿主机的集合,为用户提供独享且跨机架的宿主机资源池,基于资源独享及故障隔离实现业务安全、高可用部署。<br>
申请宿主机池需要指定机器类型,目前每一个专有宿主机池只能指定一种机器类型。可供选用的机器类型有通用性,内存性,高频计算型及GPU型。<br>
deployPolicy表示是否强制池中专有宿主机在每个AZ内数量均衡。可选值为prefered和required,默认为prefered。
* @param {Object} opts - parameters
* @param {string} [opts.dedicatedHostType] - 支持的专有宿主机机型,每个专有宿主机池只能且必须指定一个专有宿主机机型
optional
* @param {string} [opts.name] - 专有宿主机池名称
optional
* @param {array} [opts.az] - 指定专有宿主机池支持的可用区,可指定多个。
optional
* @param {string} [opts.description] - 专有宿主机池的描述信息。
optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param string dedicatedPoolId
*/
allocDedicatedPool (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling allocDedicatedPool"
)
}
opts = opts || {}
let postBody = {}
if (
opts.dedicatedHostType !== undefined &&
opts.dedicatedHostType !== null
) {
postBody['dedicatedHostType'] = opts.dedicatedHostType
}
if (opts.name !== undefined && opts.name !== null) {
postBody['name'] = opts.name
}
if (opts.az !== undefined && opts.az !== null) {
postBody['az'] = opts.az
}
if (opts.description !== undefined && opts.description !== null) {
postBody['description'] = opts.description
}
let queryParams = {}
let pathParams = {
regionId: regionId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call allocDedicatedPool with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dedicatedPools',
'POST',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 修改专有宿主机池属性,包括名称、描述和可用区。
* @param {Object} opts - parameters
* @param {string} opts.dedicatedPoolId - 专有宿主机ID
* @param {string} [opts.name] - 名称,<a href="http://docs.jdcloud.com/virtual-machines/api/general_parameters">参考公共参数规范</a>。 optional
* @param {string} [opts.description] - 描述,<a href="http://docs.jdcloud.com/virtual-machines/api/general_parameters">参考公共参数规范</a>。 optional
* @param {array} [opts.az] - 指定宿主机池申请专有宿主机时默认继承的可用区。<br>
修改可用区时旧可用区必须是新可用区的子集,即可用区只能添加,不能减少。
optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
*/
modifyDedicatedPoolAttribute (
opts,
regionId = this.config.regionId,
callback
) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling modifyDedicatedPoolAttribute"
)
}
opts = opts || {}
if (opts.dedicatedPoolId === undefined || opts.dedicatedPoolId === null) {
throw new Error(
"Missing the required parameter 'opts.dedicatedPoolId' when calling modifyDedicatedPoolAttribute"
)
}
let postBody = {}
if (opts.name !== undefined && opts.name !== null) {
postBody['name'] = opts.name
}
if (opts.description !== undefined && opts.description !== null) {
postBody['description'] = opts.description
}
if (opts.az !== undefined && opts.az !== null) {
postBody['az'] = opts.az
}
let queryParams = {}
let pathParams = {
regionId: regionId,
dedicatedPoolId: opts.dedicatedPoolId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call modifyDedicatedPoolAttribute with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dedicatedPool/{dedicatedPoolId}:modifyAttribute',
'POST',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 释放单个专有宿主机池。<br>
专有宿主机池中必须没有专有宿主机时才可释放。
[MFA enabled]
* @param {Object} opts - parameters
* @param {string} opts.dedicatedPoolId - 专有宿主机ID
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
*/
releaseDedicatedPool (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling releaseDedicatedPool"
)
}
opts = opts || {}
if (opts.dedicatedPoolId === undefined || opts.dedicatedPoolId === null) {
throw new Error(
"Missing the required parameter 'opts.dedicatedPoolId' when calling releaseDedicatedPool"
)
}
let postBody = null
let queryParams = {}
let pathParams = {
regionId: regionId,
dedicatedPoolId: opts.dedicatedPoolId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call releaseDedicatedPool with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dedicatedPool/{dedicatedPoolId}',
'DELETE',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
/**
* 查询配额,支持的类型:专有宿主机、专有宿主机池。
* @param {Object} opts - parameters
* @param {filter} [opts.filters] - resourceTypes - 资源类型,支持多个[dedicatedHostdedicatedPool]
optional
* @param {string} regionId - ID of the region
* @param {string} callback - callback
@return {Object} result
* @param quota quotas
*/
describeQuotas (opts, regionId = this.config.regionId, callback) {
if (typeof regionId === 'function') {
callback = regionId
regionId = this.config.regionId
}
if (regionId === undefined || regionId === null) {
throw new Error(
"Missing the required parameter 'regionId' when calling describeQuotas"
)
}
opts = opts || {}
let postBody = null
let queryParams = {}
Object.assign(queryParams, super.buildFilterParam(opts.filters, 'filters'))
let pathParams = {
regionId: regionId
}
let headerParams = {
'User-Agent': 'JdcloudSdkNode/1.0.0 dh/1.1.3'
}
let contentTypes = ['application/json']
let accepts = ['application/json']
// 扩展自定义头
if (opts['x-extra-header']) {
for (let extraHeader in opts['x-extra-header']) {
headerParams[extraHeader] = opts['x-extra-header'][extraHeader]
}
if (Array.isArray(opts['x-extra-header']['content-type'])) {
contentTypes = opts['x-extra-header']['content-type']
} else if (typeof opts['x-extra-header']['content-type'] === 'string') {
contentTypes = opts['x-extra-header']['content-type'].split(',')
}
if (Array.isArray(opts['x-extra-header']['accept'])) {
accepts = opts['x-extra-header']['accept']
} else if (typeof opts['x-extra-header']['accept'] === 'string') {
accepts = opts['x-extra-header']['accept'].split(',')
}
}
let formParams = {}
let returnType = null
this.config.logger(
`call describeQuotas with params:\npathParams:${JSON.stringify(
pathParams
)},\nqueryParams:${JSON.stringify(
queryParams
)}, \nheaderParams:${JSON.stringify(
headerParams
)}, \nformParams:${JSON.stringify(
formParams
)}, \npostBody:${JSON.stringify(postBody)}`,
'DEBUG'
)
let request = super.makeRequest(
'/regions/{regionId}/dhQuotas',
'GET',
pathParams,
queryParams,
headerParams,
formParams,
postBody,
contentTypes,
accepts,
returnType,
callback
)
return request.then(
function (result) {
if (callback && typeof callback === 'function') {
return callback(null, result)
}
return result
},
function (error) {
if (callback && typeof callback === 'function') {
return callback(error)
}
return Promise.reject(error)
}
)
}
}
module.exports = DH