UNPKG

@ev1lc0rp/n8n-nodes-ninjaone

Version:

Professional NinjaOne RMM integration for n8n with complete ticketing and device management

512 lines 19.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NinjaOne = void 0; const operations_1 = require("./operations"); class NinjaOne { constructor() { this.description = { displayName: 'NinjaOne', name: 'ninjaOne', icon: { light: 'file:ninjaone.svg', dark: 'file:ninjaone.svg' }, group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Interact with the NinjaOne API', defaults: { name: 'NinjaOne', }, inputs: ["main"], outputs: ["main"], usableAsTool: true, credentials: [ { name: 'ninjaOneOAuth2Api', required: true, }, ], requestDefaults: { baseURL: '={{$credentials.baseUrl || "https://api.ninjaone.com"}}', url: '', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, }, properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Device', value: 'device', }, { name: 'Ticket', value: 'ticket', }, ], default: 'device', }, ...operations_1.deviceOperations, ...operations_1.ticketOperations, { displayName: 'Device ID', name: 'deviceId', description: 'ID of the device', type: 'string', default: '', required: true, displayOptions: { show: { resource: ['device'], operation: ['get', 'getActivities', 'getAlerts', 'getCustomFields', 'getDisks', 'getJobs', 'getLastLoggedOnUser', 'getNetworkInterfaces', 'getOsPatchInstalls', 'getOsPatches', 'getPolicyOverrides', 'getProcessors', 'getSoftware', 'getSoftwarePatchInstalls', 'getSoftwarePatches', 'getVolumes', 'getWindowsServices', 'updateCustomFields'], }, }, }, { displayName: 'Ticket ID', name: 'ticketId', description: 'ID of the ticket', type: 'string', default: '', required: true, displayOptions: { show: { resource: ['ticket'], operation: ['get', 'update', 'comment'], }, }, }, { displayName: 'Board ID', name: 'boardId', description: 'ID of the ticketing board to list tickets from', type: 'number', default: 0, required: true, displayOptions: { show: { resource: ['ticket'], operation: ['getTicketsByBoard'], }, }, }, { displayName: 'Limit', name: 'limit', type: 'number', default: 50, description: 'Max number of results to return', typeOptions: { minValue: 1, }, displayOptions: { show: { resource: ['device', 'ticket'], operation: ['getAll', 'getTicketsByBoard'], }, }, }, { displayName: 'Offset', name: 'offset', type: 'number', default: 0, description: 'Offset to start from', typeOptions: { minValue: 0, }, displayOptions: { show: { resource: ['device', 'ticket'], operation: ['getAll', 'getTicketsByBoard'], }, }, }, { displayName: 'Version', name: 'version', description: 'Version number for optimistic locking', type: 'number', default: 1, displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Client ID', name: 'clientId', description: 'Organization ID', type: 'number', default: 0, displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Ticket Form ID', name: 'ticketFormId', description: 'ID of the ticket form', type: 'number', default: 0, displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Location ID', name: 'locationId', description: 'Location ID', type: 'number', default: 0, displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Node ID', name: 'nodeId', description: 'Device/Node ID', type: 'number', default: 0, displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Summary', name: 'summary', description: 'Ticket summary/subject', type: 'string', default: '', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Status', name: 'status', description: 'Ticket status', type: 'options', options: [ { name: 'New', value: '1000' }, { name: 'Open', value: '2000' }, { name: 'Waiting for Customer', value: '3000' }, { name: 'Hold', value: '4000' }, ], default: '1000', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Type', name: 'type', description: 'Ticket type', type: 'options', options: [ { name: 'Problem', value: 'PROBLEM' }, { name: 'Task', value: 'TASK' }, { name: 'Question', value: 'QUESTION' }, ], default: 'PROBLEM', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'CC User IDs', name: 'ccUids', description: 'Array of user UIDs to CC on ticket', type: 'string', default: '', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'CC Emails', name: 'ccEmails', description: 'Array of email addresses to CC on ticket', type: 'string', default: '', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Assigned App User ID', name: 'assignedAppUserId', description: 'ID of the assigned technician', type: 'number', default: 0, displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Requester UID', name: 'requesterUid', description: 'UID of the ticket requester', type: 'string', default: '', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Severity', name: 'severity', description: 'Ticket severity level', type: 'options', options: [ { name: 'None', value: 'NONE' }, { name: 'Minor', value: 'MINOR' }, { name: 'Moderate', value: 'MODERATE' }, { name: 'Major', value: 'MAJOR' }, { name: 'Critical', value: 'CRITICAL' }, ], default: 'NONE', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Priority', name: 'priority', description: 'Ticket priority level', type: 'options', options: [ { name: 'None', value: 'NONE' }, { name: 'Low', value: 'LOW' }, { name: 'Medium', value: 'MEDIUM' }, { name: 'High', value: 'HIGH' }, { name: 'Critical', value: 'CRITICAL' }, ], default: 'NONE', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Parent Ticket ID', name: 'parentTicketId', description: 'ID of the parent ticket for sub-tickets', type: 'number', default: 0, displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Tags', name: 'tags', description: 'Array of tags for the ticket', type: 'string', default: '', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Attributes', name: 'attributes', description: 'Custom attributes for the ticket', type: 'string', default: '', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Organization', name: 'organization', description: 'Department or organization assignment', type: 'string', default: '', displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Total Time Tracked', name: 'totalTimeTracked', description: 'Total time tracked in seconds', type: 'number', default: 0, displayOptions: { show: { resource: ['ticket'], operation: ['update', 'create'], }, }, }, { displayName: 'Description', name: 'description', description: 'Ticket description (required for create)', type: 'string', default: '', required: true, displayOptions: { show: { resource: ['ticket'], operation: ['create'], }, }, }, { displayName: 'Description Public', name: 'descriptionPublic', description: 'Whether the description is public', type: 'boolean', default: true, displayOptions: { show: { resource: ['ticket'], operation: ['create'], }, }, }, { displayName: 'HTML Body', name: 'htmlBody', description: 'HTML formatted description', type: 'string', default: '', displayOptions: { show: { resource: ['ticket'], operation: ['create'], }, }, }, { displayName: 'Time Tracked', name: 'timeTracked', description: 'Time tracked for this entry in seconds', type: 'number', default: 0, displayOptions: { show: { resource: ['ticket'], operation: ['create'], }, }, }, { displayName: 'Duplicate in Incidents', name: 'duplicateInIncidents', description: 'Whether to duplicate in incidents', type: 'boolean', default: false, displayOptions: { show: { resource: ['ticket'], operation: ['create'], }, }, }, { displayName: 'Comment Body', name: 'commentBody', description: 'Comment text (required for comment)', type: 'string', default: '', required: true, displayOptions: { show: { resource: ['ticket'], operation: ['comment'], }, }, }, { displayName: 'Comment Public', name: 'commentPublic', description: 'Whether the comment is public', type: 'boolean', default: true, displayOptions: { show: { resource: ['ticket'], operation: ['comment'], }, }, }, { displayName: 'Comment Time Tracked', name: 'commentTimeTracked', description: 'Time tracked for this comment in seconds', type: 'number', default: 0, displayOptions: { show: { resource: ['ticket'], operation: ['comment'], }, }, }, ], }; } } exports.NinjaOne = NinjaOne; //# sourceMappingURL=NinjaOne.node.js.map