n8n-nodes-librenms
Version:
n8n community node for LibreNMS network monitoring system integration with comprehensive device management and monitoring capabilities
290 lines (289 loc) • 8.48 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.servicesFields = exports.servicesOperations = void 0;
exports.servicesOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['services'],
},
},
options: [
{
name: 'Get All',
value: 'getAll',
description: 'Get all services',
action: 'Get all services',
routing: {
request: {
method: 'GET',
url: '/services',
},
output: {
postReceive: [
{
type: 'rootProperty',
properties: {
property: 'services',
},
},
],
},
},
},
{
name: 'Get for Device',
value: 'getForDevice',
description: 'Get services for a specific device',
action: 'Get services for device',
routing: {
request: {
method: 'GET',
url: '=/services/{{$parameter.deviceId}}',
},
output: {
postReceive: [
{
type: 'rootProperty',
properties: {
property: 'services',
},
},
],
},
},
},
{
name: 'Create',
value: 'create',
description: 'Add a service for a device',
action: 'Create a service',
routing: {
request: {
method: 'POST',
url: '=/services/{{$parameter.deviceId}}',
},
send: {
type: 'body',
},
},
},
{
name: 'Update',
value: 'update',
description: 'Update a service',
action: 'Update a service',
routing: {
request: {
method: 'PATCH',
url: '=/services/{{$parameter.serviceId}}',
},
send: {
type: 'body',
},
},
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a service',
action: 'Delete a service',
routing: {
request: {
method: 'DELETE',
url: '=/services/{{$parameter.serviceId}}',
},
},
},
],
default: 'getAll',
},
];
exports.servicesFields = [
// Device ID for device-specific operations
{
displayName: 'Device',
name: 'deviceId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['services'],
operation: ['getForDevice', 'create'],
},
},
default: '',
placeholder: 'hostname or device ID',
description: 'Device hostname or ID',
},
// Service ID for specific operations
{
displayName: 'Service ID',
name: 'serviceId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['services'],
operation: ['update', 'delete'],
},
},
default: '',
description: 'The service ID',
},
// Fields for creating services
{
displayName: 'Service Type',
name: 'type',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['services'],
operation: ['create'],
},
},
default: '',
placeholder: 'ping, http, tcp, etc.',
description: 'Type of service to monitor',
},
{
displayName: 'IP Address',
name: 'ip',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['services'],
operation: ['create'],
},
},
default: '',
description: 'IP address of the service',
},
{
displayName: 'Description',
name: 'desc',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['services'],
operation: ['create'],
},
},
default: '',
description: 'Description for the service',
},
// Additional options for creating services
{
displayName: 'Additional Options',
name: 'additionalOptions',
type: 'collection',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
resource: ['services'],
operation: ['create'],
},
},
options: [
{
displayName: 'Parameters',
name: 'param',
type: 'string',
default: '',
description: 'Parameters for the service check',
},
{
displayName: 'Ignore',
name: 'ignore',
type: 'boolean',
default: false,
description: 'Ignore the service for checks',
},
],
},
// Update options
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['services'],
operation: ['update'],
},
},
options: [
{
displayName: 'Service Disabled',
name: 'service_disabled',
type: 'boolean',
default: false,
description: 'Whether the service is disabled',
},
{
displayName: 'Service Ignore',
name: 'service_ignore',
type: 'boolean',
default: false,
description: 'Whether to ignore the service',
},
],
},
// Filters for getAll and getForDevice
{
displayName: 'Filters',
name: 'filters',
type: 'collection',
placeholder: 'Add Filter',
default: {},
displayOptions: {
show: {
resource: ['services'],
operation: ['getAll', 'getForDevice'],
},
},
options: [
{
displayName: 'State',
name: 'state',
type: 'options',
options: [
{ name: 'OK', value: '0' },
{ name: 'Warning', value: '1' },
{ name: 'Critical', value: '2' },
],
default: '',
description: 'Filter by service state',
routing: {
send: {
type: 'query',
property: 'state',
},
},
},
{
displayName: 'Type',
name: 'type',
type: 'string',
default: '',
description: 'Filter by service type (uses SQL LIKE)',
routing: {
send: {
type: 'query',
property: 'type',
},
},
},
],
},
];