UNPKG

@takashito/linode-mcp-server

Version:

MCP server for Linode API

147 lines (146 loc) 5.13 kB
import { AxiosInstance } from 'axios'; import { PaginatedResponse, PaginationParams } from './common'; export interface NodeBalancer { id: number; label: string; hostname: string; client_conn_throttle: number; region: string; ipv4: string; ipv6: string | null; created: string; updated: string; transfer: { total: number; out: number; in: number; }; tags: string[]; type?: NodeBalancerType; configs?: NodeBalancerConfig[]; } export interface NodeBalancerConfig { id: number; port: number; protocol: string; algorithm: string; stickiness: string; check: string; check_interval: number; check_timeout: number; check_attempts: number; check_path: string; check_body: string; check_passive: boolean; cipher_suite: string; ssl_cert: string | null; ssl_key: string | null; nodes_status: { up: number; down: number; }; nodes?: NodeBalancerNode[]; } export interface NodeBalancerNode { id: number; address: string; label: string; status: string; weight: number; mode: string; config_id: number; nodebalancer_id: number; } export interface NodeBalancerType { id: string; label: string; price: { hourly: number; monthly: number; }; transfer: number; client_conn_throttle: number; } export interface CreateNodeBalancerRequest { region: string; label?: string; client_conn_throttle?: number; configs?: CreateNodeBalancerConfigRequest[]; tags?: string[]; } export interface UpdateNodeBalancerRequest { label?: string; client_conn_throttle?: number; tags?: string[]; } export interface CreateNodeBalancerConfigRequest { port: number; protocol: string; algorithm?: string; stickiness?: string; check?: string; check_interval?: number; check_timeout?: number; check_attempts?: number; check_path?: string; check_body?: string; check_passive?: boolean; cipher_suite?: string; ssl_cert?: string; ssl_key?: string; nodes?: CreateNodeBalancerNodeRequest[]; } export interface UpdateNodeBalancerConfigRequest { port?: number; protocol?: string; algorithm?: string; stickiness?: string; check?: string; check_interval?: number; check_timeout?: number; check_attempts?: number; check_path?: string; check_body?: string; check_passive?: boolean; cipher_suite?: string; ssl_cert?: string; ssl_key?: string; } export interface CreateNodeBalancerNodeRequest { address: string; label: string; weight?: number; mode?: string; } export interface UpdateNodeBalancerNodeRequest { address?: string; label?: string; weight?: number; mode?: string; } export interface UpdateNodeBalancerFirewallsRequest { ids: number[]; } export interface LinodeNodeBalancersClient { getNodeBalancers: (params?: PaginationParams) => Promise<PaginatedResponse<NodeBalancer>>; getNodeBalancer: (id: number) => Promise<NodeBalancer>; createNodeBalancer: (data: CreateNodeBalancerRequest) => Promise<NodeBalancer>; updateNodeBalancer: (id: number, data: UpdateNodeBalancerRequest) => Promise<NodeBalancer>; deleteNodeBalancer: (id: number) => Promise<{}>; getNodeBalancerConfigs: (nodeBalancerId: number) => Promise<PaginatedResponse<NodeBalancerConfig>>; getNodeBalancerConfig: (nodeBalancerId: number, configId: number) => Promise<NodeBalancerConfig>; createNodeBalancerConfig: (nodeBalancerId: number, data: CreateNodeBalancerConfigRequest) => Promise<NodeBalancerConfig>; updateNodeBalancerConfig: (nodeBalancerId: number, configId: number, data: UpdateNodeBalancerConfigRequest) => Promise<NodeBalancerConfig>; deleteNodeBalancerConfig: (nodeBalancerId: number, configId: number) => Promise<{}>; rebuildNodeBalancerConfig: (nodeBalancerId: number, configId: number) => Promise<{}>; getNodeBalancerConfigNodes: (nodeBalancerId: number, configId: number) => Promise<PaginatedResponse<NodeBalancerNode>>; getNodeBalancerConfigNode: (nodeBalancerId: number, configId: number, nodeId: number) => Promise<NodeBalancerNode>; createNodeBalancerConfigNode: (nodeBalancerId: number, configId: number, data: CreateNodeBalancerNodeRequest) => Promise<NodeBalancerNode>; updateNodeBalancerConfigNode: (nodeBalancerId: number, configId: number, nodeId: number, data: UpdateNodeBalancerNodeRequest) => Promise<NodeBalancerNode>; deleteNodeBalancerConfigNode: (nodeBalancerId: number, configId: number, nodeId: number) => Promise<{}>; getNodeBalancerStats: (id: number) => Promise<any>; getNodeBalancerTypes: () => Promise<PaginatedResponse<NodeBalancerType>>; getNodeBalancerFirewalls: (nodeBalancerId: number, params?: PaginationParams) => Promise<PaginatedResponse<any>>; updateNodeBalancerFirewalls: (nodeBalancerId: number, data: UpdateNodeBalancerFirewallsRequest) => Promise<any>; } export declare function createNodeBalancersClient(axios: AxiosInstance): LinodeNodeBalancersClient;