UNPKG

n8n-nodes-netbox

Version:

n8n community node for NetBox API integration with comprehensive DCIM, IPAM, and data center management operations

559 lines (558 loc) 17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ipAddressFields = exports.ipAddressOperations = void 0; exports.ipAddressOperations = { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], }, }, options: [ { name: 'List', value: 'list', description: 'Get a list of IP addresses', action: 'List IP addresses', }, { name: 'Get', value: 'get', description: 'Get a specific IP address', action: 'Get an IP address', }, { name: 'Create', value: 'create', description: 'Create a new IP address', action: 'Create an IP address', }, { name: 'Update', value: 'update', description: 'Update an existing IP address', action: 'Update an IP address', }, { name: 'Delete', value: 'delete', description: 'Delete an IP address', action: 'Delete an IP address', }, ], default: 'list', }; exports.ipAddressFields = [ // Common field for get/update/delete operations - support both ID and IP address { displayName: 'IP Address ID or Address', name: 'ipAddressId', type: 'string', required: true, displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], operation: ['get', 'update', 'delete'], }, }, default: '', placeholder: '123 or 192.168.1.1', description: 'The ID or IP address to identify the record', }, // List operation - Return All toggle { displayName: 'Return All', name: 'returnAll', type: 'boolean', displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], operation: ['list'], }, }, default: false, description: 'Whether to return all results or only up to the limit', }, // List operation - Limit field (only shown when returnAll is false) { displayName: 'Limit', name: 'limit', type: 'number', displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], operation: ['list'], returnAll: [false], }, }, typeOptions: { minValue: 1, }, default: 50, description: 'Max number of results to return', }, // List operation filters { displayName: 'Filters', name: 'filters', type: 'collection', placeholder: 'Add Filter', default: {}, displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], operation: ['list'], }, }, options: [ { displayName: 'Address', name: 'address', type: 'string', default: '', description: 'Filter by IP address (e.g., 192.168.1.1/24)', }, { displayName: 'Family', name: 'family', type: 'options', options: [ { name: 'IPv4', value: 4, }, { name: 'IPv6', value: 6, }, ], default: 4, description: 'IP address family', }, { displayName: 'Assigned', name: 'assigned', type: 'boolean', default: false, description: 'Filter by assignment status', }, { displayName: 'Assigned to Interface', name: 'assigned_to_interface', type: 'boolean', default: false, description: 'Filter by interface assignment', }, { displayName: 'Status', name: 'status', type: 'options', options: [ { name: 'Active', value: 'active', }, { name: 'Reserved', value: 'reserved', }, { name: 'Deprecated', value: 'deprecated', }, { name: 'DHCP', value: 'dhcp', }, { name: 'SLAAC', value: 'slaac', }, ], default: 'active', description: 'Operational status of the IP address', }, { displayName: 'Role', name: 'role', type: 'string', default: '', description: 'Functional role of the IP address', }, { displayName: 'VRF ID', name: 'vrf_id', type: 'string', default: '', description: 'VRF (Virtual Routing and Forwarding) ID or name', }, { displayName: 'Tenant ID', name: 'tenant_id', type: 'string', default: '', description: 'Tenant ID or name', }, { displayName: 'Device ID', name: 'device_id', type: 'string', default: '', description: 'Device ID or name', }, { displayName: 'Interface ID', name: 'interface_id', type: 'string', default: '', description: 'Interface ID or name', }, { displayName: 'Virtual Machine ID', name: 'virtual_machine_id', type: 'string', default: '', description: 'Virtual machine ID or name', }, { displayName: 'VM Interface ID', name: 'vminterface_id', type: 'string', default: '', description: 'VM interface ID or name', }, { displayName: 'DNS Name', name: 'dns_name', type: 'string', default: '', description: 'Filter by DNS name', }, { displayName: 'Description', name: 'description', type: 'string', default: '', description: 'Filter by description', }, { displayName: 'Parent', name: 'parent', type: 'string', default: '', description: 'Filter by parent prefix', }, { displayName: 'Tag', name: 'tag', type: 'string', default: '', description: 'Filter by tag name or slug', }, ], }, // Raw JSON option for create/update { displayName: 'Use Raw JSON', name: 'useRawJson', type: 'boolean', displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], operation: ['create', 'update'], }, }, default: false, description: 'Whether to use raw JSON input instead of individual fields', }, // Raw JSON data field { displayName: 'IP Address Data (JSON)', name: 'ipAddressData', type: 'json', displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], operation: ['create', 'update'], useRawJson: [true], }, }, default: '{\n "address": "192.168.1.1/24",\n "status": "active"\n}', description: 'IP address data as JSON object', }, // Create operation fields { displayName: 'Address', name: 'address', type: 'string', required: true, displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], operation: ['create'], useRawJson: [false], }, }, default: '', placeholder: '192.168.1.1/24', description: 'IP address with optional prefix length', }, { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], operation: ['create'], useRawJson: [false], }, }, options: [ { displayName: 'VRF', name: 'vrf', type: 'string', default: '', description: 'VRF ID or name', }, { displayName: 'Tenant', name: 'tenant', type: 'string', default: '', description: 'Tenant ID or name', }, { displayName: 'Status', name: 'status', type: 'options', options: [ { name: 'Active', value: 'active', }, { name: 'Reserved', value: 'reserved', }, { name: 'Deprecated', value: 'deprecated', }, { name: 'DHCP', value: 'dhcp', }, { name: 'SLAAC', value: 'slaac', }, ], default: 'active', description: 'Operational status', }, { displayName: 'Role', name: 'role', type: 'string', default: '', description: 'Functional role of the IP address', }, { displayName: 'Assigned Object Type', name: 'assigned_object_type', type: 'string', default: '', description: 'Content type of the assigned object', }, { displayName: 'Assigned Object ID', name: 'assigned_object_id', type: 'number', default: null, description: 'ID of the assigned object', }, { displayName: 'NAT Inside IP ID', name: 'nat_inside', type: 'number', default: null, description: 'ID of the inside IP address for NAT', }, { displayName: 'DNS Name', name: 'dns_name', type: 'string', default: '', description: 'DNS name for the IP address', }, { displayName: 'Description', name: 'description', type: 'string', default: '', description: 'Description of the IP address', }, { displayName: 'Comments', name: 'comments', type: 'string', typeOptions: { rows: 3, }, default: '', description: 'Additional comments', }, { displayName: 'Tags', name: 'tags', type: 'string', default: '', description: 'Comma-separated list of tag names', }, ], }, // Update operation fields { displayName: 'Update Fields', name: 'updateFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { domain: ['ipam'], resource: ['ip-addresses'], operation: ['update'], useRawJson: [false], }, }, options: [ { displayName: 'Address', name: 'address', type: 'string', default: '', placeholder: '192.168.1.1/24', description: 'IP address with optional prefix length', }, { displayName: 'VRF', name: 'vrf', type: 'string', default: '', description: 'VRF ID or name', }, { displayName: 'Tenant', name: 'tenant', type: 'string', default: '', description: 'Tenant ID or name', }, { displayName: 'Status', name: 'status', type: 'options', options: [ { name: 'Active', value: 'active', }, { name: 'Reserved', value: 'reserved', }, { name: 'Deprecated', value: 'deprecated', }, { name: 'DHCP', value: 'dhcp', }, { name: 'SLAAC', value: 'slaac', }, ], default: 'active', description: 'Operational status', }, { displayName: 'Role', name: 'role', type: 'string', default: '', description: 'Functional role of the IP address', }, { displayName: 'Assigned Object Type', name: 'assigned_object_type', type: 'string', default: '', description: 'Content type of the assigned object', }, { displayName: 'Assigned Object ID', name: 'assigned_object_id', type: 'number', default: null, description: 'ID of the assigned object', }, { displayName: 'NAT Inside IP ID', name: 'nat_inside', type: 'number', default: null, description: 'ID of the inside IP address for NAT', }, { displayName: 'DNS Name', name: 'dns_name', type: 'string', default: '', description: 'DNS name for the IP address', }, { displayName: 'Description', name: 'description', type: 'string', default: '', description: 'Description of the IP address', }, { displayName: 'Comments', name: 'comments', type: 'string', typeOptions: { rows: 3, }, default: '', description: 'Additional comments', }, { displayName: 'Tags', name: 'tags', type: 'string', default: '', description: 'Comma-separated list of tag names', }, ], }, ];