n8n-nodes-librenms
Version:
n8n community node for LibreNMS network monitoring system integration with comprehensive device management and monitoring capabilities
339 lines (338 loc) • 10.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.portGroupsFields = exports.portGroupsOperations = void 0;
exports.portGroupsOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['portGroups'],
},
},
options: [
{
name: 'Get All',
value: 'getAll',
description: 'Get all port groups',
action: 'Get all port groups',
routing: {
request: {
method: 'GET',
url: '/port_groups',
},
output: {
postReceive: [
{
type: 'rootProperty',
properties: {
property: 'groups',
},
},
],
},
},
},
{
name: 'Get Ports by Group',
value: 'getPortsByGroup',
description: 'Get all ports in a group',
action: 'Get ports by group',
routing: {
request: {
method: 'GET',
url: '=/port_groups/{{encodeURIComponent($parameter.groupName)}}',
},
output: {
postReceive: [
{
type: 'rootProperty',
properties: {
property: 'ports',
},
},
],
},
},
},
{
name: 'Create',
value: 'create',
description: 'Create a new port group',
action: 'Create port group',
routing: {
request: {
method: 'POST',
url: '/port_groups',
},
send: {
type: 'body',
},
},
},
{
name: 'Assign Ports',
value: 'assignPorts',
description: 'Assign ports to a group',
action: 'Assign ports to group',
routing: {
request: {
method: 'POST',
url: '=/port_groups/{{$parameter.portGroupId}}/assign',
},
send: {
type: 'body',
},
},
},
{
name: 'Remove Ports',
value: 'removePorts',
description: 'Remove ports from a group',
action: 'Remove ports from group',
routing: {
request: {
method: 'POST',
url: '=/port_groups/{{$parameter.portGroupId}}/remove',
},
send: {
type: 'body',
},
},
},
{
name: 'Get Graph',
value: 'getGraph',
description: 'Get port group graph',
action: 'Get port group graph',
routing: {
request: {
method: 'GET',
url: '=/portgroups/{{$parameter.groupTypes}}',
},
},
},
{
name: 'Get Multi-Port Graph',
value: 'getMultiPortGraph',
description: 'Get graph for multiple ports',
action: 'Get multi-port graph',
routing: {
request: {
method: 'GET',
url: '=/portgroups/multiport/bits/{{$parameter.portIds}}',
},
},
},
],
default: 'getAll',
},
];
exports.portGroupsFields = [
// Group name for operations that need it
{
displayName: 'Group Name',
name: 'groupName',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['portGroups'],
operation: ['getPortsByGroup'],
},
},
default: '',
description: 'Port group name',
},
// Port Group ID for assignment operations
{
displayName: 'Port Group ID',
name: 'portGroupId',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['portGroups'],
operation: ['assignPorts', 'removePorts'],
},
},
default: '',
description: 'Port group ID',
},
// Fields for creating port groups
{
displayName: 'Group Name',
name: 'name',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['portGroups'],
operation: ['create'],
},
},
default: '',
description: 'Name of the port group',
},
{
displayName: 'Description',
name: 'desc',
type: 'string',
displayOptions: {
show: {
resource: ['portGroups'],
operation: ['create'],
},
},
default: '',
description: 'Description of the port group',
},
// Port management
{
displayName: 'Port IDs',
name: 'port_ids',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['portGroups'],
operation: ['assignPorts', 'removePorts'],
},
},
default: '',
placeholder: '1,2,3',
description: 'Comma-separated list of port IDs',
},
// Port IDs for multi-port graph
{
displayName: 'Port IDs',
name: 'portIds',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['portGroups'],
operation: ['getMultiPortGraph'],
},
},
default: '',
placeholder: '1,2,3',
description: 'Comma-separated list of port IDs for graph',
},
// Group types for graph
{
displayName: 'Group Types',
name: 'groupTypes',
type: 'string',
required: true,
displayOptions: {
show: {
resource: ['portGroups'],
operation: ['getGraph'],
},
},
default: '',
placeholder: 'transit,peering',
description: 'Comma-separated list of group types (e.g., transit, peering)',
},
// Options for getPortsByGroup
{
displayName: 'Options',
name: 'options',
type: 'collection',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
resource: ['portGroups'],
operation: ['getPortsByGroup'],
},
},
options: [
{
displayName: 'Full Data',
name: 'full',
type: 'boolean',
default: false,
description: 'Return all port data instead of just IDs',
routing: {
send: {
type: 'query',
property: 'full',
value: '={{$value ? "1" : ""}}',
},
},
},
],
},
// Graph options
{
displayName: 'Graph Options',
name: 'graphOptions',
type: 'collection',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
resource: ['portGroups'],
operation: ['getGraph', 'getMultiPortGraph'],
},
},
options: [
{
displayName: 'From',
name: 'from',
type: 'string',
default: '',
description: 'Start time for graph data',
routing: {
send: {
type: 'query',
property: 'from',
},
},
},
{
displayName: 'To',
name: 'to',
type: 'string',
default: '',
description: 'End time for graph data',
routing: {
send: {
type: 'query',
property: 'to',
},
},
},
{
displayName: 'Width',
name: 'width',
type: 'number',
default: 1075,
description: 'Graph width in pixels',
routing: {
send: {
type: 'query',
property: 'width',
},
},
},
{
displayName: 'Height',
name: 'height',
type: 'number',
default: 300,
description: 'Graph height in pixels',
routing: {
send: {
type: 'query',
property: 'height',
},
},
},
],
},
];