UNPKG

n8n-nodes-netbox

Version:

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

6,068 lines 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: undefined,
                description: 'Filter by device ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                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: undefined,
                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: undefined,
                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: undefined,
                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: undefined,
                description: 'Filter by device type ID',
            },
            {
                displayName: 'Manufacturer ID',
                name: 'manufacturer_id',
                type: 'number',
                default: undefined,
                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: undefined,
                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: undefined,
                description: 'Filter devices with a primary IP address',
            },
            {
                displayName: 'Region ID',
                name: 'region_id',
                type: 'number',
                default: undefined,
                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' },
        ],
        description: 'Type of the interface',
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['interfaces'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Enabled',
                name: 'enabled',
                type: 'boolean',
                default: true,
                description: 'Whether the interface is enabled',
            },
            {
                displayName: 'LAG Interface ID',
                name: 'lag',
                type: 'number',
                default: undefined,
                description: 'Parent LAG interface ID',
            },
            {
                displayName: 'MTU',
                name: 'mtu',
                type: 'number',
                default: undefined,
                description: 'Maximum transmission unit',
            },
            {
                displayName: 'MAC Address',
                name: 'mac_address',
                type: 'string',
                default: '',
                description: 'MAC address of the interface',
            },
            {
                displayName: 'Management Only',
                name: 'mgmt_only',
                type: 'boolean',
                default: false,
                description: 'Whether this interface is used only for management',
            },
            {
                displayName: 'Description',
                name: 'interfaceDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the interface',
            },
            {
                displayName: 'Mode',
                name: 'mode',
                type: 'options',
                options: [
                    { name: 'Access', value: 'access' },
                    { name: 'Tagged', value: 'tagged' },
                    { name: 'Tagged (All)', value: 'tagged-all' },
                ],
                default: '',
                description: 'Mode of the interface (for L2 interfaces)',
            },
            {
                displayName: 'Untagged VLAN ID',
                name: 'untagged_vlan',
                type: 'number',
                default: undefined,
                description: 'ID of the untagged VLAN',
            },
            {
                displayName: 'Tagged VLANs',
                name: 'tagged_vlans',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tagged VLAN IDs',
            },
            {
                displayName: 'Mark Connected',
                name: 'mark_connected',
                type: 'boolean',
                default: false,
                description: 'Treat as if a cable is connected',
            },
            {
                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 interface',
            },
        ],
    },
    // Update operation fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['interfaces'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Device ID',
                name: 'device',
                type: 'number',
                default: undefined,
                description: 'ID of the device',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Name of the interface',
            },
            {
                displayName: 'Type',
                name: 'type',
                type: 'options',
                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' },
                ],
                default: 'virtual',
                description: 'Type of the interface',
            },
            {
                displayName: 'Enabled',
                name: 'enabled',
                type: 'boolean',
                default: undefined,
                description: 'Whether the interface is enabled',
            },
            {
                displayName: 'LAG Interface ID',
                name: 'lag',
                type: 'number',
                default: undefined,
                description: 'Parent LAG interface ID',
            },
            {
                displayName: 'MTU',
                name: 'mtu',
                type: 'number',
                default: undefined,
                description: 'Maximum transmission unit',
            },
            {
                displayName: 'MAC Address',
                name: 'mac_address',
                type: 'string',
                default: '',
                description: 'MAC address of the interface',
            },
            {
                displayName: 'Management Only',
                name: 'mgmt_only',
                type: 'boolean',
                default: undefined,
                description: 'Whether this interface is used only for management',
            },
            {
                displayName: 'Description',
                name: 'interfaceDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the interface',
            },
            {
                displayName: 'Mode',
                name: 'mode',
                type: 'options',
                options: [
                    { name: 'Access', value: 'access' },
                    { name: 'Tagged', value: 'tagged' },
                    { name: 'Tagged (All)', value: 'tagged-all' },
                ],
                default: '',
                description: 'Mode of the interface (for L2 interfaces)',
            },
            {
                displayName: 'Untagged VLAN ID',
                name: 'untagged_vlan',
                type: 'number',
                default: undefined,
                description: 'ID of the untagged VLAN',
            },
            {
                displayName: 'Tagged VLANs',
                name: 'tagged_vlans',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tagged VLAN IDs',
            },
            {
                displayName: 'Mark Connected',
                name: 'mark_connected',
                type: 'boolean',
                default: undefined,
                description: 'Treat as if a cable is connected',
            },
            {
                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 interface',
            },
        ],
    },
];
exports.manufacturerOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['manufacturers'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all manufacturers',
            action: 'List all manufacturers',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a manufacturer by ID',
            action: 'Get a manufacturer',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new manufacturer',
            action: 'Create a manufacturer',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a manufacturer',
            action: 'Update a manufacturer',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a manufacturer',
            action: 'Delete a manufacturer',
        },
    ],
    default: 'list',
};
exports.manufacturerFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['manufacturers'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['manufacturers'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['manufacturers'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Manufacturer ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by manufacturer ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Filter by manufacturer name',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'Filter by manufacturer slug',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Filter by description',
            },
            {
                displayName: 'Tag',
                name: 'tag',
                type: 'string',
                default: '',
                description: 'Filter by tag',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Manufacturer ID',
        name: 'manufacturerId',
        type: 'string',
        required: true,
        default: '',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['manufacturers'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the manufacturer',
    },
    // Create operation fields
    {
        displayName: 'Name',
        name: 'manufacturerName',
        type: 'string',
        required: false,
        default: undefined,
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['manufacturers'],
                operation: ['create'],
            },
        },
        description: 'Name of the manufacturer',
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['manufacturers'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'URL-friendly slug (leave blank for automatic generation)',
            },
            {
                displayName: 'Description',
                name: 'manufacturerDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the manufacturer',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 manufacturer',
            },
        ],
    },
    // Update operation fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['manufacturers'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Name of the manufacturer',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'URL-friendly slug',
            },
            {
                displayName: 'Description',
                name: 'manufacturerDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the manufacturer',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 manufacturer',
            },
        ],
    },
];
exports.deviceRoleOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['deviceRoles'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all device roles',
            action: 'List all device roles',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a device role',
            action: 'Get a device role',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a device role',
            action: 'Create a device role',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a device role',
            action: 'Update a device role',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a device role',
            action: 'Delete a device role',
        },
    ],
    default: 'list',
};
exports.deviceRoleFields = [
    // List operation fields
    {
        displayName: 'Return All',
        name: 'returnAll',
        type: 'boolean',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['deviceRoles'],
                operation: ['list'],
            },
        },
        default: false,
        description: 'Whether to return all results or only up to a given limit',
    },
    {
        displayName: 'Limit',
        name: 'limit',
        type: 'number',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['deviceRoles'],
                operation: ['list'],
                returnAll: [false],
            },
        },
        typeOptions: {
            minValue: 1,
            maxValue: 1000,
        },
        default: 50,
        description: 'Max number of results to return',
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['deviceRoles'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Filter by device role name',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'Filter by slug',
            },
            {
                displayName: 'Color',
                name: 'color',
                type: 'string',
                default: '',
                description: 'Filter by color (hex code)',
            },
            {
                displayName: 'VM Role',
                name: 'vm_role',
                type: 'boolean',
                default: undefined,
                description: 'Filter by VM role status',
            },
            {
                displayName: 'Tag',
                name: 'tag',
                type: 'string',
                default: '',
                description: 'Filter by tag',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Device Role ID',
        name: 'deviceRoleId',
        type: 'string',
        required: true,
        default: '',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['deviceRoles'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the device role',
    },
    // Create operation fields
    {
        displayName: 'Name',
        name: 'deviceRoleName',
        type: 'string',
        required: false,
        default: undefined,
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['deviceRoles'],
                operation: ['create'],
            },
        },
        description: 'Name of the device role',
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['deviceRoles'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'URL-friendly slug (leave blank for automatic generation)',
            },
            {
                displayName: 'Color',
                name: 'color',
                type: 'string',
                default: '',
                description: 'Color code in hexadecimal format (e.g., ff0000 for red)',
            },
            {
                displayName: 'VM Role',
                name: 'vm_role',
                type: 'boolean',
                default: false,
                description: 'Whether this role applies to virtual machines',
            },
            {
                displayName: 'Description',
                name: 'deviceRoleDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the device role',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 role',
            },
        ],
    },
    // Update operation fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['deviceRoles'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Name of the device role',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'URL-friendly slug',
            },
            {
                displayName: 'Color',
                name: 'color',
                type: 'string',
                default: '',
                description: 'Color code in hexadecimal format (e.g., ff0000 for red)',
            },
            {
                displayName: 'VM Role',
                name: 'vm_role',
                type: 'boolean',
                default: undefined,
                description: 'Whether this role applies to virtual machines',
            },
            {
                displayName: 'Description',
                name: 'deviceRoleDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the device role',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 role',
            },
        ],
    },
];
exports.platformOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['platforms'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all platforms',
            action: 'List all platforms',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a platform by ID',
            action: 'Get a platform',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new platform',
            action: 'Create a platform',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a platform',
            action: 'Update a platform',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a platform',
            action: 'Delete a platform',
        },
    ],
    default: 'list',
};
exports.platformFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['platforms'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['platforms'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['platforms'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Platform ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by platform ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Filter by platform name',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'Filter by platform slug',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Filter by description',
            },
            {
                displayName: 'Manufacturer ID',
                name: 'manufacturer_id',
                type: 'number',
                default: undefined,
                description: 'Filter by manufacturer ID',
            },
            {
                displayName: 'Manufacturer Name',
                name: 'manufacturer',
                type: 'string',
                default: '',
                description: 'Filter by manufacturer name (slug)',
            },
            {
                displayName: 'NAPALM Driver',
                name: 'napalm_driver',
                type: 'string',
                default: '',
                description: 'Filter by NAPALM driver name',
            },
            {
                displayName: 'Tag',
                name: 'tag',
                type: 'string',
                default: '',
                description: 'Filter by tag',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Platform ID',
        name: 'platformId',
        type: 'string',
        required: true,
        default: '',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['platforms'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the platform',
    },
    // Create operation fields
    {
        displayName: 'Name',
        name: 'platformName',
        type: 'string',
        required: false,
        default: undefined,
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['platforms'],
                operation: ['create'],
            },
        },
        description: 'Name of the platform',
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['platforms'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'URL-friendly slug (leave blank for automatic generation)',
            },
            {
                displayName: 'Manufacturer ID',
                name: 'manufacturer',
                type: 'number',
                default: undefined,
                description: 'ID of the manufacturer',
            },
            {
                displayName: 'NAPALM Driver',
                name: 'napalm_driver',
                type: 'string',
                default: '',
                description: 'Name of the NAPALM driver to use when interacting with devices',
            },
            {
                displayName: 'NAPALM Arguments',
                name: 'napalm_args',
                type: 'json',
                default: '{}',
                description: 'Additional arguments to pass to the NAPALM driver (as JSON object)',
            },
            {
                displayName: 'Description',
                name: 'platformDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the platform',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 platform',
            },
        ],
    },
    // Update operation fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['platforms'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Name of the platform',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'URL-friendly slug',
            },
            {
                displayName: 'Manufacturer ID',
                name: 'manufacturer',
                type: 'number',
                default: undefined,
                description: 'ID of the manufacturer',
            },
            {
                displayName: 'NAPALM Driver',
                name: 'napalm_driver',
                type: 'string',
                default: '',
                description: 'Name of the NAPALM driver to use when interacting with devices',
            },
            {
                displayName: 'NAPALM Arguments',
                name: 'napalm_args',
                type: 'json',
                default: '{}',
                description: 'Additional arguments to pass to the NAPALM driver (as JSON object)',
            },
            {
                displayName: 'Description',
                name: 'platformDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the platform',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 platform',
            },
        ],
    },
];
exports.regionOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['regions'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all regions',
            action: 'List all regions',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a region by ID',
            action: 'Get a region',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new region',
            action: 'Create a region',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a region',
            action: 'Update a region',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a region',
            action: 'Delete a region',
        },
        {
            name: 'Get Sites',
            value: 'getSites',
            description: 'Get sites in a region',
            action: 'Get sites in a region',
        },
    ],
    default: 'list',
};
exports.regionFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['regions'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['regions'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['regions'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Region ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by region ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Filter by region name',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'Filter by region slug',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Filter by description',
            },
            {
                displayName: 'Parent Region ID',
                name: 'parent_id',
                type: 'number',
                default: undefined,
                description: 'Filter by parent region ID',
            },
            {
                displayName: 'Parent Region Name',
                name: 'parent',
                type: 'string',
                default: '',
                description: 'Filter by parent region name (slug)',
            },
            {
                displayName: 'Tag',
                name: 'tag',
                type: 'string',
                default: '',
                description: 'Filter by tag',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Region ID',
        name: 'regionId',
        type: 'string',
        required: true,
        default: '',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['regions'],
                operation: ['get', 'update', 'delete', 'getSites'],
            },
        },
        description: 'ID of the region',
    },
    // Create operation fields
    {
        displayName: 'Name',
        name: 'regionName',
        type: 'string',
        required: false,
        default: undefined,
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['regions'],
                operation: ['create'],
            },
        },
        description: 'Name of the region',
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['regions'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'URL-friendly slug (leave blank for automatic generation)',
            },
            {
                displayName: 'Parent Region ID',
                name: 'parent',
                type: 'number',
                default: undefined,
                description: 'ID of the parent region',
            },
            {
                displayName: 'Description',
                name: 'regionDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the region',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 region',
            },
        ],
    },
    // Update operation fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['regions'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Name of the region',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'URL-friendly slug',
            },
            {
                displayName: 'Parent Region ID',
                name: 'parent',
                type: 'number',
                default: undefined,
                description: 'ID of the parent region',
            },
            {
                displayName: 'Description',
                name: 'regionDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the region',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 region',
            },
        ],
    },
    // Get Sites operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['regions'],
                operation: ['getSites'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['regions'],
                operation: ['getSites'],
                returnAll: [false],
            },
        },
    },
];
exports.siteOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['sites'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all sites',
            action: 'List all sites',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a site by ID',
            action: 'Get a site',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new site',
            action: 'Create a site',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a site',
            action: 'Update a site',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a site',
            action: 'Delete a site',
        },
        {
            name: 'Get Devices',
            value: 'getDevices',
            description: 'Get devices at a site',
            action: 'Get devices at a site',
        },
        {
            name: 'Get Racks',
            value: 'getRacks',
            description: 'Get racks at a site',
            action: 'Get racks at a site',
        },
    ],
    default: 'list',
};
exports.siteFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Site ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by site ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Filter by site name',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'Filter by site slug',
            },
            {
                displayName: 'Facility',
                name: 'facility',
                type: 'string',
                default: '',
                description: 'Filter by facility code',
            },
            {
                displayName: 'Status',
                name: 'status',
                type: 'options',
                options: [
                    { name: 'Active', value: 'active' },
                    { name: 'Planned', value: 'planned' },
                    { name: 'Staging', value: 'staging' },
                    { name: 'Decommissioning', value: 'decommissioning' },
                    { name: 'Retired', value: 'retired' },
                ],
                default: '',
                description: 'Filter by site status',
            },
            {
                displayName: 'Region ID',
                name: 'region_id',
                type: 'number',
                default: undefined,
                description: 'Filter by region ID',
            },
            {
                displayName: 'Region Name',
                name: 'region',
                type: 'string',
                default: '',
                description: 'Filter by region name (slug)',
            },
            {
                displayName: 'Site Group ID',
                name: 'group_id',
                type: 'number',
                default: undefined,
                description: 'Filter by site group ID',
            },
            {
                displayName: 'Site Group Name',
                name: 'group',
                type: 'string',
                default: '',
                description: 'Filter by site group name (slug)',
            },
            {
                displayName: 'Tenant ID',
                name: 'tenant_id',
                type: 'number',
                default: undefined,
                description: 'Filter by tenant ID',
            },
            {
                displayName: 'Tenant Name',
                name: 'tenant',
                type: 'string',
                default: '',
                description: 'Filter by tenant name (slug)',
            },
            {
                displayName: 'Latitude',
                name: 'latitude',
                type: 'number',
                default: undefined,
                description: 'Filter by latitude (approximate)',
            },
            {
                displayName: 'Longitude',
                name: 'longitude',
                type: 'number',
                default: undefined,
                description: 'Filter by longitude (approximate)',
            },
            {
                displayName: 'Search',
                name: 'q',
                type: 'string',
                default: '',
                description: 'Search term across multiple fields',
            },
            {
                displayName: 'Tag',
                name: 'tag',
                type: 'string',
                default: '',
                description: 'Filter by tag',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Site ID',
        name: 'siteId',
        type: 'string',
        required: true,
        default: '',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['get', 'update', 'delete', 'getDevices', 'getRacks'],
            },
        },
        description: 'ID of the site',
    },
    // Create operation fields
    {
        displayName: 'Name',
        name: 'siteName',
        type: 'string',
        required: false,
        default: undefined,
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['create'],
            },
        },
        description: 'Name of the site',
    },
    {
        displayName: 'Status',
        name: 'status',
        type: 'options',
        options: [
            { name: 'Active', value: 'active' },
            { name: 'Planned', value: 'planned' },
            { name: 'Staging', value: 'staging' },
            { name: 'Decommissioning', value: 'decommissioning' },
            { name: 'Retired', value: 'retired' },
        ],
        default: 'active',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['create'],
            },
        },
        description: 'Status of the site',
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: '',
                description: 'URL-friendly slug (leave blank for automatic generation)',
            },
            {
                displayName: 'Region ID',
                name: 'region',
                type: 'number',
                default: undefined,
                description: 'ID of the region',
            },
            {
                displayName: 'Site Group ID',
                name: 'group',
                type: 'number',
                default: undefined,
                description: 'ID of the site group',
            },
            {
                displayName: 'Tenant Name or ID',
                name: 'tenant',
                type: 'string',
                default: '',
                description: 'Tenant name, slug, or ID. Will be resolved automatically.',
                hint: 'You can enter either the tenant ID (number), tenant name, or tenant slug',
            },
            {
                displayName: 'Facility',
                name: 'facility',
                type: 'string',
                default: '',
                description: 'Facility code/ID',
            },
            {
                displayName: 'ASN',
                name: 'asn',
                type: 'number',
                default: undefined,
                description: 'Autonomous System Number',
            },
            {
                displayName: 'Time Zone',
                name: 'time_zone',
                type: 'string',
                default: '',
                description: 'Time zone (e.g. America/New_York)',
            },
            {
                displayName: 'Description',
                name: 'siteDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the site',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                displayName: 'Physical Address',
                name: 'physical_address',
                type: 'string',
                default: '',
                description: 'Physical address of the site',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                displayName: 'Shipping Address',
                name: 'shipping_address',
                type: 'string',
                default: '',
                description: 'Shipping address of the site',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                displayName: 'Latitude',
                name: 'latitude',
                type: 'number',
                default: undefined,
                typeOptions: {
                    numberPrecision: 6,
                },
                description: 'GPS coordinate (latitude)',
            },
            {
                displayName: 'Longitude',
                name: 'longitude',
                type: 'number',
                default: undefined,
                typeOptions: {
                    numberPrecision: 6,
                },
                description: 'GPS coordinate (longitude)',
            },
            {
                displayName: 'Contact Name',
                name: 'contact_name',
                type: 'string',
                default: '',
                description: 'Name of the contact person for this site',
            },
            {
                displayName: 'Contact Phone',
                name: 'contact_phone',
                type: 'string',
                default: '',
                description: 'Phone number of the contact person',
            },
            {
                displayName: 'Contact Email',
                name: 'contact_email',
                type: 'string',
                default: '',
                description: 'Email address of the contact person',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Additional comments',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 site',
            },
        ],
    },
    // Update operation fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Name of the site',
            },
            {
                displayName: 'Slug',
                name: 'slug',
                type: 'string',
                default: undefined,
                description: 'URL-friendly slug',
            },
            {
                displayName: 'Status',
                name: 'status',
                type: 'options',
                options: [
                    { name: 'Active', value: 'active' },
                    { name: 'Planned', value: 'planned' },
                    { name: 'Staging', value: 'staging' },
                    { name: 'Decommissioning', value: 'decommissioning' },
                    { name: 'Retired', value: 'retired' },
                ],
                default: '',
                description: 'Status of the site',
            },
            {
                displayName: 'Region ID',
                name: 'region',
                type: 'number',
                default: undefined,
                description: 'ID of the region',
            },
            {
                displayName: 'Site Group ID',
                name: 'group',
                type: 'number',
                default: undefined,
                description: 'ID of the site group',
            },
            {
                displayName: 'Tenant ID',
                name: 'tenant',
                type: 'number',
                default: undefined,
                description: 'ID of the tenant',
            },
            {
                displayName: 'Facility',
                name: 'facility',
                type: 'string',
                default: '',
                description: 'Facility code/ID',
            },
            {
                displayName: 'ASN',
                name: 'asn',
                type: 'number',
                default: undefined,
                description: 'Autonomous System Number',
            },
            {
                displayName: 'Time Zone',
                name: 'time_zone',
                type: 'string',
                default: '',
                description: 'Time zone (e.g. America/New_York)',
            },
            {
                displayName: 'Description',
                name: 'siteDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the site',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                displayName: 'Physical Address',
                name: 'physical_address',
                type: 'string',
                default: '',
                description: 'Physical address of the site',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                displayName: 'Shipping Address',
                name: 'shipping_address',
                type: 'string',
                default: '',
                description: 'Shipping address of the site',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                displayName: 'Latitude',
                name: 'latitude',
                type: 'number',
                default: undefined,
                typeOptions: {
                    numberPrecision: 6,
                },
                description: 'GPS coordinate (latitude)',
            },
            {
                displayName: 'Longitude',
                name: 'longitude',
                type: 'number',
                default: undefined,
                typeOptions: {
                    numberPrecision: 6,
                },
                description: 'GPS coordinate (longitude)',
            },
            {
                displayName: 'Contact Name',
                name: 'contact_name',
                type: 'string',
                default: '',
                description: 'Name of the contact person for this site',
            },
            {
                displayName: 'Contact Phone',
                name: 'contact_phone',
                type: 'string',
                default: '',
                description: 'Phone number of the contact person',
            },
            {
                displayName: 'Contact Email',
                name: 'contact_email',
                type: 'string',
                default: '',
                description: 'Email address of the contact person',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Additional comments',
                typeOptions: {
                    rows: 3,
                },
            },
            {
                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 site',
            },
        ],
    },
    // Get Devices operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['getDevices', 'getRacks'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['sites'],
                operation: ['getDevices', 'getRacks'],
                returnAll: [false],
            },
        },
    },
];
// Module Types Operations
exports.moduleTypeOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['module-types'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all module types',
            action: 'List all module types',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a module type by ID',
            action: 'Get a module type',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new module type',
            action: 'Create a module type',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a module type',
            action: 'Update a module type',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a module type',
            action: 'Delete a module type',
        },
    ],
    default: 'list',
};
// Module Types Fields
exports.moduleTypeFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-types'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-types'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-types'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Module Type ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by module type ID',
            },
            {
                displayName: 'Model',
                name: 'model',
                type: 'string',
                default: '',
                description: 'Filter by model name',
            },
            {
                displayName: 'Manufacturer ID',
                name: 'manufacturer_id',
                type: 'number',
                default: undefined,
                description: 'Filter by manufacturer ID',
            },
            {
                displayName: 'Part Number',
                name: 'part_number',
                type: 'string',
                default: '',
                description: 'Filter by part number',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Module Type ID',
        name: 'moduleTypeId',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-types'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the module type',
    },
    // Create operation fields
    {
        displayName: 'Model',
        name: 'model',
        type: 'string',
        required: true,
        default: '',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-types'],
                operation: ['create'],
            },
        },
        description: 'Model name of the module type',
    },
    {
        displayName: 'Manufacturer ID',
        name: 'manufacturer',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-types'],
                operation: ['create'],
            },
        },
        description: 'ID of the manufacturer',
    },
    // Additional fields for create operation
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-types'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Part Number',
                name: 'part_number',
                type: 'string',
                default: '',
                description: 'Part number of the module type',
            },
            {
                displayName: 'Weight',
                name: 'weight',
                type: 'number',
                default: undefined,
                description: 'Weight of the module 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: 'Unit of weight measurement',
            },
            {
                displayName: 'Description',
                name: 'moduleTypeDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the module type',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Comments about the module type',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the module type',
            },
        ],
    },
    // Update fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-types'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Model',
                name: 'model',
                type: 'string',
                default: '',
                description: 'Model name of the module type',
            },
            {
                displayName: 'Manufacturer ID',
                name: 'manufacturer',
                type: 'number',
                default: undefined,
                description: 'ID of the manufacturer',
            },
            {
                displayName: 'Part Number',
                name: 'part_number',
                type: 'string',
                default: '',
                description: 'Part number of the module type',
            },
            {
                displayName: 'Weight',
                name: 'weight',
                type: 'number',
                default: undefined,
                description: 'Weight of the module 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: 'Unit of weight measurement',
            },
            {
                displayName: 'Description',
                name: 'moduleTypeDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the module type',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Comments about the module type',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the module type',
            },
        ],
    },
];
// Module Bays Operations
exports.moduleBayOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['module-bays'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all module bays',
            action: 'List all module bays',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a module bay by ID',
            action: 'Get a module bay',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new module bay',
            action: 'Create a module bay',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a module bay',
            action: 'Update a module bay',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a module bay',
            action: 'Delete a module bay',
        },
    ],
    default: 'list',
};
// Module Bays Fields
exports.moduleBayFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bays'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bays'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bays'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Module Bay ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by module bay ID',
            },
            {
                displayName: 'Device ID',
                name: 'device_id',
                type: 'number',
                default: undefined,
                description: 'Filter by device ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Filter by module bay name',
            },
            {
                displayName: 'Position',
                name: 'position',
                type: 'string',
                default: '',
                description: 'Filter by position',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Module Bay ID',
        name: 'moduleBayId',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bays'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the module bay',
    },
    // Create operation fields
    {
        displayName: 'Device ID',
        name: 'device',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bays'],
                operation: ['create'],
            },
        },
        description: 'ID of the device',
    },
    {
        displayName: 'Name',
        name: 'moduleBayName',
        type: 'string',
        required: false,
        default: undefined,
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bays'],
                operation: ['create'],
            },
        },
        description: 'Name of the module bay',
    },
    // Additional fields for create operation
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bays'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Installed Module ID',
                name: 'installed_module',
                type: 'number',
                default: undefined,
                description: 'ID of the installed module',
            },
            {
                displayName: 'Label',
                name: 'label',
                type: 'string',
                default: '',
                description: 'Label for the module bay',
            },
            {
                displayName: 'Position',
                name: 'position',
                type: 'string',
                default: '',
                description: 'Position of the module bay',
            },
            {
                displayName: 'Description',
                name: 'moduleBayDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the module bay',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the module bay',
            },
        ],
    },
    // Update fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bays'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Device ID',
                name: 'device',
                type: 'number',
                default: undefined,
                description: 'ID of the device',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: undefined,
                description: 'Name of the module bay',
            },
            {
                displayName: 'Installed Module ID',
                name: 'installed_module',
                type: 'number',
                default: undefined,
                description: 'ID of the installed module',
            },
            {
                displayName: 'Label',
                name: 'label',
                type: 'string',
                default: '',
                description: 'Label for the module bay',
            },
            {
                displayName: 'Position',
                name: 'position',
                type: 'string',
                default: '',
                description: 'Position of the module bay',
            },
            {
                displayName: 'Description',
                name: 'moduleBayDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the module bay',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the module bay',
            },
        ],
    },
];
// Modules Operations
exports.moduleOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['modules'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all modules',
            action: 'List all modules',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a module by ID',
            action: 'Get a module',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new module',
            action: 'Create a module',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a module',
            action: 'Update a module',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a module',
            action: 'Delete a module',
        },
    ],
    default: 'list',
};
// Modules Fields
exports.moduleFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['modules'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['modules'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['modules'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Module ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by module ID',
            },
            {
                displayName: 'Device ID',
                name: 'device_id',
                type: 'number',
                default: undefined,
                description: 'Filter by device ID',
            },
            {
                displayName: 'Module Bay ID',
                name: 'module_bay_id',
                type: 'number',
                default: undefined,
                description: 'Filter by module bay ID',
            },
            {
                displayName: 'Module Type ID',
                name: 'module_type_id',
                type: 'number',
                default: undefined,
                description: 'Filter by module type ID',
            },
            {
                displayName: 'Serial Number',
                name: 'serial',
                type: 'string',
                default: '',
                description: 'Filter by serial number',
            },
            {
                displayName: 'Asset Tag',
                name: 'asset_tag',
                type: 'string',
                default: '',
                description: 'Filter by asset tag',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Module ID',
        name: 'moduleId',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['modules'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the module',
    },
    // Create operation fields
    {
        displayName: 'Device ID',
        name: 'device',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['modules'],
                operation: ['create'],
            },
        },
        description: 'ID of the device',
    },
    {
        displayName: 'Module Bay ID',
        name: 'module_bay',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['modules'],
                operation: ['create'],
            },
        },
        description: 'ID of the module bay',
    },
    {
        displayName: 'Module Type ID',
        name: 'module_type',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['modules'],
                operation: ['create'],
            },
        },
        description: 'ID of the module type',
    },
    // Additional fields for create operation
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['modules'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Serial Number',
                name: 'serial',
                type: 'string',
                default: '',
                description: 'Serial number of the module',
            },
            {
                displayName: 'Asset Tag',
                name: 'asset_tag',
                type: 'string',
                default: '',
                description: 'Asset tag of the module',
            },
            {
                displayName: 'Description',
                name: 'moduleDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the module',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Comments about the module',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the module',
            },
        ],
    },
    // Update fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['modules'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Device ID',
                name: 'device',
                type: 'number',
                default: undefined,
                description: 'ID of the device',
            },
            {
                displayName: 'Module Bay ID',
                name: 'module_bay',
                type: 'number',
                default: undefined,
                description: 'ID of the module bay',
            },
            {
                displayName: 'Module Type ID',
                name: 'module_type',
                type: 'number',
                default: undefined,
                description: 'ID of the module type',
            },
            {
                displayName: 'Serial Number',
                name: 'serial',
                type: 'string',
                default: '',
                description: 'Serial number of the module',
            },
            {
                displayName: 'Asset Tag',
                name: 'asset_tag',
                type: 'string',
                default: '',
                description: 'Asset tag of the module',
            },
            {
                displayName: 'Description',
                name: 'moduleDescription',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the module',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Comments about the module',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the module',
            },
        ],
    },
];
// ==================== DEVICE BAYS ====================
exports.deviceBayOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['device-bays'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all device bays',
            action: 'List all device bays',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a device bay by ID',
            action: 'Get a device bay',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new device bay',
            action: 'Create a device bay',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a device bay',
            action: 'Update a device bay',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a device bay',
            action: 'Delete a device bay',
        },
    ],
    default: 'list',
};
exports.deviceBayFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bays'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bays'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bays'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Device Bay ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by device bay ID',
            },
            {
                displayName: 'Device ID',
                name: 'device_id',
                type: 'number',
                default: undefined,
                description: 'Filter by device ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Filter by device bay name',
            },
            {
                displayName: 'Installed Device ID',
                name: 'installed_device_id',
                type: 'number',
                default: undefined,
                description: 'Filter by installed device ID',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Device Bay ID',
        name: 'deviceBayId',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bays'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the device bay',
    },
    // Create operation fields
    {
        displayName: 'Device ID',
        name: 'device',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bays'],
                operation: ['create'],
            },
        },
        description: 'ID of the parent device',
    },
    {
        displayName: 'Device Bay Name',
        name: 'deviceBayName',
        type: 'string',
        required: true,
        default: '',
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bays'],
                operation: ['create'],
            },
        },
        description: 'Name of the device bay',
    },
    // Additional fields for create operation
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bays'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Label',
                name: 'label',
                type: 'string',
                default: '',
                description: 'Physical label of the device bay',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the device bay',
            },
            {
                displayName: 'Installed Device ID',
                name: 'installed_device',
                type: 'number',
                default: undefined,
                description: 'ID of device installed in this bay',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the device bay',
            },
        ],
    },
    // Update fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bays'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Device ID',
                name: 'device',
                type: 'number',
                default: undefined,
                description: 'ID of the parent device',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Name of the device bay',
            },
            {
                displayName: 'Label',
                name: 'label',
                type: 'string',
                default: '',
                description: 'Physical label of the device bay',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the device bay',
            },
            {
                displayName: 'Installed Device ID',
                name: 'installed_device',
                type: 'number',
                default: undefined,
                description: 'ID of device installed in this bay',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the device bay',
            },
        ],
    },
];
// ==================== DEVICE BAY TEMPLATES ====================
exports.deviceBayTemplateOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['device-bay-templates'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all device bay templates',
            action: 'List all device bay templates',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a device bay template by ID',
            action: 'Get a device bay template',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new device bay template',
            action: 'Create a device bay template',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a device bay template',
            action: 'Update a device bay template',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a device bay template',
            action: 'Delete a device bay template',
        },
    ],
    default: 'list',
};
exports.deviceBayTemplateFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bay-templates'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bay-templates'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bay-templates'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Device Bay Template ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by device bay template ID',
            },
            {
                displayName: 'Device Type ID',
                name: 'device_type_id',
                type: 'number',
                default: undefined,
                description: 'Filter by device type ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Filter by device bay template name',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Device Bay Template ID',
        name: 'deviceBayTemplateId',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bay-templates'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the device bay template',
    },
    // Create operation fields
    {
        displayName: 'Device Type ID',
        name: 'device_type',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bay-templates'],
                operation: ['create'],
            },
        },
        description: 'ID of the device type',
    },
    {
        displayName: 'Device Bay Template Name',
        name: 'deviceBayTemplateName',
        type: 'string',
        required: true,
        default: '',
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bay-templates'],
                operation: ['create'],
            },
        },
        description: 'Name of the device bay template ({module} accepted as substitution)',
    },
    // Additional fields for create operation
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bay-templates'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Label',
                name: 'label',
                type: 'string',
                default: '',
                description: 'Physical label of the device bay template',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the device bay template',
            },
        ],
    },
    // Update fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['device-bay-templates'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Device Type ID',
                name: 'device_type',
                type: 'number',
                default: undefined,
                description: 'ID of the device type',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Name of the device bay template',
            },
            {
                displayName: 'Label',
                name: 'label',
                type: 'string',
                default: '',
                description: 'Physical label of the device bay template',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the device bay template',
            },
        ],
    },
];
// ==================== MODULE BAY TEMPLATES ====================
exports.moduleBayTemplateOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['module-bay-templates'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all module bay templates',
            action: 'List all module bay templates',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a module bay template by ID',
            action: 'Get a module bay template',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new module bay template',
            action: 'Create a module bay template',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a module bay template',
            action: 'Update a module bay template',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a module bay template',
            action: 'Delete a module bay template',
        },
    ],
    default: 'list',
};
exports.moduleBayTemplateFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bay-templates'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bay-templates'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bay-templates'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Module Bay Template ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by module bay template ID',
            },
            {
                displayName: 'Device Type ID',
                name: 'device_type_id',
                type: 'number',
                default: undefined,
                description: 'Filter by device type ID',
            },
            {
                displayName: 'Module Type ID',
                name: 'module_type_id',
                type: 'number',
                default: undefined,
                description: 'Filter by module type ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Filter by module bay template name',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Module Bay Template ID',
        name: 'moduleBayTemplateId',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bay-templates'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the module bay template',
    },
    // Create operation fields
    {
        displayName: 'Module Bay Template Name',
        name: 'moduleBayTemplateName',
        type: 'string',
        required: true,
        default: '',
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bay-templates'],
                operation: ['create'],
            },
        },
        description: 'Name of the module bay template ({module} accepted as substitution)',
    },
    // Additional fields for create operation
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bay-templates'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Device Type ID',
                name: 'device_type',
                type: 'number',
                default: undefined,
                description: 'ID of the device type',
            },
            {
                displayName: 'Module Type ID',
                name: 'module_type',
                type: 'number',
                default: undefined,
                description: 'ID of the module type',
            },
            {
                displayName: 'Label',
                name: 'label',
                type: 'string',
                default: '',
                description: 'Physical label of the module bay template',
            },
            {
                displayName: 'Position',
                name: 'position',
                type: 'string',
                default: '',
                description: 'Identifier for renaming installed components',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the module bay template',
            },
        ],
    },
    // Update fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['module-bay-templates'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Device Type ID',
                name: 'device_type',
                type: 'number',
                default: undefined,
                description: 'ID of the device type',
            },
            {
                displayName: 'Module Type ID',
                name: 'module_type',
                type: 'number',
                default: undefined,
                description: 'ID of the module type',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Name of the module bay template',
            },
            {
                displayName: 'Label',
                name: 'label',
                type: 'string',
                default: '',
                description: 'Physical label of the module bay template',
            },
            {
                displayName: 'Position',
                name: 'position',
                type: 'string',
                default: '',
                description: 'Identifier for renaming installed components',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the module bay template',
            },
        ],
    },
];
// ==================== VIRTUAL CHASSIS ====================
exports.virtualChassisOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['virtual-chassis'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all virtual chassis',
            action: 'List all virtual chassis',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a virtual chassis by ID',
            action: 'Get a virtual chassis',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new virtual chassis',
            action: 'Create a virtual chassis',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a virtual chassis',
            action: 'Update a virtual chassis',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a virtual chassis',
            action: 'Delete a virtual chassis',
        },
    ],
    default: 'list',
};
exports.virtualChassisFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-chassis'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-chassis'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-chassis'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Virtual Chassis ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by virtual chassis ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Filter by virtual chassis name',
            },
            {
                displayName: 'Domain',
                name: 'domain',
                type: 'string',
                default: '',
                description: 'Filter by domain',
            },
            {
                displayName: 'Master Device ID',
                name: 'master_id',
                type: 'number',
                default: undefined,
                description: 'Filter by master device ID',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Virtual Chassis ID',
        name: 'virtualChassisId',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-chassis'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the virtual chassis',
    },
    // Create operation fields
    {
        displayName: 'Virtual Chassis Name',
        name: 'virtualChassisName',
        type: 'string',
        required: true,
        default: '',
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-chassis'],
                operation: ['create'],
            },
        },
        description: 'Name of the virtual chassis',
    },
    // Additional fields for create operation
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-chassis'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Domain',
                name: 'domain',
                type: 'string',
                default: '',
                description: 'Domain name (max 30 characters)',
            },
            {
                displayName: 'Master Device ID',
                name: 'master',
                type: 'number',
                default: undefined,
                description: 'ID of the master device',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the virtual chassis',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Comments about the virtual chassis',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the virtual chassis',
            },
        ],
    },
    // Update fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-chassis'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Name of the virtual chassis',
            },
            {
                displayName: 'Domain',
                name: 'domain',
                type: 'string',
                default: '',
                description: 'Domain name (max 30 characters)',
            },
            {
                displayName: 'Master Device ID',
                name: 'master',
                type: 'number',
                default: undefined,
                description: 'ID of the master device',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the virtual chassis',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Comments about the virtual chassis',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the virtual chassis',
            },
        ],
    },
];
// ==================== VIRTUAL DEVICE CONTEXTS ====================
exports.virtualDeviceContextOperations = {
    ...baseProperties_1.baseProperties,
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['dcim'],
            resource: ['virtual-device-contexts'],
        },
    },
    options: [
        {
            name: 'List',
            value: 'list',
            description: 'Get all virtual device contexts',
            action: 'List all virtual device contexts',
        },
        {
            name: 'Get',
            value: 'get',
            description: 'Get a virtual device context by ID',
            action: 'Get a virtual device context',
        },
        {
            name: 'Create',
            value: 'create',
            description: 'Create a new virtual device context',
            action: 'Create a virtual device context',
        },
        {
            name: 'Update',
            value: 'update',
            description: 'Update a virtual device context',
            action: 'Update a virtual device context',
        },
        {
            name: 'Delete',
            value: 'delete',
            description: 'Delete a virtual device context',
            action: 'Delete a virtual device context',
        },
    ],
    default: 'list',
};
exports.virtualDeviceContextFields = [
    // List operation fields
    {
        ...baseProperties_1.returnAllOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-device-contexts'],
                operation: ['list'],
            },
        },
    },
    {
        ...baseProperties_1.limitOption,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-device-contexts'],
                operation: ['list'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Filters',
        name: 'filters',
        type: 'collection',
        placeholder: 'Add Filter',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-device-contexts'],
                operation: ['list'],
            },
        },
        options: [
            {
                displayName: 'Virtual Device Context ID',
                name: 'id',
                type: 'number',
                default: undefined,
                description: 'Filter by virtual device context ID',
            },
            {
                displayName: 'Device ID',
                name: 'device_id',
                type: 'number',
                default: undefined,
                description: 'Filter by device ID',
            },
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Filter by virtual device context name',
            },
            {
                displayName: 'Status',
                name: 'status',
                type: 'options',
                options: [
                    { name: 'Active', value: 'active' },
                    { name: 'Planned', value: 'planned' },
                    { name: 'Offline', value: 'offline' },
                ],
                default: '',
                description: 'Filter by status',
            },
            {
                displayName: 'Tenant ID',
                name: 'tenant_id',
                type: 'number',
                default: undefined,
                description: 'Filter by tenant ID',
            },
        ],
    },
    // Get operation fields
    {
        displayName: 'Virtual Device Context ID',
        name: 'virtualDeviceContextId',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-device-contexts'],
                operation: ['get', 'update', 'delete'],
            },
        },
        description: 'ID of the virtual device context',
    },
    // Create operation fields
    {
        displayName: 'Virtual Device Context Name',
        name: 'virtualDeviceContextName',
        type: 'string',
        required: true,
        default: '',
        noDataExpression: false,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-device-contexts'],
                operation: ['create'],
            },
        },
        description: 'Name of the virtual device context',
    },
    {
        displayName: 'Device ID',
        name: 'device',
        type: 'number',
        required: true,
        default: undefined,
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-device-contexts'],
                operation: ['create'],
            },
        },
        description: 'ID of the device',
    },
    {
        displayName: 'Status',
        name: 'status',
        type: 'options',
        required: true,
        options: [
            { name: 'Active', value: 'active' },
            { name: 'Planned', value: 'planned' },
            { name: 'Offline', value: 'offline' },
        ],
        default: 'active',
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-device-contexts'],
                operation: ['create'],
            },
        },
        description: 'Status of the virtual device context',
    },
    // Additional fields for create operation
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-device-contexts'],
                operation: ['create'],
            },
        },
        options: [
            {
                displayName: 'Identifier',
                name: 'identifier',
                type: 'number',
                default: undefined,
                description: 'Numeric identifier (0-32767)',
            },
            {
                displayName: 'Tenant ID',
                name: 'tenant',
                type: 'number',
                default: undefined,
                description: 'ID of the tenant',
            },
            {
                displayName: 'Primary IPv4 Address ID',
                name: 'primary_ip4',
                type: 'number',
                default: undefined,
                description: 'ID of the primary IPv4 address',
            },
            {
                displayName: 'Primary IPv6 Address ID',
                name: 'primary_ip6',
                type: 'number',
                default: undefined,
                description: 'ID of the primary IPv6 address',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the virtual device context',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Comments about the virtual device context',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the virtual device context',
            },
        ],
    },
    // Update fields
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['dcim'],
                resource: ['virtual-device-contexts'],
                operation: ['update'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Name of the virtual device context',
            },
            {
                displayName: 'Device ID',
                name: 'device',
                type: 'number',
                default: undefined,
                description: 'ID of the device',
            },
            {
                displayName: 'Status',
                name: 'status',
                type: 'options',
                options: [
                    { name: 'Active', value: 'active' },
                    { name: 'Planned', value: 'planned' },
                    { name: 'Offline', value: 'offline' },
                ],
                default: '',
                description: 'Status of the virtual device context',
            },
            {
                displayName: 'Identifier',
                name: 'identifier',
                type: 'number',
                default: undefined,
                description: 'Numeric identifier (0-32767)',
            },
            {
                displayName: 'Tenant ID',
                name: 'tenant',
                type: 'number',
                default: undefined,
                description: 'ID of the tenant',
            },
            {
                displayName: 'Primary IPv4 Address ID',
                name: 'primary_ip4',
                type: 'number',
                default: undefined,
                description: 'ID of the primary IPv4 address',
            },
            {
                displayName: 'Primary IPv6 Address ID',
                name: 'primary_ip6',
                type: 'number',
                default: undefined,
                description: 'ID of the primary IPv6 address',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                noDataExpression: false,
                description: 'Description of the virtual device context',
            },
            {
                displayName: 'Comments',
                name: 'comments',
                type: 'string',
                default: '',
                description: 'Comments about the virtual device context',
            },
            {
                displayName: 'Tags',
                name: 'tags',
                type: 'string',
                default: '',
                description: 'Comma-separated list of tag IDs',
            },
            {
                displayName: 'Custom Fields',
                name: 'custom_fields',
                type: 'string',
                default: '{}',
                description: 'Custom fields for the virtual device context',
            },
        ],
    },
];
// Export all DCIM properties for use in the main node file
exports.dcimProperties = [
    exports.deviceOperations,
    ...exports.deviceFields,
    exports.deviceBayOperations,
    ...exports.deviceBayFields,
    exports.deviceBayTemplateOperations,
    ...exports.deviceBayTemplateFields,
    exports.deviceRoleOperations,
    ...exports.deviceRoleFields,
    exports.deviceTypeOperations,
    ...exports.deviceTypeFields,
    exports.interfaceOperations,
    ...exports.interfaceFields,
    exports.manufacturerOperations,
    ...exports.manufacturerFields,
    exports.moduleBayOperations,
    ...exports.moduleBayFields,
    exports.moduleBayTemplateOperations,
    ...exports.moduleBayTemplateFields,
    exports.moduleOperations,
    ...exports.moduleFields,
    exports.moduleTypeOperations,
    ...exports.moduleTypeFields,
    exports.platformOperations,
    ...exports.platformFields,
    exports.regionOperations,
    ...exports.regionFields,
    exports.siteOperations,
    ...exports.siteFields,
    exports.virtualChassisOperations,
    ...exports.virtualChassisFields,
    exports.virtualDeviceContextOperations,
    ...exports.virtualDeviceContextFields,
    // Include operations and fields for other DCIM resources
];