UNPKG

@takashito/linode-mcp-server

Version:

MCP server for Linode API

167 lines (166 loc) 6.28 kB
import { AxiosInstance } from 'axios'; import { PaginatedResponse, PaginationParams } from './common'; export interface NotificationChannel { id: number; label: string; channel_type: string; details: Record<string, any>; created: string; updated: string; } export interface CreateNotificationChannelRequest { label: string; channel_type: string; details: Record<string, any>; } export interface UpdateNotificationChannelRequest { label?: string; channel_type?: string; details?: Record<string, any>; } export interface AlertDefinition { id: number; label: string; description: string; service_type: string; severity: number; trigger_conditions: Record<string, any>; channel_ids: number[]; entity_ids: string[]; created: string; updated: string; enabled: boolean; } export interface CreateAlertDefinitionRequest { label: string; description?: string; severity?: number; trigger_conditions: Record<string, any>; channel_ids?: number[]; entity_ids?: string[]; enabled?: boolean; } export interface UpdateAlertDefinitionRequest { label?: string; description?: string; severity?: number; trigger_conditions?: Record<string, any>; channel_ids?: number[]; entity_ids?: string[]; enabled?: boolean; } export interface LogStream { id: number; label: string; filters: Record<string, any>; aggregation: Record<string, any>; created: string; updated: string; } export interface CreateLogStreamRequest { label: string; filters: Record<string, any>; aggregation: Record<string, any>; } export interface UpdateLogStreamRequest { label?: string; filters?: Record<string, any>; aggregation?: Record<string, any>; } export interface LogStreamHistory { id: number; stream_id: number; timestamp: string; data: Record<string, any>; } export interface LogDestination { id: number; label: string; type: string; config: Record<string, any>; created: string; updated: string; } export interface CreateLogDestinationRequest { label: string; type: string; config: Record<string, any>; } export interface UpdateLogDestinationRequest { label?: string; type?: string; config?: Record<string, any>; } export interface LogDestinationHistory { id: number; destination_id: number; timestamp: string; data: Record<string, any>; } export interface MonitorDashboard { id: number; label: string; service_type: string; type: string; widgets: Record<string, any>[]; created: string; updated: string; } export interface MonitorService { service_type: string; label: string; } export interface MetricDefinition { metric: string; label: string; metric_type: string; unit: string; scrape_interval: string; is_alertable: boolean; dimensions: Record<string, any>[]; available_aggregate_functions: string[]; } export interface GetServiceMetricsRequest { entity_ids: number[]; start_time: string; end_time: string; time_granularity?: Record<string, any>; } export interface ServiceToken { token: string; } export interface MonitorClient { getNotificationChannels(params?: PaginationParams): Promise<PaginatedResponse<NotificationChannel>>; getNotificationChannel(channelId: number): Promise<NotificationChannel>; createNotificationChannel(data: CreateNotificationChannelRequest): Promise<NotificationChannel>; updateNotificationChannel(channelId: number, data: UpdateNotificationChannelRequest): Promise<NotificationChannel>; deleteNotificationChannel(channelId: number): Promise<void>; getChannelAlerts(channelId: number, params?: PaginationParams): Promise<PaginatedResponse<AlertDefinition>>; getAlertDefinitions(params?: PaginationParams): Promise<PaginatedResponse<AlertDefinition>>; getServiceAlertDefinitions(serviceType: string, params?: PaginationParams): Promise<PaginatedResponse<AlertDefinition>>; getAlertDefinition(serviceType: string, alertId: number): Promise<AlertDefinition>; createAlertDefinition(serviceType: string, data: CreateAlertDefinitionRequest): Promise<AlertDefinition>; updateAlertDefinition(serviceType: string, alertId: number, data: UpdateAlertDefinitionRequest): Promise<AlertDefinition>; deleteAlertDefinition(serviceType: string, alertId: number): Promise<void>; getLogStreams(params?: PaginationParams): Promise<PaginatedResponse<LogStream>>; getLogStream(streamId: number): Promise<LogStream>; createLogStream(data: CreateLogStreamRequest): Promise<LogStream>; updateLogStream(streamId: number, data: UpdateLogStreamRequest): Promise<LogStream>; deleteLogStream(streamId: number): Promise<void>; getLogStreamHistory(streamId: number, params?: PaginationParams): Promise<PaginatedResponse<LogStreamHistory>>; getLogDestinations(params?: PaginationParams): Promise<PaginatedResponse<LogDestination>>; getLogDestination(destinationId: number): Promise<LogDestination>; createLogDestination(data: CreateLogDestinationRequest): Promise<LogDestination>; updateLogDestination(destinationId: number, data: UpdateLogDestinationRequest): Promise<LogDestination>; deleteLogDestination(destinationId: number): Promise<void>; getLogDestinationHistory(destinationId: number, params?: PaginationParams): Promise<PaginatedResponse<LogDestinationHistory>>; listDashboards(params?: PaginationParams): Promise<PaginatedResponse<MonitorDashboard>>; getDashboard(dashboardId: number): Promise<MonitorDashboard>; listServices(params?: PaginationParams): Promise<PaginatedResponse<MonitorService>>; getService(serviceType: string): Promise<MonitorService>; listServiceDashboards(serviceType: string, params?: PaginationParams): Promise<PaginatedResponse<MonitorDashboard>>; listServiceMetricDefinitions(serviceType: string): Promise<PaginatedResponse<MetricDefinition>>; getServiceMetrics(serviceType: string, data: GetServiceMetricsRequest): Promise<Record<string, any>>; createServiceToken(serviceType: string): Promise<ServiceToken>; } export declare function createMonitorClient(axios: AxiosInstance): MonitorClient;