/* * 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. * * 配额 * 与配额相关的接口 * * 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 = 'autotaskpolicy' Service._services[serviceId] = true /** * autotaskpolicy service. * @version 1.0.1 */ class AUTOTASKPOLICY extends Service { constructor (options = {}) { options._defaultEndpoint = {} options._defaultEndpoint.protocol = options._defaultEndpoint.protocol || 'https' options._defaultEndpoint.host = options._defaultEndpoint.host || 'autotaskpolicy.jdcloud-api.com' options.basePath = '/v1' // 默认要设为空"" super(serviceId, options) } /** * 创建策略,不同策略类型有不同的规则,具体如下。 - AutoImage: 自动创建镜像策略 - fireCondition - 仅支持"interval",执行周期仅支持"小时/天/周",如: "interval 7d" - 两次执行时间间隔需要大于12小时 - fireTime - 触发时间,首次创建时距离当前时间必须在30分钟以后至1年以内。 - 若策略曾经执行过,再次修改该字段时必须满足距离上一次执行时间超过12小时 - execResource - 哪些云主机需要制作镜像,可指定具体云主机ID列表,每个策略最多绑定100个。 - 仅支持云盘系统盘的虚机 - execConfig - 配置规则例子: - [{"key":"includeDeviceName","value":"vdb,vdc"},{"key":"imageLiveDays","10"}] - includeDeviceName说明:云主机中的哪些云盘需要制作镜像,可指定具体盘符列表,或指定为"all"。云主机中的vda系统盘不可改变,一定要参与制作镜像。 - imageLiveDays说明:镜像保留时间,以天为单位,范围1-36500。不指定则永久有效。 * @param {Object} opts - parameters * @param {policySpec} opts.policySpec - 策略配置 * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result * @param string policyId 策略ID */ createPolicy (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 createPolicy" ) } opts = opts || {} if (opts.policySpec === undefined || opts.policySpec === null) { throw new Error( "Missing the required parameter 'opts.policySpec' when calling createPolicy" ) } let postBody = {} if (opts.policySpec !== undefined && opts.policySpec !== null) { postBody['policySpec'] = opts.policySpec } let queryParams = {} let pathParams = { regionId: regionId } let headerParams = { 'User-Agent': 'JdcloudSdkNode/1.0.0 autotaskpolicy/1.0.1' } 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 createPolicy 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}/policy', '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.policyId - 策略ID * @param {modifyPolicySpec} opts.policySpec - 策略配置 * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result */ modifyPolicy (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 modifyPolicy" ) } opts = opts || {} if (opts.policyId === undefined || opts.policyId === null) { throw new Error( "Missing the required parameter 'opts.policyId' when calling modifyPolicy" ) } if (opts.policySpec === undefined || opts.policySpec === null) { throw new Error( "Missing the required parameter 'opts.policySpec' when calling modifyPolicy" ) } let postBody = {} if (opts.policySpec !== undefined && opts.policySpec !== null) { postBody['policySpec'] = opts.policySpec } let queryParams = {} let pathParams = { regionId: regionId, policyId: opts.policyId } let headerParams = { 'User-Agent': 'JdcloudSdkNode/1.0.0 autotaskpolicy/1.0.1' } 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 modifyPolicy 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}/policy/{policyId}:modify', '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.policyId - 策略ID * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result * @param policy policy */ describePolicy (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 describePolicy" ) } opts = opts || {} if (opts.policyId === undefined || opts.policyId === null) { throw new Error( "Missing the required parameter 'opts.policyId' when calling describePolicy" ) } let postBody = null let queryParams = {} let pathParams = { regionId: regionId, policyId: opts.policyId } let headerParams = { 'User-Agent': 'JdcloudSdkNode/1.0.0 autotaskpolicy/1.0.1' } 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 describePolicy 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}/policy/{policyId}', '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 {string} opts.policyId - 策略ID * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result */ deletePolicy (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 deletePolicy" ) } opts = opts || {} if (opts.policyId === undefined || opts.policyId === null) { throw new Error( "Missing the required parameter 'opts.policyId' when calling deletePolicy" ) } let postBody = null let queryParams = {} let pathParams = { regionId: regionId, policyId: opts.policyId } let headerParams = { 'User-Agent': 'JdcloudSdkNode/1.0.0 autotaskpolicy/1.0.1' } 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 deletePolicy 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}/policy/{policyId}', '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 {integer} [opts.pageNumber] - 页码;默认为1 optional * @param {integer} [opts.pageSize] - 分页大小,默认为20,最大100。 optional * @param {filter} [opts.filters] - policyId - 策略ID,精确匹配,支持多个 policyState - 策略状态,精确匹配,支持多个 policyType - 策略类型,精确匹配,支持多个 policyName - 策略名称,模糊匹配,支持一个 resourceId - 已关联的资源ID,精确匹配,支持多个 optional * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result * @param policy policies * @param number totalCount */ describePolicies (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 describePolicies" ) } 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 autotaskpolicy/1.0.1' } 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 describePolicies 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}/policies', '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 {string} opts.policyId - 策略ID * @param {string} opts.targetRegion - 目标地域 * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result * @param string policyId 策略ID */ copyPolicy (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 copyPolicy" ) } opts = opts || {} if (opts.policyId === undefined || opts.policyId === null) { throw new Error( "Missing the required parameter 'opts.policyId' when calling copyPolicy" ) } if (opts.targetRegion === undefined || opts.targetRegion === null) { throw new Error( "Missing the required parameter 'opts.targetRegion' when calling copyPolicy" ) } let postBody = {} if (opts.targetRegion !== undefined && opts.targetRegion !== null) { postBody['targetRegion'] = opts.targetRegion } let queryParams = {} let pathParams = { regionId: regionId, policyId: opts.policyId } let headerParams = { 'User-Agent': 'JdcloudSdkNode/1.0.0 autotaskpolicy/1.0.1' } 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 copyPolicy 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}/policy/{policyId}:copy', '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.policyId - 策略ID * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result */ enablePolicy (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 enablePolicy" ) } opts = opts || {} if (opts.policyId === undefined || opts.policyId === null) { throw new Error( "Missing the required parameter 'opts.policyId' when calling enablePolicy" ) } let postBody = {} let queryParams = {} let pathParams = { regionId: regionId, policyId: opts.policyId } let headerParams = { 'User-Agent': 'JdcloudSdkNode/1.0.0 autotaskpolicy/1.0.1' } 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 enablePolicy 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}/policy/{policyId}:enable', '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.policyId - 策略ID * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result */ disablePolicy (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 disablePolicy" ) } opts = opts || {} if (opts.policyId === undefined || opts.policyId === null) { throw new Error( "Missing the required parameter 'opts.policyId' when calling disablePolicy" ) } let postBody = {} let queryParams = {} let pathParams = { regionId: regionId, policyId: opts.policyId } let headerParams = { 'User-Agent': 'JdcloudSdkNode/1.0.0 autotaskpolicy/1.0.1' } 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 disablePolicy 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}/policy/{policyId}:disable', '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.policyId - 策略ID * @param {resource} opts.execResource - 关联的资源 * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result */ associateExecResource (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 associateExecResource" ) } opts = opts || {} if (opts.policyId === undefined || opts.policyId === null) { throw new Error( "Missing the required parameter 'opts.policyId' when calling associateExecResource" ) } if (opts.execResource === undefined || opts.execResource === null) { throw new Error( "Missing the required parameter 'opts.execResource' when calling associateExecResource" ) } let postBody = {} if (opts.execResource !== undefined && opts.execResource !== null) { postBody['execResource'] = opts.execResource } let queryParams = {} let pathParams = { regionId: regionId, policyId: opts.policyId } let headerParams = { 'User-Agent': 'JdcloudSdkNode/1.0.0 autotaskpolicy/1.0.1' } 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 associateExecResource 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}/policy/{policyId}:associateExecResource', '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.policyId - 策略ID * @param {resource} opts.execResource - 取消关联的资源 * @param {string} regionId - ID of the region * @param {string} callback - callback @return {Object} result */ disassociateExecResource (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 disassociateExecResource" ) } opts = opts || {} if (opts.policyId === undefined || opts.policyId === null) { throw new Error( "Missing the required parameter 'opts.policyId' when calling disassociateExecResource" ) } if (opts.execResource === undefined || opts.execResource === null) { throw new Error( "Missing the required parameter 'opts.execResource' when calling disassociateExecResource" ) } let postBody = {} if (opts.execResource !== undefined && opts.execResource !== null) { postBody['execResource'] = opts.execResource } let queryParams = {} let pathParams = { regionId: regionId, policyId: opts.policyId } let headerParams = { 'User-Agent': 'JdcloudSdkNode/1.0.0 autotaskpolicy/1.0.1' } 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 disassociateExecResource 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}/policy/{policyId}:disassociateExecResource', '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) } ) } } module.exports = AUTOTASKPOLICY