UNPKG

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
"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' },