n8n-nodes-netbox
Version:
n8n community node for NetBox API integration with comprehensive DCIM, IPAM, Virtualization, Circuits, Wireless, and data center management operations
1,579 lines (1,578 loc) • 183 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.dcimProperties = exports.virtualDeviceContextFields = exports.virtualDeviceContextOperations = exports.virtualChassisFields = exports.virtualChassisOperations = exports.moduleBayTemplateFields = exports.moduleBayTemplateOperations = exports.deviceBayTemplateFields = exports.deviceBayTemplateOperations = exports.deviceBayFields = exports.deviceBayOperations = exports.moduleFields = exports.moduleOperations = exports.moduleBayFields = exports.moduleBayOperations = exports.moduleTypeFields = exports.moduleTypeOperations = exports.siteFields = exports.siteOperations = exports.regionFields = exports.regionOperations = exports.platformFields = exports.platformOperations = exports.deviceRoleFields = exports.deviceRoleOperations = exports.manufacturerFields = exports.manufacturerOperations = exports.interfaceFields = exports.interfaceOperations = exports.deviceTypeFields = exports.deviceTypeOperations = exports.deviceFields = exports.deviceOperations = exports.dcimResources = void 0;
const baseProperties_1 = require("./baseProperties");
exports.dcimResources = [
{
name: 'Device',
value: 'devices',
},
{
name: 'Device Type',
value: 'device-types',
},
{
name: 'Interface',
value: 'interfaces',
},
{
name: 'Manufacturer',
value: 'manufacturers',
},
{
name: 'Module',
value: 'modules',
},
{
name: 'Module Bay',
value: 'module-bays',
},
{
name: 'Module Type',
value: 'module-types',
},
{
name: 'Platform',
value: 'platforms',
},
{
name: 'Site',
value: 'sites',
},
{
name: 'Region',
value: 'regions',
},
];
// Device Operations
exports.deviceOperations = {
...baseProperties_1.baseProperties,
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
},
},
options: [
{
name: 'List',
value: 'list',
description: 'Get all devices',
action: 'List all devices',
},
{
name: 'Get',
value: 'get',
description: 'Get a device by ID',
action: 'Get a device',
},
{
name: 'Create',
value: 'create',
description: 'Create a new device',
action: 'Create a device',
},
{
name: 'Update',
value: 'update',
description: 'Update a device',
action: 'Update a device',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a device',
action: 'Delete a device',
},
{
name: 'Get Interfaces',
value: 'getInterfaces',
description: 'Get all interfaces for a device',
action: 'Get interfaces for device',
},
{
name: 'Get Console Ports',
value: 'getConsolePorts',
description: 'Get all console ports for a device',
action: 'Get console ports for device',
},
{
name: 'Get Config Context',
value: 'getConfigContext',
description: 'Get the configuration context for a device',
action: 'Get config context for device',
},
{
name: 'Assign Tag',
value: 'assignTag',
description: 'Assign a tag to a device',
action: 'Assign tag to a device',
},
],
default: 'list',
};
// Device Fields
exports.deviceFields = [
// List operation fields
{
...baseProperties_1.returnAllOption,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['list', 'getInterfaces', 'getConsolePorts'],
},
},
},
{
...baseProperties_1.limitOption,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['list', 'getInterfaces', 'getConsolePorts'],
returnAll: [false],
},
},
},
{
displayName: 'Filters',
name: 'filters',
type: 'collection',
placeholder: 'Add Filter',
default: {},
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['list'],
},
},
options: [
{
displayName: 'Device ID',
name: 'id',
type: 'number',
default: '',
description: 'Filter by device ID',
},
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
description: 'Filter by device name (case-insensitive)',
},
{
displayName: 'Serial Number',
name: 'serial',
type: 'string',
default: '',
description: 'Filter by device serial number',
},
{
displayName: 'Asset Tag',
name: 'asset_tag',
type: 'string',
default: '',
description: 'Filter by asset tag',
},
{
displayName: 'Site ID',
name: 'site_id',
type: 'number',
default: '',
description: 'Filter by site ID',
},
{
displayName: 'Site Name',
name: 'site',
type: 'string',
default: '',
description: 'Filter by site name (slug)',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{ name: 'Active', value: 'active' },
{ name: 'Decommissioning', value: 'decommissioning' },
{ name: 'Offline', value: 'offline' },
{ name: 'Planned', value: 'planned' },
{ name: 'Failed', value: 'failed' },
{ name: 'Inventory', value: 'inventory' },
{ name: 'Staged', value: 'staged' },
],
default: '',
description: 'Filter by device status',
},
{
displayName: 'Device Role ID',
name: 'role_id',
type: 'number',
default: '',
description: 'Filter by role ID',
},
{
displayName: 'Device Role',
name: 'role',
type: 'string',
default: '',
description: 'Filter by role name (slug)',
},
{
displayName: 'Tenant ID',
name: 'tenant_id',
type: 'number',
default: '',
description: 'Filter by tenant ID',
},
{
displayName: 'Tenant Name',
name: 'tenant',
type: 'string',
default: '',
description: 'Filter by tenant name (slug)',
},
{
displayName: 'Device Type ID',
name: 'device_type_id',
type: 'number',
default: '',
description: 'Filter by device type ID',
},
{
displayName: 'Manufacturer ID',
name: 'manufacturer_id',
type: 'number',
default: '',
description: 'Filter by manufacturer ID',
},
{
displayName: 'Manufacturer Name',
name: 'manufacturer',
type: 'string',
default: '',
description: 'Filter by manufacturer name (slug)',
},
{
displayName: 'Model',
name: 'model',
type: 'string',
default: '',
description: 'Filter by model name (slug)',
},
{
displayName: 'Platform ID',
name: 'platform_id',
type: 'number',
default: '',
description: 'Filter by platform ID',
},
{
displayName: 'Platform Name',
name: 'platform',
type: 'string',
default: '',
description: 'Filter by platform name (slug)',
},
{
displayName: 'Has Primary IP',
name: 'has_primary_ip',
type: 'boolean',
default: '',
description: 'Filter devices with a primary IP address',
},
{
displayName: 'Region ID',
name: 'region_id',
type: 'number',
default: '',
description: 'Filter by region ID',
},
{
displayName: 'Region Name',
name: 'region',
type: 'string',
default: '',
description: 'Filter by region name (slug)',
},
{
displayName: 'Tag',
name: 'tag',
type: 'string',
default: '',
description: 'Filter by tag',
},
],
},
// Get operation fields
{
displayName: 'Device ID',
name: 'deviceId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['get', 'update', 'delete'],
},
},
description: 'ID of the device',
},
// Create operation
{
displayName: 'Name',
name: 'deviceName',
type: 'string',
required: false,
default: undefined,
noDataExpression: false,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['create'],
},
},
description: 'Name of the device',
},
{
displayName: 'Device Type ID',
name: 'device_type_id',
type: 'number',
required: true,
default: undefined,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['create'],
},
},
description: 'ID of the device type',
},
{
displayName: 'Site ID',
name: 'site_id',
type: 'number',
required: true,
default: undefined,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['create'],
},
},
description: 'ID of the site',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['create'],
},
},
options: [
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{ name: 'Active', value: 'active' },
{ name: 'Decommissioning', value: 'decommissioning' },
{ name: 'Offline', value: 'offline' },
{ name: 'Planned', value: 'planned' },
{ name: 'Failed', value: 'failed' },
{ name: 'Inventory', value: 'inventory' },
{ name: 'Staged', value: 'staged' },
],
default: 'active',
description: 'Status of the device',
},
{
displayName: 'Role ID',
name: 'role',
type: 'number',
default: undefined,
description: 'ID of the device role',
},
{
displayName: 'Tenant ID',
name: 'tenant',
type: 'number',
default: undefined,
description: 'ID of the tenant',
},
{
displayName: 'Platform ID',
name: 'platform',
type: 'number',
default: undefined,
description: 'ID of the platform',
},
{
displayName: 'Serial Number',
name: 'serial',
type: 'string',
default: '',
description: 'Serial number of the device',
},
{
displayName: 'Asset Tag',
name: 'asset_tag',
type: 'string',
default: '',
description: 'Asset tag of the device',
},
{
displayName: 'Location ID',
name: 'location',
type: 'number',
default: undefined,
description: 'ID of the location',
},
{
displayName: 'Rack ID',
name: 'rack',
type: 'number',
default: undefined,
description: 'ID of the rack',
},
{
displayName: 'Position',
name: 'position',
type: 'number',
default: undefined,
description: 'Position in the rack',
},
{
displayName: 'Face',
name: 'face',
type: 'options',
options: [
{ name: 'Front', value: 'front' },
{ name: 'Rear', value: 'rear' },
],
default: 'front',
description: 'Mounting face of the device',
},
{
displayName: 'Primary IPv4 ID',
name: 'primary_ip4',
type: 'number',
default: undefined,
description: 'ID of the primary IPv4 address',
},
{
displayName: 'Primary IPv6 ID',
name: 'primary_ip6',
type: 'number',
default: undefined,
description: 'ID of the primary IPv6 address',
},
{
displayName: 'Cluster ID',
name: 'cluster',
type: 'number',
default: undefined,
description: 'ID of the cluster',
},
{
displayName: 'Virtual Chassis ID',
name: 'virtual_chassis',
type: 'number',
default: undefined,
description: 'ID of the virtual chassis',
},
{
displayName: 'VC Position',
name: 'vc_position',
type: 'number',
default: undefined,
description: 'Position in the virtual chassis',
},
{
displayName: 'VC Priority',
name: 'vc_priority',
type: 'number',
default: undefined,
description: 'Priority in the virtual chassis',
},
{
displayName: 'Comments',
name: 'comments',
type: 'string',
default: '',
description: 'Comments for the device',
typeOptions: {
rows: 4,
},
},
{
displayName: 'Tags',
name: 'tags',
type: 'string',
default: '',
description: 'Comma-separated list of tags',
},
{
displayName: 'Custom Fields',
name: 'custom_fields',
type: 'json',
default: '{}',
description: 'Custom fields for the device',
},
],
},
// Update operation fields
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['update'],
},
},
options: [
{
displayName: 'Name',
name: 'name',
type: 'string',
default: undefined,
description: 'Name of the device',
},
{
displayName: 'Device Type ID',
name: 'device_type',
type: 'number',
default: undefined,
description: 'ID of the device type',
},
{
displayName: 'Site ID',
name: 'site',
type: 'number',
default: undefined,
description: 'ID of the site',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
options: [
{ name: 'Active', value: 'active' },
{ name: 'Decommissioning', value: 'decommissioning' },
{ name: 'Offline', value: 'offline' },
{ name: 'Planned', value: 'planned' },
{ name: 'Failed', value: 'failed' },
{ name: 'Inventory', value: 'inventory' },
{ name: 'Staged', value: 'staged' },
],
default: 'active',
description: 'Status of the device',
},
// Include the same additional fields as in the create operation
{
displayName: 'Role ID',
name: 'role',
type: 'number',
default: undefined,
description: 'ID of the device role',
},
{
displayName: 'Tenant ID',
name: 'tenant',
type: 'number',
default: undefined,
description: 'ID of the tenant',
},
{
displayName: 'Platform ID',
name: 'platform',
type: 'number',
default: undefined,
description: 'ID of the platform',
},
{
displayName: 'Serial Number',
name: 'serial',
type: 'string',
default: '',
description: 'Serial number of the device',
},
{
displayName: 'Asset Tag',
name: 'asset_tag',
type: 'string',
default: '',
description: 'Asset tag of the device',
},
{
displayName: 'Location ID',
name: 'location',
type: 'number',
default: undefined,
description: 'ID of the location',
},
{
displayName: 'Rack ID',
name: 'rack',
type: 'number',
default: undefined,
description: 'ID of the rack',
},
{
displayName: 'Position',
name: 'position',
type: 'number',
default: undefined,
description: 'Position in the rack',
},
{
displayName: 'Face',
name: 'face',
type: 'options',
options: [
{ name: 'Front', value: 'front' },
{ name: 'Rear', value: 'rear' },
],
default: 'front',
description: 'Mounting face of the device',
},
{
displayName: 'Primary IPv4 ID',
name: 'primary_ip4',
type: 'number',
default: undefined,
description: 'ID of the primary IPv4 address',
},
{
displayName: 'Primary IPv6 ID',
name: 'primary_ip6',
type: 'number',
default: undefined,
description: 'ID of the primary IPv6 address',
},
{
displayName: 'Cluster ID',
name: 'cluster',
type: 'number',
default: undefined,
description: 'ID of the cluster',
},
{
displayName: 'Virtual Chassis ID',
name: 'virtual_chassis',
type: 'number',
default: undefined,
description: 'ID of the virtual chassis',
},
{
displayName: 'VC Position',
name: 'vc_position',
type: 'number',
default: undefined,
description: 'Position in the virtual chassis',
},
{
displayName: 'VC Priority',
name: 'vc_priority',
type: 'number',
default: undefined,
description: 'Priority in the virtual chassis',
},
{
displayName: 'Comments',
name: 'comments',
type: 'string',
default: '',
description: 'Comments for the device',
typeOptions: {
rows: 4,
},
},
{
displayName: 'Tags',
name: 'tags',
type: 'string',
default: '',
description: 'Comma-separated list of tags',
},
{
displayName: 'Custom Fields',
name: 'custom_fields',
type: 'json',
default: '{}',
description: 'Custom fields for the device',
},
],
},
// Device Tag Assignment Fields
{
displayName: 'Device ID',
name: 'deviceId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['assignTag'],
},
},
description: 'ID of the device',
},
{
displayName: 'Tag Name or ID',
name: 'tagId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['assignTag'],
},
},
description: 'ID or name of the tag to assign',
},
{
displayName: 'Action',
name: 'action',
type: 'options',
options: [
{
name: 'Add Tag',
value: 'add',
},
{
name: 'Remove Tag',
value: 'remove',
},
],
default: 'add',
displayOptions: {
show: {
domain: ['dcim'],
resource: ['devices'],
operation: ['assignTag'],
},
},
description: 'Whether to add or remove the tag',
},
];
// Device Type Operations
exports.deviceTypeOperations = {
...baseProperties_1.baseProperties,
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['device-types'],
},
},
options: [
{
name: 'List',
value: 'list',
description: 'Get all device types',
action: 'List all device types',
},
{
name: 'Get',
value: 'get',
description: 'Get a device type by ID',
action: 'Get a device type',
},
{
name: 'Create',
value: 'create',
description: 'Create a new device type',
action: 'Create a device type',
},
{
name: 'Update',
value: 'update',
description: 'Update a device type',
action: 'Update a device type',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a device type',
action: 'Delete a device type',
},
],
default: 'list',
};
// Device Type Fields
exports.deviceTypeFields = [
// List operation fields
{
...baseProperties_1.returnAllOption,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['device-types'],
operation: ['list'],
},
},
},
{
...baseProperties_1.limitOption,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['device-types'],
operation: ['list'],
returnAll: [false],
},
},
},
{
displayName: 'Filters',
name: 'filters',
type: 'collection',
placeholder: 'Add Filter',
default: {},
displayOptions: {
show: {
domain: ['dcim'],
resource: ['device-types'],
operation: ['list'],
},
},
options: [
{
displayName: 'Device Type ID',
name: 'id',
type: 'number',
default: undefined,
description: 'Filter by device type ID',
},
{
displayName: 'Model',
name: 'model',
type: 'string',
default: '',
description: 'Filter by model name (case-insensitive)',
},
{
displayName: 'Slug',
name: 'slug',
type: 'string',
default: '',
description: 'Filter by slug',
},
{
displayName: 'Part Number',
name: 'part_number',
type: 'string',
default: '',
description: 'Filter by part number',
},
{
displayName: 'Manufacturer ID',
name: 'manufacturer_id',
type: 'number',
default: undefined,
description: 'Filter by manufacturer ID',
},
{
displayName: 'Manufacturer',
name: 'manufacturer',
type: 'string',
default: '',
description: 'Filter by manufacturer name (slug)',
},
{
displayName: 'Has Console Ports',
name: 'console_ports',
type: 'boolean',
default: undefined,
description: 'Has one or more console ports',
},
{
displayName: 'Has Console Server Ports',
name: 'console_server_ports',
type: 'boolean',
default: undefined,
description: 'Has one or more console server ports',
},
{
displayName: 'Has Power Ports',
name: 'power_ports',
type: 'boolean',
default: undefined,
description: 'Has one or more power ports',
},
{
displayName: 'Has Power Outlets',
name: 'power_outlets',
type: 'boolean',
default: undefined,
description: 'Has one or more power outlets',
},
{
displayName: 'Has Interfaces',
name: 'interfaces',
type: 'boolean',
default: undefined,
description: 'Has one or more interfaces',
},
{
displayName: 'Has Pass-Through Ports',
name: 'pass_through_ports',
type: 'boolean',
default: undefined,
description: 'Has one or more pass-through ports',
},
{
displayName: 'Has Device Bays',
name: 'device_bays',
type: 'boolean',
default: undefined,
description: 'Has one or more device bays',
},
{
displayName: 'Tag',
name: 'tag',
type: 'string',
default: '',
description: 'Filter by tag',
},
{
displayName: 'Height (U)',
name: 'u_height',
type: 'number',
default: undefined,
description: 'Filter by rack height in units',
},
{
displayName: 'Is Full Depth',
name: 'is_full_depth',
type: 'boolean',
default: undefined,
description: 'Device consumes both front and rear rack faces',
},
{
displayName: 'Subdevice Role',
name: 'subdevice_role',
type: 'options',
options: [
{ name: 'Parent', value: 'parent' },
{ name: 'Child', value: 'child' },
],
default: '',
description: 'Filter by parent/child role',
},
],
},
// Get operation fields
{
displayName: 'Device Type ID',
name: 'deviceTypeId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
domain: ['dcim'],
resource: ['device-types'],
operation: ['get', 'update', 'delete'],
},
},
description: 'ID of the device type',
},
// Create operation fields
{
displayName: 'Manufacturer ID',
name: 'manufacturer',
type: 'number',
required: true,
default: undefined,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['device-types'],
operation: ['create'],
},
},
description: 'ID of the manufacturer',
},
{
displayName: 'Model',
name: 'model',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
domain: ['dcim'],
resource: ['device-types'],
operation: ['create'],
},
},
description: 'Model name of the device type',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
domain: ['dcim'],
resource: ['device-types'],
operation: ['create'],
},
},
options: [
{
displayName: 'Slug',
name: 'slug',
type: 'string',
default: '',
description: 'Unique slug (URL-friendly identifier)',
},
{
displayName: 'Part Number',
name: 'part_number',
type: 'string',
default: '',
description: 'Manufacturer part number',
},
{
displayName: 'Height (U)',
name: 'u_height',
type: 'number',
default: 1,
description: 'Height in rack units',
},
{
displayName: 'Is Full Depth',
name: 'is_full_depth',
type: 'boolean',
default: true,
description: 'Device consumes both front and rear rack faces',
},
{
displayName: 'Subdevice Role',
name: 'subdevice_role',
type: 'options',
options: [
{ name: 'None', value: '' },
{ name: 'Parent', value: 'parent' },
{ name: 'Child', value: 'child' },
],
default: '',
description: 'Parent/child status in rack',
},
{
displayName: 'Airflow',
name: 'airflow',
type: 'options',
options: [
{ name: 'Front to Rear', value: 'front-to-rear' },
{ name: 'Rear to Front', value: 'rear-to-front' },
{ name: 'Left to Right', value: 'left-to-right' },
{ name: 'Right to Left', value: 'right-to-left' },
{ name: 'Side to Rear', value: 'side-to-rear' },
{ name: 'Passive', value: 'passive' },
{ name: 'Mixed', value: 'mixed' },
],
default: '',
description: 'Airflow direction',
},
{
displayName: 'Weight',
name: 'weight',
type: 'number',
default: undefined,
description: 'Weight of the device type',
},
{
displayName: 'Weight Unit',
name: 'weight_unit',
type: 'options',
options: [
{ name: 'Kilograms', value: 'kg' },
{ name: 'Grams', value: 'g' },
{ name: 'Pounds', value: 'lb' },
{ name: 'Ounces', value: 'oz' },
],
default: 'kg',
description: 'Weight unit',
},
{
displayName: 'Comments',
name: 'comments',
type: 'string',
default: '',
description: 'Comments for the device type',
typeOptions: {
rows: 4,
},
},
{
displayName: 'Tags',
name: 'tags',
type: 'string',
default: '',
description: 'Comma-separated list of tags',
},
{
displayName: 'Custom Fields',
name: 'custom_fields',
type: 'json',
default: '{}',
description: 'Custom fields for the device type',
},
],
},
// Update operation fields
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
domain: ['dcim'],
resource: ['device-types'],
operation: ['update'],
},
},
options: [
{
displayName: 'Manufacturer ID',
name: 'manufacturer',
type: 'number',
default: undefined,
description: 'ID of the manufacturer',
},
{
displayName: 'Model',
name: 'model',
type: 'string',
default: '',
description: 'Model name of the device type',
},
{
displayName: 'Slug',
name: 'slug',
type: 'string',
default: '',
description: 'Unique slug (URL-friendly identifier)',
},
{
displayName: 'Part Number',
name: 'part_number',
type: 'string',
default: '',
description: 'Manufacturer part number',
},
{
displayName: 'Height (U)',
name: 'u_height',
type: 'number',
default: 1,
description: 'Height in rack units',
},
{
displayName: 'Is Full Depth',
name: 'is_full_depth',
type: 'boolean',
default: true,
description: 'Device consumes both front and rear rack faces',
},
{
displayName: 'Subdevice Role',
name: 'subdevice_role',
type: 'options',
options: [
{ name: 'None', value: '' },
{ name: 'Parent', value: 'parent' },
{ name: 'Child', value: 'child' },
],
default: '',
description: 'Parent/child status in rack',
},
{
displayName: 'Airflow',
name: 'airflow',
type: 'options',
options: [
{ name: 'Front to Rear', value: 'front-to-rear' },
{ name: 'Rear to Front', value: 'rear-to-front' },
{ name: 'Left to Right', value: 'left-to-right' },
{ name: 'Right to Left', value: 'right-to-left' },
{ name: 'Side to Rear', value: 'side-to-rear' },
{ name: 'Passive', value: 'passive' },
{ name: 'Mixed', value: 'mixed' },
],
default: '',
description: 'Airflow direction',
},
{
displayName: 'Weight',
name: 'weight',
type: 'number',
default: undefined,
description: 'Weight of the device type',
},
{
displayName: 'Weight Unit',
name: 'weight_unit',
type: 'options',
options: [
{ name: 'Kilograms', value: 'kg' },
{ name: 'Grams', value: 'g' },
{ name: 'Pounds', value: 'lb' },
{ name: 'Ounces', value: 'oz' },
],
default: 'kg',
description: 'Weight unit',
},
{
displayName: 'Comments',
name: 'comments',
type: 'string',
default: '',
description: 'Comments for the device type',
typeOptions: {
rows: 4,
},
},
{
displayName: 'Tags',
name: 'tags',
type: 'string',
default: '',
description: 'Comma-separated list of tags',
},
{
displayName: 'Custom Fields',
name: 'custom_fields',
type: 'json',
default: '{}',
description: 'Custom fields for the device type',
},
],
},
];
exports.interfaceOperations = {
...baseProperties_1.baseProperties,
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['interfaces'],
},
},
options: [
{
name: 'List',
value: 'list',
description: 'Get all interfaces',
action: 'List all interfaces',
},
{
name: 'Get',
value: 'get',
description: 'Get an interface by ID',
action: 'Get an interface',
},
{
name: 'Create',
value: 'create',
description: 'Create a new interface',
action: 'Create an interface',
},
{
name: 'Update',
value: 'update',
description: 'Update an interface',
action: 'Update an interface',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete an interface',
action: 'Delete an interface',
},
{
name: 'Get Connections',
value: 'getConnections',
description: 'Get interface connections',
action: 'Get interface connections',
},
],
default: 'list',
};
exports.interfaceFields = [
// List operation fields
{
...baseProperties_1.returnAllOption,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['interfaces'],
operation: ['list'],
},
},
},
{
...baseProperties_1.limitOption,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['interfaces'],
operation: ['list'],
returnAll: [false],
},
},
},
{
displayName: 'Filters',
name: 'filters',
type: 'collection',
placeholder: 'Add Filter',
default: {},
displayOptions: {
show: {
domain: ['dcim'],
resource: ['interfaces'],
operation: ['list'],
},
},
options: [
{
displayName: 'Interface ID',
name: 'id',
type: 'number',
default: undefined,
description: 'Filter by interface ID',
},
{
displayName: 'Name',
name: 'name',
type: 'string',
default: undefined,
description: 'Filter by interface name',
},
{
displayName: 'Device Name',
name: 'device',
type: 'string',
default: '',
description: 'Filter by device name',
},
{
displayName: 'Device ID',
name: 'device_id',
type: 'number',
default: undefined,
description: 'Filter by device ID',
},
{
displayName: 'Type',
name: 'type',
type: 'options',
default: '',
options: [
{ name: 'Virtual', value: 'virtual' },
{ name: '1000BASE-T (1GE)', value: '1000base-t' },
{ name: '10GBASE-T (10GE)', value: '10gbase-t' },
{ name: 'SFP (1GE)', value: '1gbase-sfp' },
{ name: 'SFP+ (10GE)', value: '10gbase-sfp' },
{ name: 'SFP28 (25GE)', value: '25gbase-x-sfp28' },
{ name: 'QSFP+ (40GE)', value: '40gbase-x-qsfpp' },
{ name: 'QSFP28 (100GE)', value: '100gbase-x-qsfp28' },
{ name: 'IEEE 802.11a', value: 'ieee802.11a' },
{ name: 'IEEE 802.11b/g', value: 'ieee802.11bg' },
{ name: 'IEEE 802.11n', value: 'ieee802.11n' },
{ name: 'IEEE 802.11ac', value: 'ieee802.11ac' },
{ name: 'IEEE 802.11ad', value: 'ieee802.11ad' },
{ name: 'IEEE 802.11ax', value: 'ieee802.11ax' },
{ name: 'Other', value: 'other' },
],
description: 'Filter by interface type',
},
{
displayName: 'Enabled',
name: 'enabled',
type: 'boolean',
default: undefined,
description: 'Filter by enabled status',
},
{
displayName: 'Management Only',
name: 'mgmt_only',
type: 'boolean',
default: undefined,
description: 'Filter by management only status',
},
{
displayName: 'MAC Address',
name: 'mac_address',
type: 'string',
default: '',
description: 'Filter by MAC address',
},
{
displayName: 'LAG ID',
name: 'lag_id',
type: 'number',
default: undefined,
description: 'Filter by parent LAG ID',
},
{
displayName: 'VLAN ID',
name: 'vlan_id',
type: 'number',
default: undefined,
description: 'Filter by assigned VLAN ID',
},
{
displayName: 'VLAN Name',
name: 'vlan',
type: 'string',
default: '',
description: 'Filter by VLAN name',
},
{
displayName: 'Connected',
name: 'connected',
type: 'boolean',
default: undefined,
description: 'Filter by connection status',
},
{
displayName: 'Kind',
name: 'kind',
type: 'options',
options: [
{ name: 'Physical', value: 'physical' },
{ name: 'Virtual', value: 'virtual' },
{ name: 'Wireless', value: 'wireless' },
],
default: '',
description: 'Filter by kind',
},
{
displayName: 'Tag',
name: 'tag',
type: 'string',
default: '',
description: 'Filter by tag',
},
],
},
// Get operation fields
{
displayName: 'Interface ID',
name: 'interfaceId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
domain: ['dcim'],
resource: ['interfaces'],
operation: ['get', 'update', 'delete', 'getConnections'],
},
},
description: 'ID of the interface',
},
// Create operation fields
{
displayName: 'Device ID',
name: 'device_id',
type: 'number',
required: true,
default: undefined,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['interfaces'],
operation: ['create'],
},
},
description: 'ID of the device to associate with this interface',
},
{
displayName: 'Name',
name: 'interfaceName',
type: 'string',
required: false,
default: undefined,
noDataExpression: false,
displayOptions: {
show: {
domain: ['dcim'],
resource: ['interfaces'],
operation: ['create'],
},
},
description: 'Name of the interface',
},
{
displayName: 'Type',
name: 'type',
type: 'options',
required: true,
default: 'virtual',
displayOptions: {
show: {
domain: ['dcim'],
resource: ['interfaces'],
operation: ['create'],
},
},
options: [
{ name: 'Virtual', value: 'virtual' },
{ name: '1000BASE-T (1GE)', value: '1000base-t' },
{ name: '10GBASE-T (10GE)', value: '10gbase-t' },
{ name: 'SFP (1GE)', value: '1gbase-sfp' },
{ name: 'SFP+ (10GE)', value: '10gbase-sfp' },
{ name: 'SFP28 (25GE)', value: '25gbase-x-sfp28' },
{ name: 'QSFP+ (40GE)', value: '40gbase-x-qsfpp' },
{ name: 'QSFP28 (100GE)', value: '100gbase-x-qsfp28' },
{ name: 'IEEE 802.11a', value: 'ieee802.11a' },
{ name: 'IEEE 802.11b/g', value: 'ieee802.11bg' },
{ name: 'IEEE 802.11n', value: 'ieee802.11n' },
{ name: 'IEEE 802.11ac', value: 'ieee802.11ac' },
{ name: 'IEEE 802.11ad', value: 'ieee802.11ad' },
{ name: 'IEEE 802.11ax', value: 'ieee802.11ax' },
{ name: 'Other', value: 'other' },