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
JavaScript
"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;
}
}