/** * Service for ISP metrics and SD-WAN configurations */ import { SiteManagerClient } from '../client/SiteManagerClient.js'; import { ISPMetric, SDWANConfig, SDWANConfigStatus } from '../types/metrics.js'; export class MetricsService { constructor(private client: SiteManagerClient) {} /** * Get ISP metrics */ async getISPMetrics(params?: Record): Promise { const response = await this.client.requestPaginated('GET', '/isp-metrics', { params, }); return Array.isArray(response.data) ? response.data : []; } /** * Query ISP metrics with filters */ async queryISPMetrics(params?: Record): Promise { const response = await this.client.requestPaginated('GET', '/isp-metrics/query', { params, }); return Array.isArray(response.data) ? response.data : []; } /** * List SD-WAN configurations */ async listSDWANConfigs(): Promise { const response = await this.client.requestPaginated('GET', '/sd-wan-configs'); return Array.isArray(response.data) ? response.data : []; } /** * Get SD-WAN config by ID */ async getSDWANConfig(id: string): Promise { return await this.client.request('GET', `/sd-wan-configs/${id}`); } /** * Get SD-WAN config status */ async getSDWANConfigStatus(id: string): Promise { return await this.client.request('GET', `/sd-wan-configs/${id}/status`); } }