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
JavaScript
"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,
];