UNPKG

@takashito/linode-mcp-server

Version:

MCP server for Linode API

76 lines (75 loc) 2.48 kB
import { AxiosInstance } from 'axios'; import { PaginatedResponse, PaginationParams } from './common'; export interface VPC { id: number; label: string; description?: string; region: string; subnets: VPCSubnet[]; created: string; updated: string; tags?: string[]; } export interface VPCSubnet { id: number; label: string; ipv4: string; created: string; updated: string; tags?: string[]; } export interface CreateVPCRequest { label: string; region: string; description?: string; tags?: string[]; } export interface UpdateVPCRequest { label?: string; description?: string; tags?: string[]; } export interface CreateSubnetRequest { label: string; ipv4: string; tags?: string[]; } export interface UpdateSubnetRequest { label?: string; tags?: string[]; } export interface NodeBalancerVPCConfig { id: number; nodebalancer_id: number; vpc_id: number; subnet_id: number; ipv4_range: string; } export interface VPCIP { address: string; region: string; type: string; subnet_id: number; linode_id?: number; gateway?: boolean; vpc_id: number; created: string; updated: string; } export interface VPCsClient { getVPCs: (params?: PaginationParams) => Promise<PaginatedResponse<VPC>>; getVPC: (id: number) => Promise<VPC>; createVPC: (data: CreateVPCRequest) => Promise<VPC>; updateVPC: (id: number, data: UpdateVPCRequest) => Promise<VPC>; deleteVPC: (id: number) => Promise<void>; getSubnets: (vpcId: number, params?: PaginationParams) => Promise<PaginatedResponse<VPCSubnet>>; getSubnet: (vpcId: number, subnetId: number) => Promise<VPCSubnet>; createSubnet: (vpcId: number, data: CreateSubnetRequest) => Promise<VPCSubnet>; updateSubnet: (vpcId: number, subnetId: number, data: UpdateSubnetRequest) => Promise<VPCSubnet>; deleteSubnet: (vpcId: number, subnetId: number) => Promise<void>; getVPCIPs: (vpcId: number, params?: PaginationParams) => Promise<PaginatedResponse<VPCIP>>; getAllVPCIPs: (params?: PaginationParams) => Promise<PaginatedResponse<VPCIP>>; getNodeBalancerVPCs: (nodeBalancerId: number, params?: PaginationParams) => Promise<PaginatedResponse<NodeBalancerVPCConfig>>; getNodeBalancerVPC: (nodeBalancerId: number, nodeBalancerVpcConfigId: number) => Promise<NodeBalancerVPCConfig>; } export declare function createVPCsClient(axios: AxiosInstance): VPCsClient;