UNPKG

n8n-nodes-librenms

Version:

n8n community node for LibreNMS network monitoring system integration with comprehensive device management and monitoring capabilities

363 lines (362 loc) 11.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deviceGroupsFields = exports.deviceGroupsOperations = void 0; exports.deviceGroupsOperations = [ { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['deviceGroups'], }, }, options: [ { name: 'Get All', value: 'getAll', description: 'Get all device groups', action: 'Get all device groups', routing: { request: { method: 'GET', url: '/devicegroups', }, output: { postReceive: [ { type: 'rootProperty', properties: { property: 'groups', }, }, ], }, }, }, { name: 'Get Devices by Group', value: 'getDevicesByGroup', description: 'Get all devices in a group', action: 'Get devices by group', routing: { request: { method: 'GET', url: '=/devicegroups/{{encodeURIComponent($parameter.groupName)}}', }, output: { postReceive: [ { type: 'rootProperty', properties: { property: 'devices', }, }, ], }, }, }, { name: 'Create', value: 'create', description: 'Create a new device group', action: 'Create device group', routing: { request: { method: 'POST', url: '/devicegroups', }, send: { type: 'body', }, }, }, { name: 'Update', value: 'update', description: 'Update a device group', action: 'Update device group', routing: { request: { method: 'PATCH', url: '=/devicegroups/{{encodeURIComponent($parameter.groupName)}}', }, send: { type: 'body', }, }, }, { name: 'Delete', value: 'delete', description: 'Delete a device group', action: 'Delete device group', routing: { request: { method: 'DELETE', url: '=/devicegroups/{{encodeURIComponent($parameter.groupName)}}', }, }, }, { name: 'Set Maintenance', value: 'setMaintenance', description: 'Set device group into maintenance mode', action: 'Set group maintenance', routing: { request: { method: 'POST', url: '=/devicegroups/{{encodeURIComponent($parameter.groupName)}}/maintenance', }, send: { type: 'body', }, }, }, { name: 'Add Devices', value: 'addDevices', description: 'Add devices to a group', action: 'Add devices to group', routing: { request: { method: 'POST', url: '=/devicegroups/{{encodeURIComponent($parameter.groupName)}}/devices', }, send: { type: 'body', }, }, }, { name: 'Remove Devices', value: 'removeDevices', description: 'Remove devices from a group', action: 'Remove devices from group', routing: { request: { method: 'DELETE', url: '=/devicegroups/{{encodeURIComponent($parameter.groupName)}}/devices', }, send: { type: 'body', }, }, }, ], default: 'getAll', }, ]; exports.deviceGroupsFields = [ // Group name for operations that need it { displayName: 'Group Name', name: 'groupName', type: 'string', required: true, displayOptions: { show: { resource: ['deviceGroups'], operation: [ 'getDevicesByGroup', 'update', 'delete', 'setMaintenance', 'addDevices', 'removeDevices', ], }, }, default: '', description: 'Device group name', }, // Fields for creating device groups { displayName: 'Group Name', name: 'name', type: 'string', required: true, displayOptions: { show: { resource: ['deviceGroups'], operation: ['create'], }, }, default: '', description: 'Name of the device group', }, { displayName: 'Group Type', name: 'type', type: 'options', required: true, displayOptions: { show: { resource: ['deviceGroups'], operation: ['create'], }, }, options: [ { name: 'Static', value: 'static' }, { name: 'Dynamic', value: 'dynamic' }, ], default: 'static', description: 'Type of device group', }, // Static group devices { displayName: 'Devices', name: 'devices', type: 'string', required: true, displayOptions: { show: { resource: ['deviceGroups'], operation: ['create'], type: ['static'], }, }, default: '', placeholder: '1,2,3', description: 'Comma-separated list of device IDs', }, // Dynamic group rules { displayName: 'Rules', name: 'rules', type: 'json', required: true, displayOptions: { show: { resource: ['deviceGroups'], operation: ['create'], type: ['dynamic'], }, }, default: '{"condition":"AND","rules":[{"id":"devices.status","field":"devices.status","type":"integer","input":"select","operator":"equal","value":"1"}],"valid":true}', description: 'Rules JSON for dynamic group', }, // Additional options for create { displayName: 'Additional Options', name: 'additionalOptions', type: 'collection', placeholder: 'Add Option', default: {}, displayOptions: { show: { resource: ['deviceGroups'], operation: ['create', 'update'], }, }, options: [ { displayName: 'Description', name: 'desc', type: 'string', default: '', description: 'Description of the device group', }, ], }, // Device management { displayName: 'Devices', name: 'devices', type: 'string', required: true, displayOptions: { show: { resource: ['deviceGroups'], operation: ['addDevices', 'removeDevices'], }, }, default: '', placeholder: '1,2,3', description: 'Comma-separated list of device IDs', }, // Maintenance options { displayName: 'Duration', name: 'duration', type: 'string', required: true, displayOptions: { show: { resource: ['deviceGroups'], operation: ['setMaintenance'], }, }, default: '2:00', placeholder: '2:00', description: 'Duration in format H:i (e.g., 2:00 for 2 hours)', }, { displayName: 'Maintenance Options', name: 'maintenanceOptions', type: 'collection', placeholder: 'Add Option', default: {}, displayOptions: { show: { resource: ['deviceGroups'], operation: ['setMaintenance'], }, }, options: [ { displayName: 'Title', name: 'title', type: 'string', default: '', description: 'Title for the maintenance', }, { displayName: 'Notes', name: 'notes', type: 'string', default: '', description: 'Notes for the maintenance', }, { displayName: 'Start Time', name: 'start', type: 'string', default: '', placeholder: '2024-01-01 10:00:00', description: 'Start time in Y-m-d H:i:s format', }, ], }, // Options for getDevicesByGroup { displayName: 'Options', name: 'options', type: 'collection', placeholder: 'Add Option', default: {}, displayOptions: { show: { resource: ['deviceGroups'], operation: ['getDevicesByGroup'], }, }, options: [ { displayName: 'Full Data', name: 'full', type: 'boolean', default: false, description: 'Return all device data instead of just IDs', routing: { send: { type: 'query', property: 'full', value: '={{$value ? "1" : ""}}', }, }, }, ], }, ];