UNPKG

n8n-nodes-arubacentralnextgen

Version:

n8n community node for Aruba Central NextGen API integration with modern monitoring and management capabilities

1,646 lines 52.8 kB
"use strict";
// descriptions/configuration/vlansNetworks.descriptions.ts
Object.defineProperty(exports, "__esModule", { value: true });
exports.vlansNetworksFields = exports.vlansNetworksOperations = void 0;
/**
 * VLANs & Networks Configuration Operations
 * Unified resource for managing all VLAN and network-related configurations
 * Includes: VRRP Global, VRRP Interface, MVRP, Smartlink, STP, Layer2 VLAN, VLAN Range, Loop Protect, Named VLAN
 * API Reference: https://developer.arubanetworks.com/new-central-config/reference
 */
exports.vlansNetworksOperations = {
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['configuration'],
            resource: ['vlansNetworks'],
        },
    },
    options: [
        // ============================================================================
        // VRRP Global Operations (endpoint: /vrrp-global)
        // ============================================================================
        {
            name: 'Get All VRRP Global Profiles',
            value: 'getAllVRRPGlobal',
            description: 'Retrieve all VRRP global profiles',
            action: 'Get all VRRP global profiles',
        },
        {
            name: 'Get VRRP Global Profile',
            value: 'getVRRPGlobal',
            description: 'Get a specific VRRP global profile by name',
            action: 'Get VRRP global profile',
        },
        {
            name: 'Create VRRP Global Profile',
            value: 'createVRRPGlobal',
            description: 'Create a new VRRP global profile',
            action: 'Create VRRP global profile',
        },
        {
            name: 'Update VRRP Global Profile',
            value: 'updateVRRPGlobal',
            description: 'Update an existing VRRP global profile',
            action: 'Update VRRP global profile',
        },
        {
            name: 'Delete VRRP Global Profile',
            value: 'deleteVRRPGlobal',
            description: 'Delete a VRRP global profile',
            action: 'Delete VRRP global profile',
        },
        // ============================================================================
        // VRRP Interface Operations (endpoint: /vrrp)
        // ============================================================================
        {
            name: 'Get All VRRP Interfaces',
            value: 'getAllVRRPInterface',
            description: 'Retrieve all VRRP interface configurations',
            action: 'Get all VRRP interfaces',
        },
        {
            name: 'Get VRRP Interface',
            value: 'getVRRPInterface',
            description: 'Get a specific VRRP interface configuration by name',
            action: 'Get VRRP interface',
        },
        {
            name: 'Create VRRP Interface',
            value: 'createVRRPInterface',
            description: 'Create a new VRRP interface configuration',
            action: 'Create VRRP interface',
        },
        {
            name: 'Update VRRP Interface',
            value: 'updateVRRPInterface',
            description: 'Update an existing VRRP interface configuration',
            action: 'Update VRRP interface',
        },
        {
            name: 'Delete VRRP Interface',
            value: 'deleteVRRPInterface',
            description: 'Delete a VRRP interface configuration',
            action: 'Delete VRRP interface',
        },
        // ============================================================================
        // MVRP Operations (endpoint: /mvrp)
        // ============================================================================
        {
            name: 'Get All MVRP Profiles',
            value: 'getAllMVRP',
            description: 'Retrieve all MVRP profiles',
            action: 'Get all MVRP profiles',
        },
        {
            name: 'Get MVRP Profile',
            value: 'getMVRP',
            description: 'Get a specific MVRP profile by name',
            action: 'Get MVRP profile',
        },
        {
            name: 'Create MVRP Profile',
            value: 'createMVRP',
            description: 'Create a new MVRP profile',
            action: 'Create MVRP profile',
        },
        {
            name: 'Update MVRP Profile',
            value: 'updateMVRP',
            description: 'Update an existing MVRP profile',
            action: 'Update MVRP profile',
        },
        {
            name: 'Delete MVRP Profile',
            value: 'deleteMVRP',
            description: 'Delete an MVRP profile',
            action: 'Delete MVRP profile',
        },
        // ============================================================================
        // Smartlink Operations (endpoint: /smartlink)
        // ============================================================================
        {
            name: 'Get All Smartlink Profiles',
            value: 'getAllSmartlink',
            description: 'Retrieve all Smartlink profiles',
            action: 'Get all Smartlink profiles',
        },
        {
            name: 'Get Smartlink Profile',
            value: 'getSmartlink',
            description: 'Get a specific Smartlink profile by name',
            action: 'Get Smartlink profile',
        },
        {
            name: 'Create Smartlink Profile',
            value: 'createSmartlink',
            description: 'Create a new Smartlink profile',
            action: 'Create Smartlink profile',
        },
        {
            name: 'Update Smartlink Profile',
            value: 'updateSmartlink',
            description: 'Update an existing Smartlink profile',
            action: 'Update Smartlink profile',
        },
        {
            name: 'Delete Smartlink Profile',
            value: 'deleteSmartlink',
            description: 'Delete a Smartlink profile',
            action: 'Delete Smartlink profile',
        },
        // ============================================================================
        // STP Operations (endpoint: /stp)
        // ============================================================================
        {
            name: 'Get All STP Profiles',
            value: 'getAllSTP',
            description: 'Retrieve all STP profiles',
            action: 'Get all STP profiles',
        },
        {
            name: 'Get STP Profile',
            value: 'getSTP',
            description: 'Get a specific STP profile by name',
            action: 'Get STP profile',
        },
        {
            name: 'Create STP Profile',
            value: 'createSTP',
            description: 'Create a new STP profile',
            action: 'Create STP profile',
        },
        {
            name: 'Update STP Profile',
            value: 'updateSTP',
            description: 'Update an existing STP profile',
            action: 'Update STP profile',
        },
        {
            name: 'Delete STP Profile',
            value: 'deleteSTP',
            description: 'Delete an STP profile',
            action: 'Delete STP profile',
        },
        // ============================================================================
        // Layer2 VLAN Operations (endpoint: /layer2-vlan)
        // ============================================================================
        {
            name: 'Get All Layer2 VLANs',
            value: 'getAllLayer2VLAN',
            description: 'Retrieve all Layer2 VLANs',
            action: 'Get all Layer2 VLANs',
        },
        {
            name: 'Get Layer2 VLAN',
            value: 'getLayer2VLAN',
            description: 'Get a specific Layer2 VLAN by ID',
            action: 'Get Layer2 VLAN',
        },
        {
            name: 'Create Layer2 VLAN',
            value: 'createLayer2VLAN',
            description: 'Create a new Layer2 VLAN',
            action: 'Create Layer2 VLAN',
        },
        {
            name: 'Update Layer2 VLAN',
            value: 'updateLayer2VLAN',
            description: 'Update an existing Layer2 VLAN',
            action: 'Update Layer2 VLAN',
        },
        {
            name: 'Delete Layer2 VLAN',
            value: 'deleteLayer2VLAN',
            description: 'Delete a Layer2 VLAN',
            action: 'Delete Layer2 VLAN',
        },
        // ============================================================================
        // VLAN Range Operations (endpoint: /layer2-vlan-range)
        // ============================================================================
        {
            name: 'Get All VLAN Ranges',
            value: 'getAllVLANRange',
            description: 'Retrieve all VLAN ranges',
            action: 'Get all VLAN ranges',
        },
        {
            name: 'Create VLAN Range',
            value: 'createVLANRange',
            description: 'Create a new VLAN range',
            action: 'Create VLAN range',
        },
        {
            name: 'Update VLAN Range',
            value: 'updateVLANRange',
            description: 'Update an existing VLAN range',
            action: 'Update VLAN range',
        },
        {
            name: 'Delete VLAN Range',
            value: 'deleteVLANRange',
            description: 'Delete a VLAN range',
            action: 'Delete VLAN range',
        },
        // ============================================================================
        // Loop Protect Operations (endpoint: /loop-protect)
        // ============================================================================
        {
            name: 'Get All Loop Protect Profiles',
            value: 'getAllLoopProtect',
            description: 'Retrieve all loop protection profiles',
            action: 'Get all loop protect profiles',
        },
        {
            name: 'Get Loop Protect Profile',
            value: 'getLoopProtect',
            description: 'Get a specific loop protection profile by name',
            action: 'Get loop protect profile',
        },
        {
            name: 'Create Loop Protect Profile',
            value: 'createLoopProtect',
            description: 'Create a new loop protection profile',
            action: 'Create loop protect profile',
        },
        {
            name: 'Update Loop Protect Profile',
            value: 'updateLoopProtect',
            description: 'Update an existing loop protection profile',
            action: 'Update loop protect profile',
        },
        {
            name: 'Delete Loop Protect Profile',
            value: 'deleteLoopProtect',
            description: 'Delete a loop protection profile',
            action: 'Delete loop protect profile',
        },
        // ============================================================================
        // Named VLAN Operations (endpoint: /named-vlan)
        // ============================================================================
        {
            name: 'Get All Named VLANs',
            value: 'getAllNamedVLAN',
            description: 'Retrieve all named VLANs',
            action: 'Get all named VLANs',
        },
        {
            name: 'Get Named VLAN',
            value: 'getNamedVLAN',
            description: 'Get a specific named VLAN by name',
            action: 'Get named VLAN',
        },
        {
            name: 'Create Named VLAN',
            value: 'createNamedVLAN',
            description: 'Create a new named VLAN',
            action: 'Create named VLAN',
        },
        {
            name: 'Update Named VLAN',
            value: 'updateNamedVLAN',
            description: 'Update an existing named VLAN',
            action: 'Update named VLAN',
        },
        {
            name: 'Delete Named VLAN',
            value: 'deleteNamedVLAN',
            description: 'Delete a named VLAN',
            action: 'Delete named VLAN',
        },
    ],
    default: 'getAllVRRPGlobal',
};
// ============================================================================
// Common Query Parameters (used across all "Get All" operations)
// ============================================================================
const commonQueryParameters = [
    {
        displayName: 'View Type',
        name: 'viewType',
        type: 'options',
        options: [
            {
                name: 'LIBRARY',
                value: 'LIBRARY',
                description: 'View library objects',
            },
            {
                name: 'LOCAL',
                value: 'LOCAL',
                description: 'View local objects (requires scope ID)',
            },
        ],
        default: 'LIBRARY',
        description: 'Type of view for retrieving objects',
    },
    {
        displayName: 'Object Type',
        name: 'objectType',
        type: 'options',
        options: [
            {
                name: 'LOCAL',
                value: 'LOCAL',
                description: 'Local objects only',
            },
            {
                name: 'SHARED',
                value: 'SHARED',
                description: 'Shared objects only',
            },
            {
                name: 'Both',
                value: 'both',
                description: 'Both local and shared objects',
            },
        ],
        default: 'both',
        description: 'Filter by object type',
    },
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        default: '',
        description: 'Scope ID (required when view_type is LOCAL)',
        displayOptions: {
            show: {
                viewType: ['LOCAL'],
            },
        },
    },
    {
        displayName: 'Persona',
        name: 'persona',
        type: 'string',
        default: '',
        description: 'Persona filter for configuration profiles',
    },
    {
        displayName: 'Effective',
        name: 'effective',
        type: 'boolean',
        default: false,
        description: 'Whether to retrieve effective configuration',
    },
    {
        displayName: 'Detailed',
        name: 'detailed',
        type: 'boolean',
        default: false,
        description: 'Whether to include detailed information',
    },
    {
        displayName: 'Limit',
        name: 'limit',
        type: 'number',
        default: 100,
        description: 'Maximum number of items to return',
        typeOptions: {
            minValue: 1,
            maxValue: 1000,
        },
    },
    {
        displayName: 'Offset',
        name: 'offset',
        type: 'number',
        default: 0,
        description: 'Number of items to skip for pagination',
        typeOptions: {
            minValue: 0,
        },
    },
];
// ============================================================================
// VRRP Global Fields
// ============================================================================
const getAllVRRPGlobalFields = [
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getAllVRRPGlobal'],
            },
        },
        options: commonQueryParameters,
    },
];
const getVRRPGlobalFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the VRRP global profile to retrieve',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getVRRPGlobal'],
            },
        },
    },
];
const createVRRPGlobalFields = [
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'VRRP Global configuration as JSON. Refer to the <a href="https://developer.arubanetworks.com/new-central-config/reference/createvrrpglobal" target="_blank">API documentation</a> for the complete request body schema.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createVRRPGlobal'],
            },
        },
    },
];
const updateVRRPGlobalFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the VRRP global profile to update',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateVRRPGlobal'],
            },
        },
    },
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'VRRP Global configuration update as JSON. See <a href="https://developer.arubanetworks.com/new-central-config/reference/updatevrrpglobal" target="_blank">API documentation</a> for schema details.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateVRRPGlobal'],
            },
        },
    },
];
const deleteVRRPGlobalFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the VRRP global profile to delete',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['deleteVRRPGlobal'],
            },
        },
    },
];
// ============================================================================
// VRRP Interface Fields
// ============================================================================
const getAllVRRPInterfaceFields = [
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getAllVRRPInterface'],
            },
        },
        options: commonQueryParameters,
    },
];
const getVRRPInterfaceFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the VRRP interface configuration to retrieve',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getVRRPInterface'],
            },
        },
    },
];
const createVRRPInterfaceFields = [
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'VRRP Interface configuration as JSON. Refer to the <a href="https://developer.arubanetworks.com/new-central-config/reference/createvrrpinterface" target="_blank">API documentation</a> for the complete request body schema.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createVRRPInterface'],
            },
        },
    },
];
const updateVRRPInterfaceFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the VRRP interface configuration to update',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateVRRPInterface'],
            },
        },
    },
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'VRRP Interface configuration update as JSON. See <a href="https://developer.arubanetworks.com/new-central-config/reference/updatevrrpinterface" target="_blank">API documentation</a> for schema details.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateVRRPInterface'],
            },
        },
    },
];
const deleteVRRPInterfaceFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the VRRP interface configuration to delete',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['deleteVRRPInterface'],
            },
        },
    },
];
// ============================================================================
// MVRP Fields
// ============================================================================
const getAllMVRPFields = [
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getAllMVRP'],
            },
        },
        options: commonQueryParameters,
    },
];
const getMVRPFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the MVRP profile to retrieve',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getMVRP'],
            },
        },
    },
];
const createMVRPFields = [
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'MVRP configuration as JSON. Refer to the <a href="https://developer.arubanetworks.com/new-central-config/reference/createmvrp" target="_blank">API documentation</a> for the complete request body schema.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createMVRP'],
            },
        },
    },
];
const updateMVRPFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the MVRP profile to update',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateMVRP'],
            },
        },
    },
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'MVRP configuration update as JSON. See <a href="https://developer.arubanetworks.com/new-central-config/reference/updatemvrp" target="_blank">API documentation</a> for schema details.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateMVRP'],
            },
        },
    },
];
const deleteMVRPFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the MVRP profile to delete',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['deleteMVRP'],
            },
        },
    },
];
// ============================================================================
// Smartlink Fields
// ============================================================================
const getAllSmartlinkFields = [
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getAllSmartlink'],
            },
        },
        options: commonQueryParameters,
    },
];
const getSmartlinkFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the Smartlink profile to retrieve',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getSmartlink'],
            },
        },
    },
];
const createSmartlinkFields = [
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'Smartlink configuration as JSON. Refer to the <a href="https://developer.arubanetworks.com/new-central-config/reference/createsmartlink" target="_blank">API documentation</a> for the complete request body schema.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createSmartlink'],
            },
        },
    },
];
const updateSmartlinkFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the Smartlink to update',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateSmartlink'],
            },
        },
    },
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'Smartlink configuration update as JSON. See <a href="https://developer.arubanetworks.com/new-central-config/reference/updatesmartlink" target="_blank">API documentation</a> for schema details.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateSmartlink'],
            },
        },
    },
];
const deleteSmartlinkFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the Smartlink profile to delete',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['deleteSmartlink'],
            },
        },
    },
];
// ============================================================================
// STP Fields
// ============================================================================
const getAllSTPFields = [
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getAllSTP'],
            },
        },
        options: commonQueryParameters,
    },
];
const getSTPFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the STP profile to retrieve',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getSTP'],
            },
        },
    },
];
const createSTPFields = [
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'STP configuration as JSON. Refer to the <a href="https://developer.arubanetworks.com/new-central-config/reference/createstp" target="_blank">API documentation</a> for the complete request body schema.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createSTP'],
            },
        },
    },
];
const updateSTPFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the STP to update',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateSTP'],
            },
        },
    },
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'STP configuration update as JSON. See <a href="https://developer.arubanetworks.com/new-central-config/reference/updatestp" target="_blank">API documentation</a> for schema details.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateSTP'],
            },
        },
    },
];
const deleteSTPFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the STP profile to delete',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['deleteSTP'],
            },
        },
    },
];
// ============================================================================
// Layer2 VLAN Fields
// ============================================================================
const getAllLayer2VLANFields = [
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getAllLayer2VLAN'],
            },
        },
        options: commonQueryParameters,
    },
];
const getLayer2VLANFields = [
    {
        displayName: 'VLAN ID',
        name: 'vlanId',
        type: 'number',
        required: true,
        default: 1,
        description: 'ID of the VLAN to retrieve (1-4094)',
        typeOptions: {
            minValue: 1,
            maxValue: 4094,
        },
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getLayer2VLAN'],
            },
        },
    },
];
const createLayer2VLANFields = [
    {
        displayName: 'VLAN ID',
        name: 'vlanId',
        type: 'number',
        required: true,
        default: 1,
        placeholder: '100',
        description: 'VLAN identifier (1-4094)',
        typeOptions: {
            minValue: 1,
            maxValue: 4094,
        },
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createLayer2VLAN'],
            },
        },
    },
    {
        displayName: 'VLAN Name',
        name: 'vlanName',
        type: 'string',
        default: '',
        placeholder: 'guest-network',
        description: 'VLAN name (max 32 characters) - supported on Switch CX and PVOS',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createLayer2VLAN'],
            },
        },
    },
    {
        displayName: 'Description',
        name: 'descriptionAlias',
        type: 'string',
        default: '',
        placeholder: 'Guest network VLAN',
        description: 'Description of the VLAN (max 256 characters)',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createLayer2VLAN'],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createLayer2VLAN'],
            },
        },
        options: [
            {
                displayName: 'Administrative State',
                name: 'enable',
                type: 'boolean',
                default: true,
                description: 'Whether to enable the VLAN (Switch CX only)',
            },
            {
                displayName: 'VRF',
                name: 'vrf',
                type: 'string',
                default: '',
                placeholder: 'my-vrf',
                description: 'VRF name for Distributed Firewall Policy (Switch CX only)',
            },
            {
                displayName: 'QinQ S-VLAN',
                name: 'qinqSvlan',
                type: 'boolean',
                default: false,
                description: 'Whether to set this VLAN as a QinQ S-VLAN (Switch CX only)',
            },
            {
                displayName: 'Voice Enable Alias',
                name: 'voiceEnableAlias',
                type: 'string',
                default: '',
                placeholder: 'voice-alias',
                description: 'Alias to manage VLAN voice enable/disable (Switch CX and PVOS)',
            },
            {
                displayName: 'Object Type',
                name: 'objectType',
                type: 'options',
                options: [
                    {
                        name: 'LOCAL',
                        value: 'LOCAL',
                        description: 'Create local object (requires scope_id and persona)',
                    },
                    {
                        name: 'SHARED',
                        value: 'SHARED',
                        description: 'Create shared object (default)',
                    },
                ],
                default: 'SHARED',
                description: 'Type of object to create',
            },
            {
                displayName: 'Scope ID',
                name: 'scopeId',
                type: 'string',
                default: '',
                description: 'Scope at which local object needs to be created. Mandatory if object_type = LOCAL.',
            },
            {
                displayName: 'Persona',
                name: 'persona',
                type: 'string',
                default: '',
                description: 'Persona for which the local object needs to be created. Mandatory if object_type = LOCAL.',
            },
        ],
    },
];
const updateLayer2VLANFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the Layer2 VLAN to update',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateLayer2VLAN'],
            },
        },
    },
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'Layer2 VLAN configuration update as JSON. See <a href="https://developer.arubanetworks.com/new-central-config/reference/updatelayer2vlan" target="_blank">API documentation</a> for schema details.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateLayer2VLAN'],
            },
        },
    },
];
const deleteLayer2VLANFields = [
    {
        displayName: 'VLAN ID',
        name: 'vlanId',
        type: 'number',
        required: true,
        default: 1,
        description: 'ID of the VLAN to delete (1-4094)',
        typeOptions: {
            minValue: 1,
            maxValue: 4094,
        },
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['deleteLayer2VLAN'],
            },
        },
    },
];
// ============================================================================
// VLAN Range Fields
// ============================================================================
const getAllVLANRangeFields = [
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getAllVLANRange'],
            },
        },
        options: commonQueryParameters,
    },
];
const createVLANRangeFields = [
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'VLAN Range configuration as JSON. Refer to the <a href="https://developer.arubanetworks.com/new-central-config/reference/createlayer2vlanrange" target="_blank">API documentation</a> for the complete request body schema.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createVLANRange'],
            },
        },
    },
];
const updateVLANRangeFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the VLAN Range to update',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateVLANRange'],
            },
        },
    },
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'VLAN Range configuration update as JSON. See <a href="https://developer.arubanetworks.com/new-central-config/reference/updatevlanrange" target="_blank">API documentation</a> for schema details.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateVLANRange'],
            },
        },
    },
];
const deleteVLANRangeFields = [
    {
        displayName: 'Range Name',
        name: 'rangeName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the VLAN range to delete',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['deleteVLANRange'],
            },
        },
    },
];
// ============================================================================
// Loop Protect Fields
// ============================================================================
const getAllLoopProtectFields = [
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getAllLoopProtect'],
            },
        },
        options: commonQueryParameters,
    },
];
const getLoopProtectFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the loop protection profile to retrieve',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getLoopProtect'],
            },
        },
    },
];
const createLoopProtectFields = [
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'Loop Protect configuration as JSON. Refer to the <a href="https://developer.arubanetworks.com/new-central-config/reference/createloopprotect" target="_blank">API documentation</a> for the complete request body schema.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createLoopProtect'],
            },
        },
    },
];
const updateLoopProtectFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the Loop Protect to update',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateLoopProtect'],
            },
        },
    },
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'Loop Protect configuration update as JSON. See <a href="https://developer.arubanetworks.com/new-central-config/reference/updateloopprotect" target="_blank">API documentation</a> for schema details.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateLoopProtect'],
            },
        },
    },
];
const deleteLoopProtectFields = [
    {
        displayName: 'Profile Name',
        name: 'profileName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the loop protection profile to delete',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['deleteLoopProtect'],
            },
        },
    },
];
// ============================================================================
// Named VLAN Fields
// ============================================================================
const getAllNamedVLANFields = [
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getAllNamedVLAN'],
            },
        },
        options: commonQueryParameters,
    },
];
const getNamedVLANFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the named VLAN to retrieve',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['getNamedVLAN'],
            },
        },
    },
];
const createNamedVLANFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        placeholder: 'my-vlan-group',
        description: 'Named VLAN or the name of the VLAN group (max 9999 characters)',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createNamedVLAN'],
            },
        },
    },
    {
        displayName: 'VLAN Configuration Type',
        name: 'vlanConfigType',
        type: 'options',
        options: [
            {
                name: 'VLAN ID Ranges',
                value: 'ranges',
                description: 'Specify individual VLANs or VLAN ranges (e.g., 10, 20-30)',
            },
            {
                name: 'VLAN Alias',
                value: 'alias',
                description: 'Reference an existing VLAN alias',
            },
        ],
        default: 'ranges',
        description: 'How to configure the VLANs for this named VLAN group',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createNamedVLAN'],
            },
        },
    },
    {
        displayName: 'VLAN ID Ranges',
        name: 'vlanIdRanges',
        type: 'string',
        required: true,
        default: '',
        placeholder: '10, 20-30, 40',
        description: 'Comma-separated list of VLAN IDs or ranges (e.g., 10, 20-30, 40)',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createNamedVLAN'],
                vlanConfigType: ['ranges'],
            },
        },
    },
    {
        displayName: 'VLAN Alias',
        name: 'vlanAlias',
        type: 'string',
        required: true,
        default: '',
        placeholder: 'my-vlan-alias',
        description: 'Name of the VLAN alias to reference',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createNamedVLAN'],
                vlanConfigType: ['alias'],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['createNamedVLAN'],
            },
        },
        options: [
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                placeholder: 'VLAN group description',
                description: 'Description of the named VLAN (max 256 characters)',
            },
            {
                displayName: 'Assignment Type',
                name: 'assignment',
                type: 'options',
                options: [
                    {
                        name: 'HASH',
                        value: 'HASH',
                        description: 'Hash-based assignment',
                    },
                    {
                        name: 'EVEN',
                        value: 'EVEN',
                        description: 'Even distribution assignment',
                    },
                ],
                default: 'HASH',
                description: 'Assignment type for gateway devices',
            },
            {
                displayName: 'Object Type',
                name: 'objectType',
                type: 'options',
                options: [
                    {
                        name: 'LOCAL',
                        value: 'LOCAL',
                        description: 'Create local object (requires scope_id and persona)',
                    },
                    {
                        name: 'SHARED',
                        value: 'SHARED',
                        description: 'Create shared object (default)',
                    },
                ],
                default: 'SHARED',
                description: 'Type of object to create',
            },
            {
                displayName: 'Scope ID',
                name: 'scopeId',
                type: 'string',
                default: '',
                description: 'Scope at which local object needs to be created. Mandatory if object_type = LOCAL.',
            },
            {
                displayName: 'Persona',
                name: 'persona',
                type: 'string',
                default: '',
                description: 'Persona for which the local object needs to be created. Mandatory if object_type = LOCAL.',
            },
        ],
    },
];
const updateNamedVLANFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the Named VLAN to update',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateNamedVLAN'],
            },
        },
    },
    {
        displayName: 'Configuration Data',
        name: 'configurationData',
        type: 'json',
        required: true,
        default: '{}',
        description: 'Named VLAN configuration update as JSON. See <a href="https://developer.arubanetworks.com/new-central-config/reference/updatenamedvlan" target="_blank">API documentation</a> for schema details.',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['updateNamedVLAN'],
            },
        },
    },
];
const deleteNamedVLANFields = [
    {
        displayName: 'Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the named VLAN to delete',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['vlansNetworks'],
                operation: ['deleteNamedVLAN'],
            },
        },
    },
];
// ============================================================================
// Export all fields
// ============================================================================
exports.vlansNetworksFields = [
    // VRRP Global
    ...getAllVRRPGlobalFields,
    ...getVRRPGlobalFields,
    ...createVRRPGlobalFields,
    ...updateVRRPGlobalFields,
    ...deleteVRRPGlobalFields,
    // VRRP Interface
    ...getAllVRRPInterfaceFields,
    ...getVRRPInterfaceFields,
    ...createVRRPInterfaceFields,
    ...updateVRRPInterfaceFields,
    ...deleteVRRPInterfaceFields,
    // MVRP
    ...getAllMVRPFields,
    ...getMVRPFields,
    ...createMVRPFields,
    ...updateMVRPFields,
    ...deleteMVRPFields,
    // Smartlink
    ...getAllSmartlinkFields,
    ...getSmartlinkFields,
    ...createSmartlinkFields,
    ...updateSmartlinkFields,
    ...deleteSmartlinkFields,
    // STP
    ...getAllSTPFields,
    ...getSTPFields,
    ...createSTPFields,
    ...updateSTPFields,
    ...deleteSTPFields,
    // Layer2 VLAN
    ...getAllLayer2VLANFields,
    ...getLayer2VLANFields,
    ...createLayer2VLANFields,
    ...updateLayer2VLANFields,
    ...deleteLayer2VLANFields,
    // VLAN Range
    ...getAllVLANRangeFields,
    ...createVLANRangeFields,
    ...updateVLANRangeFields,
    ...deleteVLANRangeFields,
    // Loop Protect
    ...getAllLoopProtectFields,
    ...getLoopProtectFields,
    ...createLoopProtectFields,
    ...updateLoopProtectFields,
    ...deleteLoopProtectFields,
    // Named VLAN
    ...getAllNamedVLANFields,
    ...getNamedVLANFields,
    ...createNamedVLANFields,
    ...updateNamedVLANFields,
    ...deleteNamedVLANFields,
];