UNPKG

n8n-nodes-arubaclearpass

Version:

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

433 lines (432 loc) 13.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.enforcementPolicyProperties = exports.enforcementPolicyFields = exports.enforcementPolicyOperations = void 0; // Define operations for EnforcementPolicy resource exports.enforcementPolicyOperations = { displayName: 'Operation', name: 'operation', type: 'options', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], }, }, options: [ { name: 'Create', value: 'create', description: 'Create a new enforcement policy', action: 'Create an enforcement policy', }, { name: 'Delete', value: 'delete', description: 'Delete an enforcement policy', action: 'Delete an enforcement policy', }, { name: 'Get', value: 'get', description: 'Get an enforcement policy by ID', action: 'Get an enforcement policy', }, { name: 'Get By Name', value: 'getByName', description: 'Get an enforcement policy by name', action: 'Get an enforcement policy by name', }, { name: 'List', value: 'list', description: 'Get all enforcement policies', action: 'List all enforcement policies', }, { name: 'Update', value: 'update', description: 'Update an enforcement policy', action: 'Update an enforcement policy', }, { name: 'Replace', value: 'replace', description: 'Replace an enforcement policy', action: 'Replace an enforcement policy', }, { name: 'Delete By Name', value: 'deleteByName', description: 'Delete an enforcement policy by name', action: 'Delete an enforcement policy by name', }, { name: 'Update By Name', value: 'updateByName', description: 'Update an enforcement policy by name', action: 'Update an enforcement policy by name', }, { name: 'Replace By Name', value: 'replaceByName', description: 'Replace an enforcement policy by name', action: 'Replace an enforcement policy by name', }, ], default: 'list', }; // Define fields for EnforcementPolicy resource exports.enforcementPolicyFields = [ // Fields for ID-based operations { displayName: 'Enforcement Policy ID', name: 'enforcementPolicyId', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['get', 'update', 'delete', 'replace'], }, }, description: 'The ID of the enforcement policy', }, // Fields for name-based operations { displayName: 'Name', name: 'name', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['getByName', 'deleteByName', 'updateByName', 'replaceByName'], }, }, description: 'The unique name of the enforcement policy', }, // Common fields for create and replace operations { displayName: 'Name', name: 'name', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['create', 'replace', 'replaceByName'], }, }, description: 'Name of the enforcement policy', }, { displayName: 'Enforcement Type', name: 'enforcement_type', type: 'options', options: [ { name: 'RADIUS', value: 'RADIUS', }, { name: 'TACACS', value: 'TACACS', }, { name: 'WEBAUTH', value: 'WEBAUTH', }, { name: 'Application', value: 'Application', }, { name: 'Event', value: 'Event', }, ], required: true, default: 'RADIUS', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['create', 'replace', 'replaceByName'], }, }, description: 'Enforcement type of the policy', }, { displayName: 'Default Enforcement Profile', name: 'default_enforcement_profile', type: 'string', required: true, default: '', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['create', 'replace', 'replaceByName'], }, }, description: 'Default enforcement profile for the policy', }, { displayName: 'Rule Evaluation Algorithm', name: 'rule_eval_algo', type: 'options', options: [ { name: 'First Applicable', value: 'first-applicable', description: 'Stop processing once a rule matches', }, { name: 'Evaluate All', value: 'evaluate-all', description: 'Process all rules regardless of matches', }, ], required: true, default: 'first-applicable', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['create', 'replace', 'replaceByName'], }, }, description: 'Algorithm to use when evaluating rules', }, { displayName: 'Description', name: 'description', type: 'string', required: false, default: '', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['create', 'replace', 'replaceByName'], }, }, description: 'Description of the enforcement policy', }, // Rules JSON Field for create/replace - This is complex, so we'll use JSON input { displayName: 'Rules', name: 'rules', type: 'json', required: true, default: '[]', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['create', 'replace', 'replaceByName'], }, }, description: 'JSON array of enforcement rules. Each rule should have enforcement_profile_names and condition properties.', placeholder: `[ { "enforcement_profile_names": "Default", "condition": { "type": "Connection", "name": "Connection:Protocol", "oper": "EQUALS", "value": "MAC" } } ]`, }, // Update fields { displayName: 'Update Fields', name: 'updateFields', type: 'collection', placeholder: 'Add Field', default: {}, displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['update', 'updateByName'], }, }, options: [ { displayName: 'Name', name: 'name', type: 'string', default: '', description: 'Name of the enforcement policy', }, { displayName: 'Description', name: 'description', type: 'string', default: '', description: 'Description of the enforcement policy', }, { displayName: 'Enforcement Type', name: 'enforcement_type', type: 'options', options: [ { name: 'RADIUS', value: 'RADIUS', }, { name: 'TACACS', value: 'TACACS', }, { name: 'WEBAUTH', value: 'WEBAUTH', }, { name: 'Application', value: 'Application', }, { name: 'Event', value: 'Event', }, ], default: 'RADIUS', description: 'Enforcement type of the policy', }, { displayName: 'Default Enforcement Profile', name: 'default_enforcement_profile', type: 'string', default: '', description: 'Default enforcement profile for the policy', }, { displayName: 'Rule Evaluation Algorithm', name: 'rule_eval_algo', type: 'options', options: [ { name: 'First Applicable', value: 'first-applicable', description: 'Stop processing once a rule matches', }, { name: 'Evaluate All', value: 'evaluate-all', description: 'Process all rules regardless of matches', }, ], default: 'first-applicable', description: 'Algorithm to use when evaluating rules', }, { displayName: 'Rules', name: 'rules', type: 'json', default: '[]', description: 'JSON array of enforcement rules. Each rule should have enforcement_profile_names and condition properties.', placeholder: `[ { "enforcement_profile_names": "Default", "condition": { "type": "Connection", "name": "Connection:Protocol", "oper": "EQUALS", "value": "MAC" } } ]`, }, ], }, // Fields for list operation { displayName: 'Return All', name: 'returnAll', type: 'boolean', displayOptions: { show: { domain: ['PolicyElements'], resource: ['EnforcementPolicy'], 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: ['PolicyElements'], resource: ['EnforcementPolicy'], 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: ['PolicyElements'], resource: ['EnforcementPolicy'], operation: ['list'], }, }, options: [ { displayName: 'Filter', name: 'filter', type: 'string', default: '', description: 'JSON filter expression specifying the items to return', placeholder: '{"name": {"$contains": "RADIUS"}}', }, { displayName: 'Sort', name: 'sort', type: 'string', default: '+id', description: 'Sort ordering for returned items (default +id)', placeholder: '+name or -created_at', }, { 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.enforcementPolicyProperties = [ exports.enforcementPolicyOperations, ...exports.enforcementPolicyFields, ];