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