/* * 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 - 资源类型,支持多个[dedicatedHost,dedicatedPool] 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