UNPKG

n8n-nodes-arubaclearpass

Version:

n8n community node for Aruba ClearPass API integration with comprehensive identity, policy, and enforcement profile management

669 lines (668 loc) 20.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deviceProperties = exports.deviceFields = exports.deviceOperations = void 0; // Define operations for Device resource exports.deviceOperations = { displayName: 'Operation', name: 'operation', type: 'options', displayOptions: { show: { domain: ['Identities'], resource: ['Device'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a new device account', action: 'Create a device', }, { name: 'Delete', value: 'delete', description: 'Delete a device account', action: 'Delete a device', }, { name: 'Get', value: 'get', description: 'Get a device account by ID', action: 'Get a device', }, { name: 'Get By MAC', value: 'getByMac', description: 'Get a device account by MAC address', action: 'Get a device by MAC', }, { name: 'List', value: 'list', description: 'Get all device accounts', action: 'List all devices', }, { name: 'Update', value: 'update', description: 'Update a device account', action: 'Update a device', }, { name: 'Update By MAC', value: 'updateByMac', description: 'Update a device account by MAC address', action: 'Update a device by MAC', }, { name: 'Replace', value: 'replace', description: 'Replace a device account', action: 'Replace a device', }, { name: 'Replace By MAC', value: 'replaceByMac', description: 'Replace a device account by MAC address', action: 'Replace a device by MAC', }, { name: 'Delete By MAC', value: 'deleteByMac', description: 'Delete a device account by MAC address', action: 'Delete a device by MAC', }, ], default: 'list', }; // Define fields for Device resource exports.deviceFields = [ // Fields for ID-based operations { displayName: 'Device ID', name: 'deviceId', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['get', 'update', 'delete', 'replace'], }, }, typeOptions: { alwaysOpenEditWindow: true, expressionsEnabled: true, }, description: 'The ID of the device account', }, // Fields for MAC-based operations { displayName: 'MAC Address', name: 'macAddress', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['getByMac', 'deleteByMac', 'updateByMac', 'replaceByMac'], }, }, typeOptions: { alwaysOpenEditWindow: true, expressionsEnabled: true, }, description: 'MAC address of the device account', }, // Basic fields for create operations { displayName: 'MAC Address', name: 'mac', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['create'], }, }, typeOptions: { alwaysOpenEditWindow: true, expressionsEnabled: true, }, description: 'MAC address of the device', }, { displayName: 'Role ID', name: 'role_id', type: 'number', required: true, default: 0, displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['create'], }, }, typeOptions: { expressionsEnabled: true, }, description: 'Role to assign to the account', }, // Additional fields for create operation { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['create'], }, }, options: [ { displayName: 'Role Name', name: 'role_name', type: 'string', default: '', description: 'Name of the role to assign to the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Enabled', name: 'enabled', type: 'boolean', default: true, description: 'Whether the account is enabled', }, { displayName: 'Start Time', name: 'start_time', type: 'dateTime', default: '', description: 'Time at which the account will be enabled (ISO 8601 format)', }, { displayName: 'Expire Time', name: 'expire_time', type: 'dateTime', default: '', description: 'Time at which the account will expire (ISO 8601 format)', }, { displayName: 'Visitor Name', name: 'visitor_name', type: 'string', default: '', description: 'Name to display for the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Sponsor Name', name: 'sponsor_name', type: 'string', default: '', description: 'Name of the sponsor of the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Sponsor Profile', name: 'sponsor_profile', type: 'string', default: '', description: "Numeric operator profile ID for the account's sponsor", typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Notes', name: 'notes', type: 'string', default: '', description: 'Comments or notes stored with the account', typeOptions: { alwaysOpenEditWindow: true, expressionsEnabled: true, }, }, { displayName: 'Source', name: 'source', type: 'string', default: '', description: 'Origin of the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Custom Fields', name: 'customFields', type: 'json', default: '{}', description: 'Custom fields to include with the device account', typeOptions: { alwaysOpenEditWindow: true, }, }, ], }, // Fields for replace operations { displayName: 'MAC Address', name: 'mac', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['replace', 'replaceByMac'], }, }, typeOptions: { alwaysOpenEditWindow: true, expressionsEnabled: true, }, description: 'MAC address of the device', }, { displayName: 'Role ID', name: 'role_id', type: 'number', required: true, default: 0, displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['replace', 'replaceByMac'], }, }, typeOptions: { expressionsEnabled: true, }, description: 'Role to assign to the account', }, { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['replace', 'replaceByMac'], }, }, options: [ { displayName: 'Role Name', name: 'role_name', type: 'string', default: '', description: 'Name of the role to assign to the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Enabled', name: 'enabled', type: 'boolean', default: true, description: 'Whether the account is enabled', }, { displayName: 'Start Time', name: 'start_time', type: 'dateTime', default: '', description: 'Time at which the account will be enabled (ISO 8601 format)', }, { displayName: 'Expire Time', name: 'expire_time', type: 'dateTime', default: '', description: 'Time at which the account will expire (ISO 8601 format)', }, { displayName: 'Visitor Name', name: 'visitor_name', type: 'string', default: '', description: 'Name to display for the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Sponsor Name', name: 'sponsor_name', type: 'string', default: '', description: 'Name of the sponsor of the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Sponsor Profile', name: 'sponsor_profile', type: 'string', default: '', description: "Numeric operator profile ID for the account's sponsor", typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Notes', name: 'notes', type: 'string', default: '', description: 'Comments or notes stored with the account', typeOptions: { alwaysOpenEditWindow: true, expressionsEnabled: true, }, }, { displayName: 'Source', name: 'source', type: 'string', default: '', description: 'Origin of the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Custom Fields', name: 'customFields', type: 'json', default: '{}', description: 'Custom fields to include with the device account', typeOptions: { alwaysOpenEditWindow: true, }, }, ], }, // Update fields { displayName: 'Update Fields', name: 'updateFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['update', 'updateByMac'], }, }, options: [ { displayName: 'MAC Address', name: 'mac', type: 'string', default: '', description: 'MAC address of the device', typeOptions: { alwaysOpenEditWindow: true, expressionsEnabled: true, }, }, { displayName: 'Role ID', name: 'role_id', type: 'number', default: 0, description: 'Role to assign to the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Role Name', name: 'role_name', type: 'string', default: '', description: 'Name of the role to assign to the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Enabled', name: 'enabled', type: 'boolean', default: true, description: 'Whether the account is enabled', }, { displayName: 'Start Time', name: 'start_time', type: 'dateTime', default: '', description: 'Time at which the account will be enabled (ISO 8601 format)', }, { displayName: 'Expire Time', name: 'expire_time', type: 'dateTime', default: '', description: 'Time at which the account will expire (ISO 8601 format)', }, { displayName: 'Visitor Name', name: 'visitor_name', type: 'string', default: '', description: 'Name to display for the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Sponsor Name', name: 'sponsor_name', type: 'string', default: '', description: 'Name of the sponsor of the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Sponsor Profile', name: 'sponsor_profile', type: 'string', default: '', description: "Numeric operator profile ID for the account's sponsor", typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Notes', name: 'notes', type: 'string', default: '', description: 'Comments or notes stored with the account', typeOptions: { alwaysOpenEditWindow: true, expressionsEnabled: true, }, }, { displayName: 'Source', name: 'source', type: 'string', default: '', description: 'Origin of the account', typeOptions: { expressionsEnabled: true, }, }, { displayName: 'Custom Fields', name: 'customFields', type: 'json', default: '{}', description: 'Custom fields to include with the device account', typeOptions: { alwaysOpenEditWindow: true, }, }, ], }, // Common options for operations that support CoA { displayName: 'Options', name: 'options', type: 'collection', placeholder: 'Add Option', default: {}, displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: [ 'create', 'update', 'updateByMac', 'replace', 'replaceByMac', 'delete', 'deleteByMac', ], }, }, options: [ { displayName: 'Change of Authorization', name: 'changeOfAuthorization', type: 'options', options: [ { name: 'Use Default Setting', value: '', }, { name: 'Yes', value: 'true', }, { name: 'No', value: 'false', }, ], default: '', description: 'Whether to update the network state using Disconnect-Request or CoA-Request', }, ], }, // Fields for list operation { displayName: 'Return All', name: 'returnAll', type: 'boolean', displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['list'], }, }, default: false, description: 'Whether to return all results or only up to a given limit', }, { displayName: 'Limit', name: 'limit', type: 'number', displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['list'], returnAll: [false], }, }, typeOptions: { minValue: 1, maxValue: 1000, }, default: 100, description: 'Max number of results to return', }, { displayName: 'Filters', name: 'filters', type: 'collection', placeholder: 'Add Filter', default: {}, displayOptions: { show: { domain: ['Identities'], resource: ['Device'], operation: ['list'], }, }, options: [ { displayName: 'Filter', name: 'filter', type: 'string', default: '', description: 'JSON filter expression specifying the items to return', placeholder: '{"mac": {"$contains": "00:11:22"}}', typeOptions: { alwaysOpenEditWindow: true, }, }, { displayName: 'Sort', name: 'sort', type: 'string', default: '-id', description: 'Sort ordering for returned items (default -id)', placeholder: '+mac or -create_time', }, { displayName: 'Calculate Count', name: 'calculate_count', type: 'boolean', default: false, description: 'Whether to calculate the total item count', }, ], }, ]; // Export combined properties for use in index.ts exports.deviceProperties = [exports.deviceOperations, ...exports.deviceFields];