UNPKG

n8n-nodes-arubaclearpass

Version:

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

478 lines (477 loc) 14.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.guestUserProperties = exports.guestUserFields = exports.guestUserOperations = void 0; // GuestUser operations exports.guestUserOperations = { displayName: 'Operation', name: 'operation', type: 'options', displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a new guest account', action: 'Create a guest account', }, { name: 'Delete', value: 'delete', description: 'Delete a guest account', action: 'Delete a guest account', }, { name: 'Get', value: 'get', description: 'Get a guest account by ID', action: 'Get a guest account', }, { name: 'Get By Username', value: 'getByUsername', description: 'Get a guest account by username', action: 'Get a guest account by username', }, { name: 'List', value: 'list', description: 'Get all guest accounts', action: 'List all guest accounts', }, { name: 'Update', value: 'update', description: 'Update a guest account', action: 'Update a guest account', }, { name: 'Update By Username', value: 'updateByUsername', description: 'Update a guest account by username', action: 'Update a guest account by username', }, { name: 'Replace', value: 'replace', description: 'Replace a guest account', action: 'Replace a guest account', }, { name: 'Replace By Username', value: 'replaceByUsername', description: 'Replace a guest account by username', action: 'Replace a guest account by username', }, { name: 'Delete By Username', value: 'deleteByUsername', description: 'Delete a guest account by username', action: 'Delete a guest account by username', }, ], default: 'list', }; // Fields for guest users exports.guestUserFields = [ // ID field (for operations that require guest ID) { displayName: 'Guest User ID', name: 'guestUserId', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['get', 'delete', 'update', 'replace'], }, }, description: 'Numeric ID of the guest account', }, // Username field (for operations that require username) { displayName: 'Username', name: 'username', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: [ 'getByUsername', 'updateByUsername', 'replaceByUsername', 'deleteByUsername', 'create', ], }, }, description: 'Username of the guest account', }, // Required fields for create operation { displayName: 'Password', name: 'password', type: 'string', required: true, default: '', typeOptions: { password: true }, displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['create', 'replace', 'replaceByUsername'], }, }, description: 'Password for the guest account', }, { displayName: 'Role ID', name: 'roleId', type: 'number', required: true, default: 2, displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['create', 'replace', 'replaceByUsername'], }, }, description: 'Role ID to assign to the account (default is typically Guest role)', }, { displayName: 'Sponsor Name', name: 'sponsorName', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['create', 'replace', 'replaceByUsername'], }, }, description: 'Name of the sponsor of the account', }, { displayName: 'Sponsor Profile', name: 'sponsorProfile', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['create', 'replace', 'replaceByUsername'], }, }, description: 'Profile of the sponsor of the account', }, { displayName: 'Account State', name: 'enabled', type: 'boolean', required: true, default: true, displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['create', 'replace', 'replaceByUsername'], }, }, description: 'Whether the account is enabled', }, { displayName: 'Start Time', name: 'startTime', type: 'dateTime', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['create', 'replace', 'replaceByUsername'], }, }, description: 'Time at which the account will be enabled (ISO 8601 format)', }, { displayName: 'Expire Time', name: 'expireTime', type: 'dateTime', required: true, default: '', displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['create', 'replace', 'replaceByUsername'], }, }, description: 'Time at which the account will expire (ISO 8601 format)', }, // Optional fields for create, update, and replace operations { displayName: 'Additional Fields', name: 'additionalFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['create', 'update', 'updateByUsername', 'replace', 'replaceByUsername'], }, }, options: [ { displayName: 'Email', name: 'email', type: 'string', default: '', description: 'Email address for the account', }, { displayName: 'MAC Address', name: 'mac', type: 'string', default: '', placeholder: '00:11:22:33:44:55', description: "MAC address of the guest's device", }, { displayName: 'Notes', name: 'notes', type: 'string', default: '', description: 'Comments or notes stored with the account', typeOptions: { rows: 4, }, }, { displayName: 'Simultaneous Use', name: 'simultaneous_use', type: 'number', default: 1, description: 'Number of simultaneous sessions allowed for the account', }, { displayName: 'Do Expire', name: 'do_expire', type: 'number', default: 3, description: 'Action to take when expire_time is reached (0=Disable, 1=Delete, etc.)', }, { displayName: 'Sponsor Email', name: 'sponsor_email', type: 'string', default: '', description: 'Email address of the sponsor', }, { displayName: 'Visitor Name', name: 'visitor_name', type: 'string', default: '', description: "The guest's full name", }, { displayName: 'Visitor Company', name: 'visitor_company', type: 'string', default: '', description: "The guest's company name", }, { displayName: 'Visitor Phone', name: 'visitor_phone', type: 'string', default: '', description: "The guest's contact telephone number", }, { displayName: 'Custom Fields', name: 'customFields', type: 'json', default: '{}', description: 'Additional custom fields in JSON format', }, ], }, // For password updates in update operations { displayName: 'Update Password', name: 'updatePassword', type: 'boolean', default: false, displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['update', 'updateByUsername'], }, }, description: 'Whether to update the password', }, { displayName: 'New Password', name: 'password', type: 'string', required: true, default: '', typeOptions: { password: true }, displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['update', 'updateByUsername'], updatePassword: [true], }, }, description: 'New password for the guest account', }, // For update operations - optional role_id { displayName: 'Update Role', name: 'updateRole', type: 'boolean', default: false, displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['update', 'updateByUsername'], }, }, description: 'Whether to update the role ID', }, { displayName: 'Role ID', name: 'roleId', type: 'number', required: true, default: 2, displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: ['update', 'updateByUsername'], updateRole: [true], }, }, description: 'New role ID to assign to the account', }, // COA Parameter for operations that modify data { displayName: 'Change of Authorization', name: 'changeOfAuthorization', type: 'boolean', default: false, displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], operation: [ 'create', 'update', 'updateByUsername', 'replace', 'replaceByUsername', 'delete', 'deleteByUsername', ], }, }, description: 'Whether to update the network state using Disconnect-Request or CoA-Request', }, // Fields for filtering in list operation { displayName: 'Return All', name: 'returnAll', type: 'boolean', displayOptions: { show: { domain: ['Identities'], resource: ['GuestUser'], 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: ['GuestUser'], 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: ['GuestUser'], operation: ['list'], }, }, options: [ { displayName: 'Filter', name: 'filter', type: 'string', default: '', description: 'JSON filter expression specifying the items to return', placeholder: '{"current_state": "active", "username": {"$contains": "test"}}', }, { displayName: 'Sort', name: 'sort', type: 'string', default: '-id', description: 'Sort ordering for returned items (default -id)', placeholder: '+username or -expire_time', }, { displayName: 'Calculate Count', name: 'calculate_count', type: 'boolean', default: false, description: 'Whether to calculate the total item count', }, ], }, ]; exports.guestUserProperties = [exports.guestUserOperations, ...exports.guestUserFields];