UNPKG

n8n-nodes-tenable-community

Version:

n8n node for the Tenable One platform

165 lines (164 loc) 7.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Mssp = void 0; const GenericFunctions_1 = require("./GenericFunctions"); const Mssp_node_options_1 = require("./Mssp.node.options"); class Mssp { constructor() { this.description = { displayName: 'Tenable MSSP', name: 'mssp', icon: 'file:tenable.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Interacts with the Tenable MSSP API', defaults: { name: 'Tenable MSSP', }, inputs: ["main" /* NodeConnectionType.Main */], outputs: ["main" /* NodeConnectionType.Main */], credentials: [ { name: 'tenableApi', required: true, }, ], properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Accounts', value: 'accounts', }, { name: 'Account Groups', value: 'accountGroups', }, ], default: 'accounts', }, ...Mssp_node_options_1.msspOperations, ...Mssp_node_options_1.msspFields, ], }; } async execute() { const items = this.getInputData(); const returnData = []; const length = items.length; let responseData; for (let i = 0; i < length; i++) { const resource = this.getNodeParameter('resource', i); const operation = this.getNodeParameter('operation', i); const body = {}; const qs = {}; if (resource === 'accounts') { if (operation === 'createEvalV1') { const email = this.getNodeParameter('email', i); const country = this.getNodeParameter('country', i); body.email = email; body.country = country; } if (operation === 'createEvalV2') { const customerName = this.getNodeParameter('customerName', i); const licensedApps = this.getNodeParameter('licensedApps', i); const defaultContactEmail = this.getNodeParameter('defaultContactEmail', i); const adminUsername = this.getNodeParameter('adminUsername', i); const country = this.getNodeParameter('country', i); body.customer_name = customerName; body.licensed_apps = licensedApps.split(','); body.default_contact_email = defaultContactEmail; body.admin_username = adminUsername; body.country = country; } if (operation === 'createQuote') { const customerName = this.getNodeParameter('customerName', i); const adminUsername = this.getNodeParameter('adminUsername', i); const partner = this.getNodeParameter('partner', i); const distributor = this.getNodeParameter('distributor', i); const licensedApps = this.getNodeParameter('licensedApps', i); const contact = this.getNodeParameter('contact', i); const region = this.getNodeParameter('region', i); const requester = this.getNodeParameter('requester', i); const licensee = this.getNodeParameter('licensee', i); body.customer_name = customerName; body.admin_username = adminUsername; body.partner = partner; body.distributor = distributor; body.licensed_apps = licensedApps; body.contact = contact; body.region = region; body.requester = requester; body.licensee = licensee; } if (operation === 'list') { const additionalFields = this.getNodeParameter('additionalFields', i); if (additionalFields.group) { qs.group = additionalFields.group; } if (additionalFields.f) { qs.f = additionalFields.f; } if (additionalFields.ft) { qs.ft = additionalFields.ft; } if (additionalFields.w) { qs.w = additionalFields.w; } if (additionalFields.wf) { qs.wf = additionalFields.wf; } } if (operation === 'get') { const accountUuid = this.getNodeParameter('accountUuid', i); qs.account_uuid = accountUuid; } if (operation === 'listDomains') { const accountUuid = this.getNodeParameter('accountUuid', i); qs.account_uuid = accountUuid; } } if (resource === 'accountGroups') { if (operation === 'create') { const name = this.getNodeParameter('name', i); const additionalFields = this.getNodeParameter('additionalFields', i); body.name = name; if (additionalFields.accountUuids) { body.accountUuids = additionalFields.accountUuids.split(','); } } if (operation === 'list') { // No parameters } if (operation === 'get') { const accountGroupUuid = this.getNodeParameter('accountGroupUuid', i); qs.account_group_uuid = accountGroupUuid; } if (operation === 'update') { const accountGroupUuid = this.getNodeParameter('accountGroupUuid', i); const name = this.getNodeParameter('name', i); const additionalFields = this.getNodeParameter('additionalFields', i); body.name = name; if (additionalFields.accountUuids) { body.accountUuids = additionalFields.accountUuids.split(','); } qs.account_group_uuid = accountGroupUuid; } if (operation === 'delete') { const accountGroupUuid = this.getNodeParameter('accountGroupUuid', i); qs.account_group_uuid = accountGroupUuid; } } responseData = await GenericFunctions_1.msspApiRequest.call(this, resource, operation, body, qs); const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: i } }); returnData.push(...executionData); } return [this.helpers.returnJsonArray(returnData)]; } } exports.Mssp = Mssp;