@takashito/linode-mcp-server
Version:
MCP server for Linode API
76 lines (75 loc) • 2.48 kB
TypeScript
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;