UNPKG

n8n-nodes-arubacentralnextgen

Version:

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

1,680 lines 51.9 kB
"use strict";
// descriptions/configuration/scopeManagement.descriptions.ts
Object.defineProperty(exports, "__esModule", { value: true });
exports.scopeManagementFields = exports.scopeManagementOperations = void 0;
/**
 * Scope Management Configuration Operations
 * Unified resource for managing Sites, Site Collections, Device Groups, Device Collections, and Hierarchy
 * API Reference: https://developer.arubanetworks.com/new-central-config/reference
 *
 * This resource consolidates all scope-related operations:
 * - Sites: Physical locations in the network
 * - Site Collections: Logical groupings of sites
 * - Device Groups: Groupings of devices for configuration management
 * - Device Collections: Collections of devices
 * - Hierarchy: Scope hierarchy information
 */
exports.scopeManagementOperations = {
    displayName: 'Operation',
    name: 'operation',
    type: 'options',
    noDataExpression: true,
    displayOptions: {
        show: {
            domain: ['configuration'],
            resource: ['scopeManagement'],
        },
    },
    options: [
        // ============================================================================
        // Sites Operations
        // ============================================================================
        {
            name: 'Get All Sites',
            value: 'getAllSites',
            description: 'Retrieve all sites with details like scopeId, scopeName, collectionId, deviceCount, address, and geolocation',
            action: 'Get all sites',
        },
        {
            name: 'Get Site',
            value: 'getSite',
            description: 'Get information about a specific site by scopeId',
            action: 'Get a site',
        },
        {
            name: 'Create Site',
            value: 'createSite',
            description: 'Create a new site with address and geo coordinates',
            action: 'Create a site',
        },
        {
            name: 'Update Site',
            value: 'updateSite',
            description: 'Update an existing site',
            action: 'Update a site',
        },
        {
            name: 'Delete Site',
            value: 'deleteSite',
            description: 'Delete a site by scopeId',
            action: 'Delete a site',
        },
        {
            name: 'Bulk Delete Sites',
            value: 'bulkDeleteSites',
            description: 'Delete multiple sites at once',
            action: 'Bulk delete sites',
        },
        {
            name: 'Add Devices to Site',
            value: 'addDevicesToSite',
            description: 'Add devices to a site',
            action: 'Add devices to site',
        },
        // ============================================================================
        // Site Collections Operations
        // ============================================================================
        {
            name: 'Get All Site Collections',
            value: 'getAllSiteCollections',
            description: 'Retrieve all site collections',
            action: 'Get all site collections',
        },
        {
            name: 'Get Site Collection',
            value: 'getSiteCollection',
            description: 'Get information about a specific site collection',
            action: 'Get a site collection',
        },
        {
            name: 'Create Site Collection',
            value: 'createSiteCollection',
            description: 'Create a new site collection',
            action: 'Create a site collection',
        },
        {
            name: 'Update Site Collection',
            value: 'updateSiteCollection',
            description: 'Update an existing site collection',
            action: 'Update a site collection',
        },
        {
            name: 'Delete Site Collection',
            value: 'deleteSiteCollection',
            description: 'Delete a site collection by scopeId',
            action: 'Delete a site collection',
        },
        {
            name: 'Bulk Delete Site Collections',
            value: 'bulkDeleteSiteCollections',
            description: 'Delete multiple site collections at once',
            action: 'Bulk delete site collections',
        },
        {
            name: 'Add Sites to Collection',
            value: 'addSitesToCollection',
            description: 'Add sites to an existing site collection',
            action: 'Add sites to collection',
        },
        {
            name: 'Remove Sites from Collection',
            value: 'removeSitesFromCollection',
            description: 'Remove sites from a site collection',
            action: 'Remove sites from collection',
        },
        // ============================================================================
        // Device Groups Operations
        // ============================================================================
        {
            name: 'Get All Device Groups',
            value: 'getAllDeviceGroups',
            description: 'Retrieve all device groups',
            action: 'Get all device groups',
        },
        {
            name: 'Get Device Group',
            value: 'getDeviceGroup',
            description: 'Get information about a specific device group',
            action: 'Get a device group',
        },
        {
            name: 'Create Device Group',
            value: 'createDeviceGroup',
            description: 'Create a new device group',
            action: 'Create a device group',
        },
        {
            name: 'Create Device Group with Devices',
            value: 'createDeviceGroupWithDevices',
            description: 'Create a new device group and add devices to it',
            action: 'Create device group with devices',
        },
        {
            name: 'Update Device Group',
            value: 'updateDeviceGroup',
            description: 'Update an existing device group',
            action: 'Update a device group',
        },
        {
            name: 'Bulk Delete Device Groups',
            value: 'bulkDeleteDeviceGroups',
            description: 'Delete multiple device groups at once',
            action: 'Bulk delete device groups',
        },
        {
            name: 'Add Devices to Group',
            value: 'addDevicesToGroup',
            description: 'Add devices to a device group',
            action: 'Add devices to group',
        },
        {
            name: 'Remove Devices from Group',
            value: 'removeDevicesFromGroup',
            description: 'Remove devices from a device group',
            action: 'Remove devices from group',
        },
        // ============================================================================
        // Device Collections Operations
        // ============================================================================
        {
            name: 'Get All Device Collections',
            value: 'getAllDeviceCollections',
            description: 'Retrieve all device collections',
            action: 'Get all device collections',
        },
        {
            name: 'Get Device Collection',
            value: 'getDeviceCollection',
            description: 'Get information about a specific device collection',
            action: 'Get a device collection',
        },
        {
            name: 'Create Device Collection',
            value: 'createDeviceCollection',
            description: 'Create a new device collection',
            action: 'Create a device collection',
        },
        {
            name: 'Create Device Collection with Devices',
            value: 'createDeviceCollectionWithDevices',
            description: 'Create a new device collection and add devices to it',
            action: 'Create device collection with devices',
        },
        {
            name: 'Update Device Collection',
            value: 'updateDeviceCollection',
            description: 'Update an existing device collection',
            action: 'Update a device collection',
        },
        {
            name: 'Delete Device Collection',
            value: 'deleteDeviceCollection',
            description: 'Delete a device collection by scopeId',
            action: 'Delete a device collection',
        },
        {
            name: 'Bulk Delete Device Collections',
            value: 'bulkDeleteDeviceCollections',
            description: 'Delete multiple device collections at once',
            action: 'Bulk delete device collections',
        },
        {
            name: 'Add Devices to Device Collection',
            value: 'addDevicesToDeviceCollection',
            description: 'Add devices to a device collection',
            action: 'Add devices to device collection',
        },
        {
            name: 'Remove Devices from Device Collection',
            value: 'removeDevicesFromDeviceCollection',
            description: 'Remove devices from a device collection',
            action: 'Remove devices from device collection',
        },
        // ============================================================================
        // Hierarchy Operations
        // ============================================================================
        {
            name: 'Get Scope Hierarchy',
            value: 'getScopeHierarchy',
            description: 'Retrieve the scope hierarchy information',
            action: 'Get scope hierarchy',
        },
    ],
    default: 'getAllSites',
};
// ============================================================================
// Sites Fields
// ============================================================================
const getAllSitesFields = [
    {
        displayName: 'Return All',
        name: 'returnAll',
        type: 'boolean',
        default: false,
        description: 'Whether to return all results or only up to a given limit',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllSites'],
            },
        },
    },
    {
        displayName: 'Limit',
        name: 'limit',
        type: 'number',
        default: 100,
        description: 'Max number of sites to return',
        typeOptions: {
            minValue: 1,
            maxValue: 100,
        },
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllSites'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllSites'],
            },
        },
        options: [
            {
                displayName: 'Filter',
                name: 'filter',
                type: 'string',
                default: '',
                description: 'OData 4.0 filter (supports scopeName, address, city, state, country, zipcode, collectionName)',
                placeholder: 'scopeName eq \'Building A\'',
            },
            {
                displayName: 'Search',
                name: 'search',
                type: 'string',
                default: '',
                description: 'Partial or full string free text search',
                placeholder: 'office',
            },
            {
                displayName: 'Sort',
                name: 'sort',
                type: 'string',
                default: '',
                description: 'Sort by field (scopeName, address, state, country, city, deviceCount, collectionName, zipcode, timezone, longitude, latitude)',
                placeholder: 'scopeName ASC',
            },
        ],
    },
];
const getSiteFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the site to retrieve',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getSite'],
            },
        },
    },
];
const createSiteFields = [
    {
        displayName: 'Site Name',
        name: 'name',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the site scope',
        placeholder: 'Building A',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createSite'],
            },
        },
    },
    {
        displayName: 'Address',
        name: 'address',
        type: 'string',
        default: '',
        description: 'Street address of the site',
        placeholder: '123 Main St',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createSite'],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createSite'],
            },
        },
        options: [
            {
                displayName: 'City',
                name: 'city',
                type: 'string',
                default: '',
                placeholder: 'San Francisco',
            },
            {
                displayName: 'State',
                name: 'state',
                type: 'string',
                default: '',
                placeholder: 'California',
            },
            {
                displayName: 'Country',
                name: 'country',
                type: 'string',
                default: '',
                placeholder: 'USA',
            },
            {
                displayName: 'Zipcode',
                name: 'zipcode',
                type: 'string',
                default: '',
                placeholder: '94105',
            },
            {
                displayName: 'Latitude',
                name: 'latitude',
                type: 'number',
                default: 0,
                description: 'Latitude coordinate',
                typeOptions: {
                    numberPrecision: 6,
                },
            },
            {
                displayName: 'Longitude',
                name: 'longitude',
                type: 'number',
                default: 0,
                description: 'Longitude coordinate',
                typeOptions: {
                    numberPrecision: 6,
                },
            },
        ],
    },
];
// ============================================================================
// Site Collections Fields
// ============================================================================
const getAllSiteCollectionsFields = [
    {
        displayName: 'Return All',
        name: 'returnAll',
        type: 'boolean',
        default: false,
        description: 'Whether to return all results or only up to a given limit',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllSiteCollections'],
            },
        },
    },
    {
        displayName: 'Limit',
        name: 'limit',
        type: 'number',
        default: 100,
        description: 'Max number of site collections to return',
        typeOptions: {
            minValue: 1,
            maxValue: 100,
        },
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllSiteCollections'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllSiteCollections'],
            },
        },
        options: [
            {
                displayName: 'Filter',
                name: 'filter',
                type: 'string',
                default: '',
                description: 'OData 4.0 filter (supports scopeName, description)',
                placeholder: 'scopeName eq \'Main Building\'',
            },
            {
                displayName: 'Search',
                name: 'search',
                type: 'string',
                default: '',
                description: 'Partial or full string free text search',
                placeholder: 'building',
            },
            {
                displayName: 'Sort',
                name: 'sort',
                type: 'string',
                default: '',
                description: 'Sort by field (scopeName, description, deviceCount, siteCount)',
                placeholder: 'scopeName ASC',
            },
        ],
    },
];
// ============================================================================
// Device Groups Fields
// ============================================================================
const getAllDeviceGroupsFields = [
    {
        displayName: 'Return All',
        name: 'returnAll',
        type: 'boolean',
        default: false,
        description: 'Whether to return all results or only up to a given limit',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllDeviceGroups'],
            },
        },
    },
    {
        displayName: 'Limit',
        name: 'limit',
        type: 'number',
        default: 100,
        description: 'Max number of device groups to return',
        typeOptions: {
            minValue: 1,
            maxValue: 100,
        },
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllDeviceGroups'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllDeviceGroups'],
            },
        },
        options: [
            {
                displayName: 'Filter',
                name: 'filter',
                type: 'string',
                default: '',
                description: 'OData 4.0 filter (supports scopeName)',
                placeholder: 'scopeName eq \'Network Devices\'',
            },
            {
                displayName: 'Search',
                name: 'search',
                type: 'string',
                default: '',
                description: 'Partial or full string free text search',
                placeholder: 'switch',
            },
            {
                displayName: 'Sort',
                name: 'sort',
                type: 'string',
                default: '',
                description: 'Sort by field (scopeName, deviceCount)',
                placeholder: 'scopeName ASC',
            },
        ],
    },
];
// ============================================================================
// Additional Sites Fields
// ============================================================================
const updateSiteFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the site to update',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['updateSite'],
            },
        },
    },
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['updateSite'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Name of the site scope',
                placeholder: 'Building A',
            },
            {
                displayName: 'Address',
                name: 'address',
                type: 'string',
                default: '',
                description: 'Street address of the site',
                placeholder: '123 Main St',
            },
            {
                displayName: 'City',
                name: 'city',
                type: 'string',
                default: '',
                placeholder: 'San Francisco',
            },
            {
                displayName: 'State',
                name: 'state',
                type: 'string',
                default: '',
                placeholder: 'California',
            },
            {
                displayName: 'Country',
                name: 'country',
                type: 'string',
                default: '',
                placeholder: 'USA',
            },
            {
                displayName: 'Zipcode',
                name: 'zipcode',
                type: 'string',
                default: '',
                placeholder: '94105',
            },
            {
                displayName: 'Latitude',
                name: 'latitude',
                type: 'number',
                default: 0,
                description: 'Latitude coordinate',
                typeOptions: {
                    numberPrecision: 6,
                },
            },
            {
                displayName: 'Longitude',
                name: 'longitude',
                type: 'number',
                default: 0,
                description: 'Longitude coordinate',
                typeOptions: {
                    numberPrecision: 6,
                },
            },
        ],
    },
];
const deleteSiteFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the site to delete',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['deleteSite'],
            },
        },
    },
];
const bulkDeleteSitesFields = [
    {
        displayName: 'Site IDs',
        name: 'ids',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of site scopeIds to delete',
        placeholder: 'abc123,def456,ghi789',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['bulkDeleteSites'],
            },
        },
    },
];
const addDevicesToSiteFields = [
    {
        displayName: 'Destination Scope ID',
        name: 'desScopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the site to add devices to',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['addDevicesToSite'],
            },
        },
    },
    {
        displayName: 'Devices',
        name: 'devices',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of device serial numbers to add',
        placeholder: 'SN123456,SN789012',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['addDevicesToSite'],
            },
        },
    },
];
// ============================================================================
// Additional Site Collections Fields
// ============================================================================
const getSiteCollectionFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the site collection to retrieve',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getSiteCollection'],
            },
        },
    },
];
const createSiteCollectionFields = [
    {
        displayName: 'Collection Name',
        name: 'scopeName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the site collection',
        placeholder: 'West Coast Sites',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createSiteCollection'],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createSiteCollection'],
            },
        },
        options: [
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Description of the site collection',
            },
            {
                displayName: 'Site IDs',
                name: 'siteIds',
                type: 'string',
                default: '',
                description: 'Comma-separated list of site scopeIds to include',
                placeholder: 'site1,site2,site3',
            },
        ],
    },
];
const updateSiteCollectionFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the site collection to update',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['updateSiteCollection'],
            },
        },
    },
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['updateSiteCollection'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Name of the site collection',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Description of the site collection',
            },
        ],
    },
];
const deleteSiteCollectionFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the site collection to delete',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['deleteSiteCollection'],
            },
        },
    },
];
const bulkDeleteSiteCollectionsFields = [
    {
        displayName: 'Collection IDs',
        name: 'ids',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of site collection scopeIds to delete',
        placeholder: 'abc123,def456,ghi789',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['bulkDeleteSiteCollections'],
            },
        },
    },
];
const addSitesToCollectionFields = [
    {
        displayName: 'Destination Scope ID',
        name: 'desScopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the site collection to add sites to',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['addSitesToCollection'],
            },
        },
    },
    {
        displayName: 'Site IDs',
        name: 'siteIds',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of site scopeIds to add',
        placeholder: 'site1,site2,site3',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['addSitesToCollection'],
            },
        },
    },
];
const removeSitesFromCollectionFields = [
    {
        displayName: 'Source Scope ID',
        name: 'srcScopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the site collection to remove sites from',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['removeSitesFromCollection'],
            },
        },
    },
    {
        displayName: 'Site IDs',
        name: 'siteIds',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of site scopeIds to remove',
        placeholder: 'site1,site2,site3',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['removeSitesFromCollection'],
            },
        },
    },
];
// ============================================================================
// Additional Device Groups Fields
// ============================================================================
const getDeviceGroupFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the device group to retrieve',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getDeviceGroup'],
            },
        },
    },
];
const createDeviceGroupFields = [
    {
        displayName: 'Group Name',
        name: 'scopeName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the device group',
        placeholder: 'Network Switches',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceGroup'],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceGroup'],
            },
        },
        options: [
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Description of the device group',
            },
        ],
    },
];
const createDeviceGroupWithDevicesFields = [
    {
        displayName: 'Group Name',
        name: 'scopeName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the device group',
        placeholder: 'Network Switches',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceGroupWithDevices'],
            },
        },
    },
    {
        displayName: 'Devices',
        name: 'devices',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of device serial numbers',
        placeholder: 'SN123456,SN789012',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceGroupWithDevices'],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceGroupWithDevices'],
            },
        },
        options: [
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Description of the device group',
            },
        ],
    },
];
const updateDeviceGroupFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the device group to update',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['updateDeviceGroup'],
            },
        },
    },
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['updateDeviceGroup'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Name of the device group',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Description of the device group',
            },
        ],
    },
];
const bulkDeleteDeviceGroupsFields = [
    {
        displayName: 'Group IDs',
        name: 'ids',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of device group scopeIds to delete',
        placeholder: 'abc123,def456,ghi789',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['bulkDeleteDeviceGroups'],
            },
        },
    },
];
const addDevicesToGroupFields = [
    {
        displayName: 'Destination Scope ID',
        name: 'desScopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the device group to add devices to',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['addDevicesToGroup'],
            },
        },
    },
    {
        displayName: 'Devices',
        name: 'devices',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of device serial numbers to add',
        placeholder: 'SN123456,SN789012',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['addDevicesToGroup'],
            },
        },
    },
];
const removeDevicesFromGroupFields = [
    {
        displayName: 'Source Scope ID',
        name: 'srcScopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the device group to remove devices from',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['removeDevicesFromGroup'],
            },
        },
    },
    {
        displayName: 'Devices',
        name: 'devices',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of device serial numbers to remove',
        placeholder: 'SN123456,SN789012',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['removeDevicesFromGroup'],
            },
        },
    },
];
// ============================================================================
// Device Collections Fields
// ============================================================================
const getAllDeviceCollectionsFields = [
    {
        displayName: 'Return All',
        name: 'returnAll',
        type: 'boolean',
        default: false,
        description: 'Whether to return all results or only up to a given limit',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllDeviceCollections'],
            },
        },
    },
    {
        displayName: 'Limit',
        name: 'limit',
        type: 'number',
        default: 100,
        description: 'Max number of device collections to return',
        typeOptions: {
            minValue: 1,
            maxValue: 100,
        },
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllDeviceCollections'],
                returnAll: [false],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getAllDeviceCollections'],
            },
        },
        options: [
            {
                displayName: 'Filter',
                name: 'filter',
                type: 'string',
                default: '',
                description: 'OData 4.0 filter (supports scopeName)',
                placeholder: 'scopeName eq \'Production Devices\'',
            },
            {
                displayName: 'Search',
                name: 'search',
                type: 'string',
                default: '',
                description: 'Partial or full string free text search',
                placeholder: 'production',
            },
            {
                displayName: 'Sort',
                name: 'sort',
                type: 'string',
                default: '',
                description: 'Sort by field (scopeName, deviceCount)',
                placeholder: 'scopeName ASC',
            },
        ],
    },
];
const getDeviceCollectionFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the device collection to retrieve',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getDeviceCollection'],
            },
        },
    },
];
const createDeviceCollectionFields = [
    {
        displayName: 'Collection Name',
        name: 'scopeName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the device collection',
        placeholder: 'Production Devices',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceCollection'],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceCollection'],
            },
        },
        options: [
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Description of the device collection',
            },
        ],
    },
];
const createDeviceCollectionWithDevicesFields = [
    {
        displayName: 'Collection Name',
        name: 'scopeName',
        type: 'string',
        required: true,
        default: '',
        description: 'Name of the device collection',
        placeholder: 'Production Devices',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceCollectionWithDevices'],
            },
        },
    },
    {
        displayName: 'Devices',
        name: 'devices',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of device serial numbers',
        placeholder: 'SN123456,SN789012',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceCollectionWithDevices'],
            },
        },
    },
    {
        displayName: 'Additional Fields',
        name: 'additionalFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['createDeviceCollectionWithDevices'],
            },
        },
        options: [
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Description of the device collection',
            },
        ],
    },
];
const updateDeviceCollectionFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the device collection to update',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['updateDeviceCollection'],
            },
        },
    },
    {
        displayName: 'Update Fields',
        name: 'updateFields',
        type: 'collection',
        placeholder: 'Add Field',
        default: {},
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['updateDeviceCollection'],
            },
        },
        options: [
            {
                displayName: 'Name',
                name: 'name',
                type: 'string',
                default: '',
                description: 'Name of the device collection',
            },
            {
                displayName: 'Description',
                name: 'description',
                type: 'string',
                default: '',
                description: 'Description of the device collection',
            },
        ],
    },
];
const deleteDeviceCollectionFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the device collection to delete',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['deleteDeviceCollection'],
            },
        },
    },
];
const bulkDeleteDeviceCollectionsFields = [
    {
        displayName: 'Collection IDs',
        name: 'ids',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of device collection scopeIds to delete',
        placeholder: 'abc123,def456,ghi789',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['bulkDeleteDeviceCollections'],
            },
        },
    },
];
const addDevicesToDeviceCollectionFields = [
    {
        displayName: 'Destination Scope ID',
        name: 'desScopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the device collection to add devices to',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['addDevicesToDeviceCollection'],
            },
        },
    },
    {
        displayName: 'Devices',
        name: 'devices',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of device serial numbers to add',
        placeholder: 'SN123456,SN789012',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['addDevicesToDeviceCollection'],
            },
        },
    },
];
const removeDevicesFromDeviceCollectionFields = [
    {
        displayName: 'Source Scope ID',
        name: 'srcScopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId of the device collection to remove devices from',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['removeDevicesFromDeviceCollection'],
            },
        },
    },
    {
        displayName: 'Devices',
        name: 'devices',
        type: 'string',
        required: true,
        default: '',
        description: 'Comma-separated list of device serial numbers to remove',
        placeholder: 'SN123456,SN789012',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['removeDevicesFromDeviceCollection'],
            },
        },
    },
];
// ============================================================================
// Hierarchy Fields
// ============================================================================
const getScopeHierarchyFields = [
    {
        displayName: 'Scope ID',
        name: 'scopeId',
        type: 'string',
        required: true,
        default: '',
        description: 'The scopeId for which to retrieve hierarchy information',
        placeholder: 'abc123-def456',
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getScopeHierarchy'],
            },
        },
    },
    {
        displayName: 'Scope Type',
        name: 'scopeType',
        type: 'options',
        required: true,
        default: 'site',
        description: 'The type of scope',
        options: [
            {
                name: 'Device',
                value: 'device',
            },
            {
                name: 'Site',
                value: 'site',
            },
            {
                name: 'Site Collection',
                value: 'site-collection',
            },
            {
                name: 'Device Groups',
                value: 'device-groups',
            },
            {
                name: 'Organization',
                value: 'org',
            },
        ],
        displayOptions: {
            show: {
                domain: ['configuration'],
                resource: ['scopeManagement'],
                operation: ['getScopeHierarchy'],
            },
        },
    },
];
// Export all field definitions
exports.scopeManagementFields = [
    ...getAllSitesFields,
    ...getSiteFields,
    ...createSiteFields,
    ...updateSiteFields,
    ...deleteSiteFields,
    ...bulkDeleteSitesFields,
    ...addDevicesToSiteFields,
    ...getAllSiteCollectionsFields,
    ...getSiteCollectionFields,
    ...createSiteCollectionFields,
    ...updateSiteCollectionFields,
    ...deleteSiteCollectionFields,
    ...bulkDeleteSiteCollectionsFields,
    ...addSitesToCollectionFields,
    ...removeSitesFromCollectionFields,
    ...getAllDeviceGroupsFields,
    ...getDeviceGroupFields,
    ...createDeviceGroupFields,
    ...createDeviceGroupWithDevicesFields,
    ...updateDeviceGroupFields,
    ...bulkDeleteDeviceGroupsFields,
    ...addDevicesToGroupFields,
    ...removeDevicesFromGroupFields,
    ...getAllDeviceCollectionsFields,
    ...getDeviceCollectionFields,
    ...createDeviceCollectionFields,
    ...createDeviceCollectionWithDevicesFields,
    ...updateDeviceCollectionFields,
    ...deleteDeviceCollectionFields,
    ...bulkDeleteDeviceCollectionsFields,
    ...addDevicesToDeviceCollectionFields,
    ...removeDevicesFromDeviceCollectionFields,
    ...getScopeHierarchyFields,
];