UNPKG

n8n-nodes-arubacentralnextgen

Version:

n8n community node for Aruba Central NextGen API integration with modern monitoring and management capabilities

1,238 lines 55.8 kB
"use strict"; // methods/monitoring/gateways/gateways.methods.ts 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.listGateways = listGateways; exports.getGatewayDetails = getGatewayDetails; exports.getClusterLeaderDetails = getClusterLeaderDetails; exports.getClusterVlanMismatchSummary = getClusterVlanMismatchSummary; exports.getClusterConnectivityGraph = getClusterConnectivityGraph; exports.getGatewayVlanDetail = getGatewayVlanDetail; exports.listClusterMembers = listClusterMembers; exports.getGatewayTunnelDetail = getGatewayTunnelDetail; exports.listGatewayWiredInterfaces = listGatewayWiredInterfaces; exports.listClusterTunnels = listClusterTunnels; exports.listGatewayVlans = listGatewayVlans; exports.listGatewayLanTunnels = listGatewayLanTunnels; exports.listGatewayWanInterfaces = listGatewayWanInterfaces; exports.getGatewayCpuUtilizationTrend = getGatewayCpuUtilizationTrend; exports.getGatewayMemoryUtilizationTrend = getGatewayMemoryUtilizationTrend; exports.getGatewayLanTunnelThroughputTrend = getGatewayLanTunnelThroughputTrend; exports.getGatewayLanTunnelStatusTrend = getGatewayLanTunnelStatusTrend; exports.getClusterCapacityTrend = getClusterCapacityTrend; exports.getClusterMemberCapacityTrend = getClusterMemberCapacityTrend; exports.getGatewayInterfaceThroughputTrend = getGatewayInterfaceThroughputTrend; exports.getClusterTunnelHealthSummary = getClusterTunnelHealthSummary; exports.getClusterTunnelStatusSummary = getClusterTunnelStatusSummary; exports.getGatewayTunnelHealthSummary = getGatewayTunnelHealthSummary; exports.getGatewayWanAvailabilityTrend = getGatewayWanAvailabilityTrend; exports.getGatewayVpnAvailabilityTrend = getGatewayVpnAvailabilityTrend; exports.getGatewayPortFramesTrend = getGatewayPortFramesTrend; exports.getGatewayPortFramesErrorsTrend = getGatewayPortFramesErrorsTrend; exports.getGatewayPortFramesPacketsTrend = getGatewayPortFramesPacketsTrend; exports.getGatewayTunnelDroppedPacketsTrend = getGatewayTunnelDroppedPacketsTrend; exports.listGatewayWanTunnels = listGatewayWanTunnels; exports.getGatewayWanTunnelDetail = getGatewayWanTunnelDetail; exports.getGatewayWanTunnelHealthSummary = getGatewayWanTunnelHealthSummary; exports.getGatewayUplinkDetails = getGatewayUplinkDetails; exports.getGatewayUplinkThroughputTrend = getGatewayUplinkThroughputTrend; exports.getGatewayWanCompressionTrends = getGatewayWanCompressionTrends; exports.listGatewayUplinkProbes = listGatewayUplinkProbes; exports.listGatewayUplinkPerformanceTrends = listGatewayUplinkPerformanceTrends; exports.getGatewayUplinkModemStats = getGatewayUplinkModemStats; exports.getGatewayUplinkWanAvailabilityTrends = getGatewayUplinkWanAvailabilityTrends; exports.getGatewayUplinkVpnAvailabilityTrends = getGatewayUplinkVpnAvailabilityTrends; const apiRequest_1 = require("../../../helpers/apiRequest"); const responseFormatter_1 = require("../../../helpers/responseFormatter"); const logger = __importStar(require("../../../helpers/logger")); /** * List all gateways */ async function listGateways() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting listGateways operation', undefined, this); } try { const limit = this.getNodeParameter('limit', 0, 20); const returnAll = this.getNodeParameter('returnAll', 0, false); const additionalFields = this.getNodeParameter('additionalFields', 0, {}); const filters = additionalFields.filters || {}; const sortOptions = additionalFields.sortOptions || ''; const queryParams = {}; // Build filter string based on provided options if (Object.keys(filters).length > 0) { const filterExpressions = []; for (const [field, value] of Object.entries(filters)) { if (value !== undefined && value !== '') { if (Array.isArray(value)) { filterExpressions.push(`${field} in (${value.map((v) => `'${v}'`).join(',')})`); } else { filterExpressions.push(`${field} eq '${value}'`); } } } if (filterExpressions.length > 0) { queryParams.filter = filterExpressions.join(' and '); } } // Add sort if provided if (sortOptions) { queryParams.sort = sortOptions; } const endpoint = '/network-monitoring/v1alpha1/gateways'; if (returnAll) { let allGateways = []; let currentOffset = 0; let hasMore = true; const pageSize = 100; while (hasMore) { queryParams.limit = pageSize; queryParams.offset = currentOffset; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); const gateways = response.items || []; if (gateways.length > 0) { allGateways = [...allGateways, ...gateways]; if (allGateways.length >= response.total || gateways.length < pageSize) { hasMore = false; } else { currentOffset += pageSize; } } else { hasMore = false; } } return responseFormatter_1.formatResponse.call(this, { response: { count: allGateways.length, total: allGateways.length, items: allGateways, offset: 0, } }); } else { queryParams.limit = limit; queryParams.offset = 0; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } } catch (error) { logger.error('Error in listGateways', error); throw error; } } /** * Get gateway details */ async function getGatewayDetails() { var _a, _b, _c; const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayDetails operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const siteId = this.getNodeParameter('siteId', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!siteId) { throw new Error('Site ID is required for Gateway Details operation'); } if (debugMode) { logger.debug('Gateway details parameters', { serialNumber, siteId }, this); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}`; // Add mandatory filter query parameter with siteId const queryParams = { filter: `siteId eq '${siteId}'` }; if (debugMode) { logger.debug('Gateway details API request', { endpoint, serialNumber, siteId, queryParams }, this); } try { const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { // Enhanced error handling for gateway details if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 404) { throw new Error(`Gateway with serial number '${serialNumber}' not found. Please verify the serial number exists in your account by running 'List Gateways' first.`); } else if (((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) === 403) { throw new Error(`Access denied to gateway '${serialNumber}'. Please verify your API credentials have permission to view gateway details.`); } else if (((_c = error.response) === null || _c === void 0 ? void 0 : _c.status) === 400) { throw new Error(`Bad request for gateway '${serialNumber}'. This might not be a valid gateway serial number, or the gateway might not be accessible from your account/region. Please verify with 'List Gateways' operation first.`); } throw error; } } catch (error) { logger.error('Error in getGatewayDetails', error); throw error; } } /** * Get cluster leader details */ async function getClusterLeaderDetails() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getClusterLeaderDetails operation', undefined, this); } try { const clusterName = this.getNodeParameter('clusterName', 0); if (!clusterName) { throw new Error('Cluster Name is required'); } const endpoint = `/network-monitoring/v1alpha1/clusters/${clusterName}/leader`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getClusterLeaderDetails', error); throw error; } } /** * Get cluster VLAN mismatch summary */ async function getClusterVlanMismatchSummary() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getClusterVlanMismatchSummary operation', undefined, this); } try { const clusterName = this.getNodeParameter('clusterName', 0); if (!clusterName) { throw new Error('Cluster Name is required'); } const endpoint = `/network-monitoring/v1alpha1/clusters/${clusterName}/vlan-mismatch-summary`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getClusterVlanMismatchSummary', error); throw error; } } /** * Get cluster connectivity graph */ async function getClusterConnectivityGraph() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getClusterConnectivityGraph operation', undefined, this); } try { const clusterName = this.getNodeParameter('clusterName', 0); if (!clusterName) { throw new Error('Cluster Name is required'); } const endpoint = `/network-monitoring/v1alpha1/clusters/${clusterName}/connectivity-graph`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getClusterConnectivityGraph', error); throw error; } } /** * Get gateway VLAN detail */ async function getGatewayVlanDetail() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayVlanDetail operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const vlanId = this.getNodeParameter('vlanId', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!vlanId) { throw new Error('VLAN ID is required'); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/vlans/${vlanId}`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayVlanDetail', error); throw error; } } /** * List cluster members */ async function listClusterMembers() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting listClusterMembers operation', undefined, this); } try { const clusterName = this.getNodeParameter('clusterName', 0); if (!clusterName) { throw new Error('Cluster Name is required'); } const endpoint = `/network-monitoring/v1alpha1/clusters/${clusterName}/members`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in listClusterMembers', error); throw error; } } /** * Get gateway tunnel detail */ async function getGatewayTunnelDetail() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayTunnelDetail operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const tunnelName = this.getNodeParameter('tunnelName', 0); const siteId = this.getNodeParameter('siteId', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!tunnelName) { throw new Error('Tunnel Name is required'); } if (!siteId) { throw new Error('Site ID is required for Gateway Tunnel Detail operation'); } if (debugMode) { logger.debug('Gateway tunnel detail parameters', { serialNumber, tunnelName, siteId }, this); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/tunnels/lan/${tunnelName}/detail`; // Add mandatory filter query parameter with siteId const queryParams = { filter: `siteId eq '${siteId}'` }; if (debugMode) { logger.debug('Gateway tunnel detail API request', { endpoint, serialNumber, tunnelName, siteId, queryParams }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayTunnelDetail', error); throw error; } } /** * List gateway wired interfaces */ async function listGatewayWiredInterfaces() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting listGatewayWiredInterfaces operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/interfaces`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in listGatewayWiredInterfaces', error); throw error; } } /** * List cluster tunnels */ async function listClusterTunnels() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting listClusterTunnels operation', undefined, this); } try { const clusterName = this.getNodeParameter('clusterName', 0); if (!clusterName) { throw new Error('Cluster Name is required'); } const endpoint = `/network-monitoring/v1alpha1/clusters/${clusterName}/tunnels`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in listClusterTunnels', error); throw error; } } /** * List gateway VLANs */ async function listGatewayVlans() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting listGatewayVlans operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/vlans`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in listGatewayVlans', error); throw error; } } /** * List gateway LAN tunnels */ async function listGatewayLanTunnels() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting listGatewayLanTunnels operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/lan-tunnels`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in listGatewayLanTunnels', error); throw error; } } /** * List gateway WAN interfaces */ async function listGatewayWanInterfaces() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting listGatewayWanInterfaces operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/wan-interfaces`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in listGatewayWanInterfaces', error); throw error; } } /** * Get gateway CPU utilization trend */ async function getGatewayCpuUtilizationTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayCpuUtilizationTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const queryParams = {}; if (timeRange.startTime) { queryParams.startTime = timeRange.startTime; } if (timeRange.endTime) { queryParams.endTime = timeRange.endTime; } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/cpu-utilization-trend`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayCpuUtilizationTrend', error); throw error; } } /** * Get gateway memory utilization trend */ async function getGatewayMemoryUtilizationTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayMemoryUtilizationTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const queryParams = {}; if (timeRange.startTime) { queryParams.startTime = timeRange.startTime; } if (timeRange.endTime) { queryParams.endTime = timeRange.endTime; } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/memory-utilization-trend`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayMemoryUtilizationTrend', error); throw error; } } /** * Get gateway LAN tunnel throughput trend */ async function getGatewayLanTunnelThroughputTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayLanTunnelThroughputTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const tunnelName = this.getNodeParameter('tunnelName', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!tunnelName) { throw new Error('Tunnel Name is required'); } const queryParams = {}; if (timeRange.startTime) { queryParams.startTime = timeRange.startTime; } if (timeRange.endTime) { queryParams.endTime = timeRange.endTime; } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/tunnels/lan/${tunnelName}/throughput-trend`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayLanTunnelThroughputTrend', error); throw error; } } /** * Get gateway LAN tunnel status trend */ async function getGatewayLanTunnelStatusTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayLanTunnelStatusTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const tunnelName = this.getNodeParameter('tunnelName', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!tunnelName) { throw new Error('Tunnel Name is required'); } const queryParams = {}; if (timeRange.startTime) { queryParams.startTime = timeRange.startTime; } if (timeRange.endTime) { queryParams.endTime = timeRange.endTime; } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/tunnels/lan/${tunnelName}/status-trend`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayLanTunnelStatusTrend', error); throw error; } } /** * Get cluster capacity trend */ async function getClusterCapacityTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getClusterCapacityTrend operation', undefined, this); } try { const clusterName = this.getNodeParameter('clusterName', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!clusterName) { throw new Error('Cluster Name is required'); } const queryParams = {}; // Build timestamp filter if time range is provided if (timeRange.startTime || timeRange.endTime) { const filterExpressions = []; if (timeRange.startTime) { filterExpressions.push(`timestamp gt ${timeRange.startTime}`); } if (timeRange.endTime) { filterExpressions.push(`timestamp lt ${timeRange.endTime}`); } if (filterExpressions.length > 0) { queryParams.filter = filterExpressions.join(' and '); } } const endpoint = `/network-monitoring/v1alpha1/clusters/${clusterName}/capacity-trends`; if (debugMode) { logger.debug('Cluster capacity trend API request', { endpoint, clusterName, queryParams }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getClusterCapacityTrend', error); throw error; } } /** * Get cluster member capacity trend */ async function getClusterMemberCapacityTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getClusterMemberCapacityTrend operation', undefined, this); } try { const clusterName = this.getNodeParameter('clusterName', 0); const serialNumber = this.getNodeParameter('serialNumber', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!clusterName) { throw new Error('Cluster Name is required'); } if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const queryParams = {}; // Build timestamp filter if time range is provided if (timeRange.startTime || timeRange.endTime) { const filterExpressions = []; if (timeRange.startTime) { filterExpressions.push(`timestamp gt ${timeRange.startTime}`); } if (timeRange.endTime) { filterExpressions.push(`timestamp lt ${timeRange.endTime}`); } if (filterExpressions.length > 0) { queryParams.filter = filterExpressions.join(' and '); } } const endpoint = `/network-monitoring/v1alpha1/clusters/${clusterName}/capacity-trends/${serialNumber}`; if (debugMode) { logger.debug('Cluster member capacity trend API request', { endpoint, clusterName, serialNumber, queryParams }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getClusterMemberCapacityTrend', error); throw error; } } /** * Get gateway interface throughput trend */ async function getGatewayInterfaceThroughputTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayInterfaceThroughputTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const portNumber = this.getNodeParameter('portNumber', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!portNumber) { throw new Error('Port Number is required'); } const queryParams = {}; if (timeRange.startTime) { queryParams.startTime = timeRange.startTime; } if (timeRange.endTime) { queryParams.endTime = timeRange.endTime; } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/ports/${portNumber}/throughput-trend`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayInterfaceThroughputTrend', error); throw error; } } /** * Get cluster tunnel health summary */ async function getClusterTunnelHealthSummary() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getClusterTunnelHealthSummary operation', undefined, this); } try { const clusterName = this.getNodeParameter('clusterName', 0); if (!clusterName) { throw new Error('Cluster Name is required'); } const endpoint = `/network-monitoring/v1alpha1/clusters/${clusterName}/tunnels-health-summary`; if (debugMode) { logger.debug('Cluster tunnel health summary API request', { endpoint, clusterName }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getClusterTunnelHealthSummary', error); throw error; } } /** * Get cluster tunnel status summary */ async function getClusterTunnelStatusSummary() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getClusterTunnelStatusSummary operation', undefined, this); } try { const clusterName = this.getNodeParameter('clusterName', 0); if (!clusterName) { throw new Error('Cluster Name is required'); } const endpoint = `/network-monitoring/v1alpha1/clusters/${clusterName}/tunnels-status-summary`; if (debugMode) { logger.debug('Cluster tunnel status summary API request', { endpoint, clusterName }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getClusterTunnelStatusSummary', error); throw error; } } /** * Get gateway tunnel health summary */ async function getGatewayTunnelHealthSummary() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayTunnelHealthSummary operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const siteId = this.getNodeParameter('siteId', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!siteId) { throw new Error('Site ID is required for Gateway Tunnel Health Summary operation'); } if (debugMode) { logger.debug('Gateway tunnel health summary parameters', { serialNumber, siteId }, this); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/lan-tunnels-health-summary`; // Add required site-id query parameter const queryParams = { 'site-id': siteId }; if (debugMode) { logger.debug('Gateway tunnel health summary API request', { endpoint, serialNumber, siteId, queryParams }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayTunnelHealthSummary', error); throw error; } } /** * Get gateway WAN availability trend */ async function getGatewayWanAvailabilityTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayWanAvailabilityTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const queryParams = {}; if (timeRange.startTime) { queryParams.startTime = timeRange.startTime; } if (timeRange.endTime) { queryParams.endTime = timeRange.endTime; } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/wan-availability-trends`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayWanAvailabilityTrend', error); throw error; } } /** * Get gateway VPN availability trend */ async function getGatewayVpnAvailabilityTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayVpnAvailabilityTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const queryParams = {}; if (timeRange.startTime) { queryParams.startTime = timeRange.startTime; } if (timeRange.endTime) { queryParams.endTime = timeRange.endTime; } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/vpn-availability-trends`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayVpnAvailabilityTrend', error); throw error; } } /** * Get gateway port frames trend */ async function getGatewayPortFramesTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayPortFramesTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const portNumber = this.getNodeParameter('portNumber', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!portNumber) { throw new Error('Port Number is required'); } const queryParams = {}; // Build timestamp filter if time range is provided if (timeRange.startTime || timeRange.endTime) { const filterExpressions = []; if (timeRange.startTime) { filterExpressions.push(`timestamp gt ${timeRange.startTime}`); } if (timeRange.endTime) { filterExpressions.push(`timestamp lt ${timeRange.endTime}`); } if (filterExpressions.length > 0) { queryParams.filter = filterExpressions.join(' and '); } } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/ports/${portNumber}/frames-trends`; if (debugMode) { logger.debug('Gateway port frames trend API request', { endpoint, serialNumber, portNumber, queryParams }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayPortFramesTrend', error); throw error; } } /** * Get gateway port frames errors trend */ async function getGatewayPortFramesErrorsTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayPortFramesErrorsTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const portNumber = this.getNodeParameter('portNumber', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!portNumber) { throw new Error('Port Number is required'); } const queryParams = {}; // Build timestamp filter if time range is provided if (timeRange.startTime || timeRange.endTime) { const filterExpressions = []; if (timeRange.startTime) { filterExpressions.push(`timestamp gt ${timeRange.startTime}`); } if (timeRange.endTime) { filterExpressions.push(`timestamp lt ${timeRange.endTime}`); } if (filterExpressions.length > 0) { queryParams.filter = filterExpressions.join(' and '); } } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/ports/${portNumber}/frames-errors-trends`; if (debugMode) { logger.debug('Gateway port frames errors trend API request', { endpoint, serialNumber, portNumber, queryParams }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayPortFramesErrorsTrend', error); throw error; } } /** * Get gateway port frames packets trend */ async function getGatewayPortFramesPacketsTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayPortFramesPacketsTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const portNumber = this.getNodeParameter('portNumber', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!portNumber) { throw new Error('Port Number is required'); } const queryParams = {}; // Build timestamp filter if time range is provided if (timeRange.startTime || timeRange.endTime) { const filterExpressions = []; if (timeRange.startTime) { filterExpressions.push(`timestamp gt ${timeRange.startTime}`); } if (timeRange.endTime) { filterExpressions.push(`timestamp lt ${timeRange.endTime}`); } if (filterExpressions.length > 0) { queryParams.filter = filterExpressions.join(' and '); } } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/ports/${portNumber}/frames-packets-trends`; if (debugMode) { logger.debug('Gateway port frames packets trend API request', { endpoint, serialNumber, portNumber, queryParams }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayPortFramesPacketsTrend', error); throw error; } } /** * Get gateway tunnel dropped packets trend */ async function getGatewayTunnelDroppedPacketsTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayTunnelDroppedPacketsTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const tunnelName = this.getNodeParameter('tunnelName', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!tunnelName) { throw new Error('Tunnel Name is required'); } const queryParams = {}; // Build timestamp filter if time range is provided if (timeRange.startTime || timeRange.endTime) { const filterExpressions = []; if (timeRange.startTime) { filterExpressions.push(`timestamp gt ${timeRange.startTime}`); } if (timeRange.endTime) { filterExpressions.push(`timestamp lt ${timeRange.endTime}`); } if (filterExpressions.length > 0) { queryParams.filter = filterExpressions.join(' and '); } } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/tunnels/${tunnelName}/packets-trend`; if (debugMode) { logger.debug('Gateway tunnel dropped packets trend API request', { endpoint, serialNumber, tunnelName, queryParams }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayTunnelDroppedPacketsTrend', error); throw error; } } /** * List gateway WAN tunnels */ async function listGatewayWanTunnels() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting listGatewayWanTunnels operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/wan-tunnels`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in listGatewayWanTunnels', error); throw error; } } /** * Get gateway WAN tunnel detail */ async function getGatewayWanTunnelDetail() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayWanTunnelDetail operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const tunnelName = this.getNodeParameter('tunnelName', 0); const siteId = this.getNodeParameter('siteId', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!tunnelName) { throw new Error('Tunnel Name is required'); } if (!siteId) { throw new Error('Site ID is required for Gateway WAN Tunnel Detail operation'); } if (debugMode) { logger.debug('Gateway WAN tunnel detail parameters', { serialNumber, tunnelName, siteId }, this); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/wan-tunnels/${tunnelName}`; // Add mandatory filter query parameter with siteId const queryParams = { filter: `siteId eq '${siteId}'` }; if (debugMode) { logger.debug('Gateway WAN tunnel detail API request', { endpoint, serialNumber, tunnelName, siteId, queryParams }, this); } const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayWanTunnelDetail', error); throw error; } } /** * Get gateway WAN tunnel health summary */ async function getGatewayWanTunnelHealthSummary() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayWanTunnelHealthSummary operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/wan-tunnels-health-summary`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayWanTunnelHealthSummary', error); throw error; } } /** * Get gateway uplink details */ async function getGatewayUplinkDetails() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayUplinkDetails operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const linkTag = this.getNodeParameter('linkTag', 0); const siteId = this.getNodeParameter('uplinkSiteId', 0); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!linkTag) { throw new Error('Link Tag is required'); } if (!siteId) { throw new Error('Site ID is required'); } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/wan-interfaces/${linkTag}`; const queryParams = { 'site-id': siteId }; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayUplinkDetails', error); throw error; } } /** * Get gateway uplink throughput trend */ async function getGatewayUplinkThroughputTrend() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayUplinkThroughputTrend operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const linkTag = this.getNodeParameter('linkTag', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!linkTag) { throw new Error('Link Tag is required'); } const queryParams = {}; if (timeRange.startTime) { queryParams.startTime = timeRange.startTime; } if (timeRange.endTime) { queryParams.endTime = timeRange.endTime; } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/wan-interfaces/${linkTag}/throughput-trends`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayUplinkThroughputTrend', error); throw error; } } /** * Get gateway WAN compression trends */ async function getGatewayWanCompressionTrends() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting getGatewayWanCompressionTrends operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const linkTag = this.getNodeParameter('linkTag', 0); const timeRange = this.getNodeParameter('timeRange', 0, {}); if (!serialNumber) { throw new Error('Gateway Serial Number is required'); } if (!linkTag) { throw new Error('Link Tag is required'); } const queryParams = {}; if (timeRange.startTime) { queryParams.startTime = timeRange.startTime; } if (timeRange.endTime) { queryParams.endTime = timeRange.endTime; } const endpoint = `/network-monitoring/v1alpha1/gateways/${serialNumber}/wan-interfaces/${linkTag}/wan-compression-trends`; const response = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, queryParams); return responseFormatter_1.formatResponse.call(this, response); } catch (error) { logger.error('Error in getGatewayWanCompressionTrends', error); throw error; } } /** * List gateway uplink probes */ async function listGatewayUplinkProbes() { const debugMode = logger.isDebugMode(this); if (debugMode) { logger.debug('Starting listGatewayUplinkProbes operation', undefined, this); } try { const serialNumber = this.getNodeParameter('serialNumber', 0); const linkTag = this.getNodeParameter('linkT