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

1228 lines
34 KiB
JavaScript

/*
* 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