n8n-nodes-librenms
Version:
n8n community node for LibreNMS network monitoring system integration with comprehensive device management and monitoring capabilities
268 lines (267 loc) • 8.07 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.alertRulesFields = exports.alertRulesOperations = void 0;
exports.alertRulesOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['alertRules'],
},
},
options: [
{
name: 'Get All',
value: 'getAll',
description: 'Get all alert rules',
action: 'Get all alert rules',
routing: {
request: {
method: 'GET',
url: '/rules',
},
output: {
postReceive: [
{
type: 'rootProperty',
properties: {
property: 'rules',
},
},
],
},
},
},
{
name: 'Get',
value: 'get',
description: 'Get an alert rule by ID',
action: 'Get an alert rule',
routing: {
request: {
method: 'GET',
url: '=/rules/{{$parameter.ruleId}}',
},
output: {
postReceive: [
{
type: 'rootProperty',
properties: {
property: 'rules',
},
},
],
},
},
},
{
name: 'Create',
value: 'create',
description: 'Create a new alert rule',
action: 'Create an alert rule',
routing: {
request: {
method: 'POST',
url: '/rules',
},
send: {
type: 'body',
},
},
},
{
name: 'Update',
value: 'update',
description: 'Update an alert rule',
action: 'Update an alert rule',
routing: {
request: {
method: 'PUT',
url: '/rules',
},
send: {
type: 'body',
},
},
},
{
name: 'Delete',
value: 'delete',
description: 'Delete an alert rule',
action: 'Delete an alert rule',
routing: {
request: {
method: 'DELETE',
url: '=/rules/{{$parameter.ruleId}}',
},
},
},
],
default: 'getAll',
},
];
exports.alertRulesFields = [
// Rule ID for specific operations
{
displayName: 'Rule ID',
name: 'ruleId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['alertRules'],
operation: ['get', 'delete'],
},
},
default: '',
description: 'The alert rule ID',
},
// Fields for creating/updating rules
{
displayName: 'Rule Name',
name: 'name',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['alertRules'],
operation: ['create', 'update'],
},
},
default: '',
description: 'Name of the alert rule',
},
{
displayName: 'Devices',
name: 'devices',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['alertRules'],
operation: ['create', 'update'],
},
},
default: '-1',
placeholder: '-1 for global, or comma-separated device IDs',
description: 'Device IDs or -1 for global rule',
},
{
displayName: 'Rule Builder',
name: 'builder',
type: 'json',
required: true,
displayOptions: {
show: {
resource: ['alertRules'],
operation: ['create', 'update'],
},
},
default: '{"condition":"AND","rules":[{"id":"devices.status","field":"devices.status","type":"integer","input":"select","operator":"equal","value":"0"}],"valid":true}',
description: 'Rule builder JSON object',
},
{
displayName: 'Severity',
name: 'severity',
type: 'options',
required: true,
displayOptions: {
show: {
resource: ['alertRules'],
operation: ['create', 'update'],
},
},
options: [
{ name: 'OK', value: 'ok' },
{ name: 'Warning', value: 'warning' },
{ name: 'Critical', value: 'critical' },
],
default: 'critical',
description: 'Severity level of the alert',
},
// Rule ID for update operation
{
displayName: 'Rule ID',
name: 'rule_id',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['alertRules'],
operation: ['update'],
},
},
default: '',
description: 'ID of the rule to update',
},
// Additional options for rules
{
displayName: 'Additional Options',
name: 'additionalOptions',
type: 'collection',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
resource: ['alertRules'],
operation: ['create', 'update'],
},
},
options: [
{
displayName: 'Disabled',
name: 'disabled',
type: 'boolean',
default: false,
description: 'Whether the rule is disabled',
},
{
displayName: 'Count',
name: 'count',
type: 'number',
default: 1,
description: 'How many polling runs before alert triggers',
},
{
displayName: 'Delay',
name: 'delay',
type: 'string',
default: '5 m',
placeholder: '5 m',
description: 'Delay before alerting (e.g., 5 m, 1 h, 1 d)',
},
{
displayName: 'Interval',
name: 'interval',
type: 'string',
default: '5 m',
placeholder: '5 m',
description: 'How often to re-issue notifications',
},
{
displayName: 'Mute',
name: 'mute',
type: 'boolean',
default: false,
description: 'If enabled, alert will show in UI but not send notifications',
},
{
displayName: 'Invert',
name: 'invert',
type: 'boolean',
default: false,
description: 'Invert the rule check',
},
{
displayName: 'Notes',
name: 'notes',
type: 'string',
default: '',
description: 'Notes for this rule',
},
],
},
];