UNPKG

n8n-nodes-netbox

Version:

n8n community node for NetBox API integration with comprehensive DCIM, IPAM, Virtualization, Circuits, Wireless, and data center management operations

647 lines (646 loc) 31.8 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.executeOperation = executeOperation; const devicesMethods = __importStar(require("../methods/dcim/devices/devices.methods")); const deviceBaysMethods = __importStar(require("../methods/dcim/device-bays/device-bays.methods")); const deviceBayTemplatesMethods = __importStar(require("../methods/dcim/device-bay-templates/device-bay-templates.methods")); const deviceTypesMethods = __importStar(require("../methods/dcim/device-types/device-types.methods")); const deviceRolesMethods = __importStar(require("../methods/dcim/device-roles/device-roles.methods")); const interfacesMethods = __importStar(require("../methods/dcim/interfaces/interfaces.methods")); const manufacturersMethods = __importStar(require("../methods/dcim/manufacturers/manufacturers.methods")); const modulesMethods = __importStar(require("../methods/dcim/modules/modules.methods")); const moduleBaysMethods = __importStar(require("../methods/dcim/module-bays/module-bays.methods")); const moduleBayTemplatesMethods = __importStar(require("../methods/dcim/module-bay-templates/module-bay-templates.methods")); const moduleTypesMethods = __importStar(require("../methods/dcim/module-types/module-types.methods")); const platformsMethods = __importStar(require("../methods/dcim/platforms/platforms.methods")); const sitesMethods = __importStar(require("../methods/dcim/sites/sites.methods")); const regionsMethods = __importStar(require("../methods/dcim/regions/regions.methods")); const virtualChassisMethods = __importStar(require("../methods/dcim/virtual-chassis/virtual-chassis.methods")); const virtualDeviceContextsMethods = __importStar(require("../methods/dcim/virtual-device-contexts/virtual-device-contexts.methods")); const prefixesMethods = __importStar(require("../methods/ipam/prefixes/prefixes.methods")); const vlansMethods = __importStar(require("../methods/ipam/vlans/vlans.methods")); const rolesMethods = __importStar(require("../methods/ipam/roles/roles.methods")); const vlanGroupsMethods = __importStar(require("../methods/ipam/vlan-groups/vlan-groups.methods")); const aggregatesMethods = __importStar(require("../methods/ipam/aggregates/aggregates.methods")); const ipAddressesMethods = __importStar(require("../methods/ipam/ip-addresses/ip-addresses.methods")); const vrfsMethods = __importStar(require("../methods/ipam/vrfs/vrfs.methods")); const routeTargetsMethods = __importStar(require("../methods/ipam/route-targets/route-targets.methods")); const tenantsMethods = __importStar(require("../methods/tenancy/tenants/tenants.methods")); const tenantGroupsMethods = __importStar(require("../methods/tenancy/tenant-groups/tenant-groups.methods")); const contactsMethods = __importStar(require("../methods/tenancy/contacts/contacts.methods")); const contactGroupsMethods = __importStar(require("../methods/tenancy/contact-groups/contact-groups.methods")); const contactRolesMethods = __importStar(require("../methods/tenancy/contact-roles/contact-roles.methods")); const contactAssignmentsMethods = __importStar(require("../methods/tenancy/contact-assignments/contact-assignments.methods")); const tagsMethods = __importStar(require("../methods/extras/tags/tags.methods")); const configContextsMethods = __importStar(require("../methods/extras/config-contexts/config-contexts.methods")); const journalEntriesMethods = __importStar(require("../methods/extras/journal-entries/journal-entries.methods")); const reportsMethods = __importStar(require("../methods/extras/reports/reports.methods")); const configTemplatesMethods = __importStar(require("../methods/extras/config-templates/config-templates.methods")); const clustersMethods = __importStar(require("../methods/virtualization/clusters/clusters.methods")); const clusterGroupsMethods = __importStar(require("../methods/virtualization/cluster-groups/cluster-groups.methods")); const clusterTypesMethods = __importStar(require("../methods/virtualization/cluster-types/cluster-types.methods")); const virtualMachinesMethods = __importStar(require("../methods/virtualization/virtual-machines/virtual-machines.methods")); const vmInterfacesMethods = __importStar(require("../methods/virtualization/vm-interfaces/vm-interfaces.methods")); const providersMethods = __importStar(require("../methods/circuits/providers/providers.methods")); const providerAccountsMethods = __importStar(require("../methods/circuits/provider-accounts/provider-accounts.methods")); const providerNetworksMethods = __importStar(require("../methods/circuits/provider-networks/provider-networks.methods")); const circuitTypesMethods = __importStar(require("../methods/circuits/circuit-types/circuit-types.methods")); const circuitsMethods = __importStar(require("../methods/circuits/circuits/circuits.methods")); const circuitTerminationsMethods = __importStar(require("../methods/circuits/circuit-terminations/circuit-terminations.methods")); const wirelessLANGroupsMethods = __importStar(require("../methods/wireless/wireless-lan-groups/wireless-lan-groups.methods")); const wirelessLANsMethods = __importStar(require("../methods/wireless/wireless-lans/wireless-lans.methods")); const wirelessLinksMethods = __importStar(require("../methods/wireless/wireless-links/wireless-links.methods")); const dataFilesMethods = __importStar(require("../methods/core/data-files/data-files.methods")); const dataSourcesMethods = __importStar(require("../methods/core/data-sources/data-sources.methods")); const jobsMethods = __importStar(require("../methods/core/jobs/jobs.methods")); const ikePoliciesMethods = __importStar(require("../methods/vpn/ike-policies/ike-policies.methods")); const ikeProposalsMethods = __importStar(require("../methods/vpn/ike-proposals/ike-proposals.methods")); const ipsecPoliciesMethods = __importStar(require("../methods/vpn/ipsec-policies/ipsec-policies.methods")); const ipsecProfilesMethods = __importStar(require("../methods/vpn/ipsec-profiles/ipsec-profiles.methods")); const ipsecProposalsMethods = __importStar(require("../methods/vpn/ipsec-proposals/ipsec-proposals.methods")); const l2vpnTerminationsMethods = __importStar(require("../methods/vpn/l2vpn-terminations/l2vpn-terminations.methods")); const l2vpnsMethods = __importStar(require("../methods/vpn/l2vpns/l2vpns.methods")); const tunnelGroupsMethods = __importStar(require("../methods/vpn/tunnel-groups/tunnel-groups.methods")); const tunnelTerminationsMethods = __importStar(require("../methods/vpn/tunnel-terminations/tunnel-terminations.methods")); const tunnelsMethods = __importStar(require("../methods/vpn/tunnels/tunnels.methods")); const configMethods = __importStar(require("../methods/users/config/config.methods")); const groupsMethods = __importStar(require("../methods/users/groups/groups.methods")); const permissionsMethods = __importStar(require("../methods/users/permissions/permissions.methods")); const tokensMethods = __importStar(require("../methods/users/tokens/tokens.methods")); const usersMethods = __importStar(require("../methods/users/users/users.methods")); const installedPluginsMethods = __importStar(require("../methods/plugins/installed-plugins/installed-plugins.methods")); const healthCheckMethods = __importStar(require("../methods/status/health-check/health-check.methods")); const handlers = { dcim: { devices: { list: devicesMethods.listDevices, get: devicesMethods.getDevice, create: devicesMethods.createDevice, update: devicesMethods.updateDevice, delete: devicesMethods.deleteDevice, getInterfaces: devicesMethods.getInterfaces, getConsolePorts: devicesMethods.getConsolePorts, getConfigContext: devicesMethods.getConfigContext, assignTag: devicesMethods.assignTag, }, 'device-bays': { list: deviceBaysMethods.listDeviceBays, get: deviceBaysMethods.getDeviceBay, create: deviceBaysMethods.createDeviceBay, update: deviceBaysMethods.updateDeviceBay, delete: deviceBaysMethods.deleteDeviceBay, }, 'device-bay-templates': { list: deviceBayTemplatesMethods.listDeviceBayTemplates, get: deviceBayTemplatesMethods.getDeviceBayTemplate, create: deviceBayTemplatesMethods.createDeviceBayTemplate, update: deviceBayTemplatesMethods.updateDeviceBayTemplate, delete: deviceBayTemplatesMethods.deleteDeviceBayTemplate, }, 'device-types': { list: deviceTypesMethods.listDeviceTypes, get: deviceTypesMethods.getDeviceType, create: deviceTypesMethods.createDeviceType, update: deviceTypesMethods.updateDeviceType, delete: deviceTypesMethods.deleteDeviceType, }, deviceRoles: { list: deviceRolesMethods.listDeviceRoles, get: deviceRolesMethods.getDeviceRole, create: deviceRolesMethods.createDeviceRole, update: deviceRolesMethods.updateDeviceRole, delete: deviceRolesMethods.deleteDeviceRole, }, interfaces: { list: interfacesMethods.listInterfaces, get: interfacesMethods.getInterface, create: interfacesMethods.createInterface, update: interfacesMethods.updateInterface, delete: interfacesMethods.deleteInterface, getConnections: interfacesMethods.getConnections, }, manufacturers: { list: manufacturersMethods.listManufacturers, get: manufacturersMethods.getManufacturer, create: manufacturersMethods.createManufacturer, update: manufacturersMethods.updateManufacturer, delete: manufacturersMethods.deleteManufacturer, }, modules: { list: modulesMethods.listModules, get: modulesMethods.getModule, create: modulesMethods.createModule, update: modulesMethods.updateModule, delete: modulesMethods.deleteModule, }, 'module-bays': { list: moduleBaysMethods.listModuleBays, get: moduleBaysMethods.getModuleBay, create: moduleBaysMethods.createModuleBay, update: moduleBaysMethods.updateModuleBay, delete: moduleBaysMethods.deleteModuleBay, }, 'module-bay-templates': { list: moduleBayTemplatesMethods.listModuleBayTemplates, get: moduleBayTemplatesMethods.getModuleBayTemplate, create: moduleBayTemplatesMethods.createModuleBayTemplate, update: moduleBayTemplatesMethods.updateModuleBayTemplate, delete: moduleBayTemplatesMethods.deleteModuleBayTemplate, }, 'module-types': { list: moduleTypesMethods.listModuleTypes, get: moduleTypesMethods.getModuleType, create: moduleTypesMethods.createModuleType, update: moduleTypesMethods.updateModuleType, delete: moduleTypesMethods.deleteModuleType, }, platforms: { list: platformsMethods.listPlatforms, get: platformsMethods.getPlatform, create: platformsMethods.createPlatform, update: platformsMethods.updatePlatform, delete: platformsMethods.deletePlatform, }, sites: { list: sitesMethods.listSites, get: sitesMethods.getSite, create: sitesMethods.createSite, update: sitesMethods.updateSite, delete: sitesMethods.deleteSite, getDevices: sitesMethods.getDevices, getRacks: sitesMethods.getRacks, }, regions: { list: regionsMethods.listRegions, get: regionsMethods.getRegion, create: regionsMethods.createRegion, update: regionsMethods.updateRegion, delete: regionsMethods.deleteRegion, getSites: regionsMethods.getSites, }, 'virtual-chassis': { list: virtualChassisMethods.listVirtualChassis, get: virtualChassisMethods.getVirtualChassis, create: virtualChassisMethods.createVirtualChassis, update: virtualChassisMethods.updateVirtualChassis, delete: virtualChassisMethods.deleteVirtualChassis, }, 'virtual-device-contexts': { list: virtualDeviceContextsMethods.listVirtualDeviceContexts, get: virtualDeviceContextsMethods.getVirtualDeviceContext, create: virtualDeviceContextsMethods.createVirtualDeviceContext, update: virtualDeviceContextsMethods.updateVirtualDeviceContext, delete: virtualDeviceContextsMethods.deleteVirtualDeviceContext, }, }, ipam: { prefixes: { list: prefixesMethods.listPrefixes, get: prefixesMethods.getPrefix, create: prefixesMethods.createPrefix, update: prefixesMethods.updatePrefix, delete: prefixesMethods.deletePrefix, getAvailableIPs: prefixesMethods.getAvailableIPs, addTags: prefixesMethods.addTags, }, vlans: { list: vlansMethods.listVlans, getById: vlansMethods.getVlanById, getByName: vlansMethods.getVlanByName, getByVid: vlansMethods.getVlanByVid, create: vlansMethods.createVlan, update: vlansMethods.updateVlan, delete: vlansMethods.deleteVlan, addTag: vlansMethods.addTag, removeTag: vlansMethods.removeTag, }, roles: { list: rolesMethods.listRoles, get: rolesMethods.getRole, create: rolesMethods.createRole, update: rolesMethods.updateRole, delete: rolesMethods.deleteRole, }, vlanGroups: { list: vlanGroupsMethods.listVlanGroups, get: vlanGroupsMethods.getVlanGroup, create: vlanGroupsMethods.createVlanGroup, update: vlanGroupsMethods.updateVlanGroup, delete: vlanGroupsMethods.deleteVlanGroup, }, aggregates: { list: aggregatesMethods.listAggregates, get: aggregatesMethods.getAggregate, create: aggregatesMethods.createAggregate, update: aggregatesMethods.updateAggregate, delete: aggregatesMethods.deleteAggregate, }, 'ip-addresses': { list: ipAddressesMethods.listIPAddresses, get: ipAddressesMethods.getIPAddress, create: ipAddressesMethods.createIPAddress, update: ipAddressesMethods.updateIPAddress, delete: ipAddressesMethods.deleteIPAddress, }, vrfs: { list: vrfsMethods.listVRFs, get: vrfsMethods.getVRF, create: vrfsMethods.createVRF, update: vrfsMethods.updateVRF, delete: vrfsMethods.deleteVRF, }, 'route-targets': { list: routeTargetsMethods.listRouteTargets, get: routeTargetsMethods.getRouteTarget, create: routeTargetsMethods.createRouteTarget, update: routeTargetsMethods.updateRouteTarget, delete: routeTargetsMethods.deleteRouteTarget, }, }, tenancy: { tenants: { list: tenantsMethods.listTenants, get: tenantsMethods.getTenant, create: tenantsMethods.createTenant, update: tenantsMethods.updateTenant, delete: tenantsMethods.deleteTenant, }, tenantGroups: { list: tenantGroupsMethods.listTenantGroups, get: tenantGroupsMethods.getTenantGroup, create: tenantGroupsMethods.createTenantGroup, update: tenantGroupsMethods.updateTenantGroup, delete: tenantGroupsMethods.deleteTenantGroup, }, contacts: { list: contactsMethods.listContacts, get: contactsMethods.getContact, create: contactsMethods.createContact, update: contactsMethods.updateContact, delete: contactsMethods.deleteContact, }, contactGroups: { list: contactGroupsMethods.listContactGroups, get: contactGroupsMethods.getContactGroup, create: contactGroupsMethods.createContactGroup, update: contactGroupsMethods.updateContactGroup, delete: contactGroupsMethods.deleteContactGroup, }, contactRoles: { list: contactRolesMethods.listContactRoles, get: contactRolesMethods.getContactRole, create: contactRolesMethods.createContactRole, update: contactRolesMethods.updateContactRole, delete: contactRolesMethods.deleteContactRole, }, contactAssignments: { list: contactAssignmentsMethods.listContactAssignments, get: contactAssignmentsMethods.getContactAssignment, create: contactAssignmentsMethods.createContactAssignment, update: contactAssignmentsMethods.updateContactAssignment, delete: contactAssignmentsMethods.deleteContactAssignment, }, }, extras: { tags: { list: tagsMethods.listTags, get: tagsMethods.getTag, create: tagsMethods.createTag, update: tagsMethods.updateTag, delete: tagsMethods.deleteTag, }, 'config-contexts': { list: configContextsMethods.listConfigContexts, get: configContextsMethods.getConfigContext, create: configContextsMethods.createConfigContext, update: configContextsMethods.updateConfigContext, delete: configContextsMethods.deleteConfigContext, }, 'journal-entries': { list: journalEntriesMethods.listJournalEntries, get: journalEntriesMethods.getJournalEntry, create: journalEntriesMethods.createJournalEntry, update: journalEntriesMethods.updateJournalEntry, delete: journalEntriesMethods.deleteJournalEntry, }, reports: { list: reportsMethods.listReports, get: reportsMethods.getReport, run: reportsMethods.runReport, }, 'config-templates': { list: configTemplatesMethods.listConfigTemplates, get: configTemplatesMethods.getConfigTemplate, create: configTemplatesMethods.createConfigTemplate, update: configTemplatesMethods.updateConfigTemplate, delete: configTemplatesMethods.deleteConfigTemplate, render: configTemplatesMethods.renderConfigTemplate, }, }, virtualization: { clusters: { list: clustersMethods.listClusters, get: clustersMethods.getCluster, create: clustersMethods.createCluster, update: clustersMethods.updateCluster, delete: clustersMethods.deleteCluster, }, 'cluster-groups': { list: clusterGroupsMethods.listClusterGroups, get: clusterGroupsMethods.getClusterGroup, create: clusterGroupsMethods.createClusterGroup, update: clusterGroupsMethods.updateClusterGroup, delete: clusterGroupsMethods.deleteClusterGroup, }, 'cluster-types': { list: clusterTypesMethods.listClusterTypes, get: clusterTypesMethods.getClusterType, create: clusterTypesMethods.createClusterType, update: clusterTypesMethods.updateClusterType, delete: clusterTypesMethods.deleteClusterType, }, 'virtual-machines': { list: virtualMachinesMethods.listVirtualMachines, get: virtualMachinesMethods.getVirtualMachine, create: virtualMachinesMethods.createVirtualMachine, update: virtualMachinesMethods.updateVirtualMachine, delete: virtualMachinesMethods.deleteVirtualMachine, getInterfaces: virtualMachinesMethods.getVirtualMachineInterfaces, }, 'vm-interfaces': { list: vmInterfacesMethods.listVMInterfaces, get: vmInterfacesMethods.getVMInterface, create: vmInterfacesMethods.createVMInterface, update: vmInterfacesMethods.updateVMInterface, delete: vmInterfacesMethods.deleteVMInterface, }, }, circuits: { providers: { list: providersMethods.listProviders, get: providersMethods.getProvider, create: providersMethods.createProvider, update: providersMethods.updateProvider, delete: providersMethods.deleteProvider, }, 'provider-accounts': { list: providerAccountsMethods.listProviderAccounts, get: providerAccountsMethods.getProviderAccount, create: providerAccountsMethods.createProviderAccount, update: providerAccountsMethods.updateProviderAccount, delete: providerAccountsMethods.deleteProviderAccount, }, 'provider-networks': { list: providerNetworksMethods.listProviderNetworks, get: providerNetworksMethods.getProviderNetwork, create: providerNetworksMethods.createProviderNetwork, update: providerNetworksMethods.updateProviderNetwork, delete: providerNetworksMethods.deleteProviderNetwork, }, 'circuit-types': { list: circuitTypesMethods.listCircuitTypes, get: circuitTypesMethods.getCircuitType, create: circuitTypesMethods.createCircuitType, update: circuitTypesMethods.updateCircuitType, delete: circuitTypesMethods.deleteCircuitType, }, circuits: { list: circuitsMethods.listCircuits, get: circuitsMethods.getCircuit, create: circuitsMethods.createCircuit, update: circuitsMethods.updateCircuit, delete: circuitsMethods.deleteCircuit, getTerminations: circuitsMethods.getCircuitTerminations, }, 'circuit-terminations': { list: circuitTerminationsMethods.listCircuitTerminations, get: circuitTerminationsMethods.getCircuitTermination, create: circuitTerminationsMethods.createCircuitTermination, update: circuitTerminationsMethods.updateCircuitTermination, delete: circuitTerminationsMethods.deleteCircuitTermination, }, }, wireless: { 'wireless-lan-groups': { list: wirelessLANGroupsMethods.listWirelessLANGroups, get: wirelessLANGroupsMethods.getWirelessLANGroup, create: wirelessLANGroupsMethods.createWirelessLANGroup, update: wirelessLANGroupsMethods.updateWirelessLANGroup, delete: wirelessLANGroupsMethods.deleteWirelessLANGroup, }, 'wireless-lans': { list: wirelessLANsMethods.listWirelessLANs, get: wirelessLANsMethods.getWirelessLAN, create: wirelessLANsMethods.createWirelessLAN, update: wirelessLANsMethods.updateWirelessLAN, delete: wirelessLANsMethods.deleteWirelessLAN, }, 'wireless-links': { list: wirelessLinksMethods.listWirelessLinks, get: wirelessLinksMethods.getWirelessLink, create: wirelessLinksMethods.createWirelessLink, update: wirelessLinksMethods.updateWirelessLink, delete: wirelessLinksMethods.deleteWirelessLink, }, }, core: { 'data-files': { list: dataFilesMethods.listDataFiles, get: dataFilesMethods.getDataFile, create: dataFilesMethods.createDataFile, update: dataFilesMethods.updateDataFile, delete: dataFilesMethods.deleteDataFile, }, 'data-sources': { list: dataSourcesMethods.listDataSources, get: dataSourcesMethods.getDataSource, create: dataSourcesMethods.createDataSource, update: dataSourcesMethods.updateDataSource, delete: dataSourcesMethods.deleteDataSource, sync: dataSourcesMethods.syncDataSource, }, jobs: { list: jobsMethods.listJobs, get: jobsMethods.getJob, create: jobsMethods.createJob, update: jobsMethods.updateJob, delete: jobsMethods.deleteJob, execute: jobsMethods.executeJob, terminate: jobsMethods.terminateJob, }, }, vpn: { 'ike-policies': { list: ikePoliciesMethods.listIKEPolicies, get: ikePoliciesMethods.getIKEPolicy, create: ikePoliciesMethods.createIKEPolicy, update: ikePoliciesMethods.updateIKEPolicy, delete: ikePoliciesMethods.deleteIKEPolicy, }, 'ike-proposals': { list: ikeProposalsMethods.listIKEProposals, get: ikeProposalsMethods.getIKEProposal, create: ikeProposalsMethods.createIKEProposal, update: ikeProposalsMethods.updateIKEProposal, delete: ikeProposalsMethods.deleteIKEProposal, }, 'ipsec-policies': { list: ipsecPoliciesMethods.listIPSecPolicies, get: ipsecPoliciesMethods.getIPSecPolicy, create: ipsecPoliciesMethods.createIPSecPolicy, update: ipsecPoliciesMethods.updateIPSecPolicy, delete: ipsecPoliciesMethods.deleteIPSecPolicy, }, 'ipsec-profiles': { list: ipsecProfilesMethods.listIPSecProfiles, get: ipsecProfilesMethods.getIPSecProfile, create: ipsecProfilesMethods.createIPSecProfile, update: ipsecProfilesMethods.updateIPSecProfile, delete: ipsecProfilesMethods.deleteIPSecProfile, }, 'ipsec-proposals': { list: ipsecProposalsMethods.listIPSecProposals, get: ipsecProposalsMethods.getIPSecProposal, create: ipsecProposalsMethods.createIPSecProposal, update: ipsecProposalsMethods.updateIPSecProposal, delete: ipsecProposalsMethods.deleteIPSecProposal, }, 'l2vpn-terminations': { list: l2vpnTerminationsMethods.listL2VPNTerminations, get: l2vpnTerminationsMethods.getL2VPNTermination, create: l2vpnTerminationsMethods.createL2VPNTermination, update: l2vpnTerminationsMethods.updateL2VPNTermination, delete: l2vpnTerminationsMethods.deleteL2VPNTermination, }, l2vpns: { list: l2vpnsMethods.listL2VPNs, get: l2vpnsMethods.getL2VPN, create: l2vpnsMethods.createL2VPN, update: l2vpnsMethods.updateL2VPN, delete: l2vpnsMethods.deleteL2VPN, }, 'tunnel-groups': { list: tunnelGroupsMethods.listTunnelGroups, get: tunnelGroupsMethods.getTunnelGroup, create: tunnelGroupsMethods.createTunnelGroup, update: tunnelGroupsMethods.updateTunnelGroup, delete: tunnelGroupsMethods.deleteTunnelGroup, }, 'tunnel-terminations': { list: tunnelTerminationsMethods.listTunnelTerminations, get: tunnelTerminationsMethods.getTunnelTermination, create: tunnelTerminationsMethods.createTunnelTermination, update: tunnelTerminationsMethods.updateTunnelTermination, delete: tunnelTerminationsMethods.deleteTunnelTermination, }, tunnels: { list: tunnelsMethods.listTunnels, get: tunnelsMethods.getTunnel, create: tunnelsMethods.createTunnel, update: tunnelsMethods.updateTunnel, delete: tunnelsMethods.deleteTunnel, }, }, users: { config: { list: configMethods.listConfig, get: configMethods.getConfig, create: configMethods.createConfig, update: configMethods.updateConfig, delete: configMethods.deleteConfig, }, groups: { list: groupsMethods.listGroups, get: groupsMethods.getGroup, create: groupsMethods.createGroup, update: groupsMethods.updateGroup, delete: groupsMethods.deleteGroup, }, permissions: { list: permissionsMethods.listPermissions, get: permissionsMethods.getPermission, create: permissionsMethods.createPermission, update: permissionsMethods.updatePermission, delete: permissionsMethods.deletePermission, }, tokens: { list: tokensMethods.listTokens, get: tokensMethods.getToken, create: tokensMethods.createToken, update: tokensMethods.updateToken, delete: tokensMethods.deleteToken, }, users: { list: usersMethods.listUsers, get: usersMethods.getUser, create: usersMethods.createUser, update: usersMethods.updateUser, delete: usersMethods.deleteUser, }, }, plugins: { 'installed-plugins': { list: installedPluginsMethods.listInstalledPlugins, get: installedPluginsMethods.getInstalledPlugin, }, }, status: { 'health-check': { get: healthCheckMethods.getHealthCheck, }, }, }; async function executeOperation() { const domain = this.getNodeParameter('domain', 0); const resource = this.getNodeParameter('resource', 0); const operation = this.getNodeParameter('operation', 0); try { // Check if handler exists if (!handlers[domain] || !handlers[domain][resource] || !handlers[domain][resource][operation]) { throw new Error(`Operation ${domain}:${resource}:${operation} not implemented`); } // Call the appropriate handler const handler = handlers[domain][resource][operation]; const result = await handler.call(this); return result; // Return directly without wrapping } catch (error) { console.log('Error in executeOperation:', error); throw error; } }