@takashito/linode-mcp-server
Version:
MCP server for Linode API
66 lines (65 loc) • 2 kB
TypeScript
import { AxiosInstance } from 'axios';
import { PaginatedResponse, PaginationParams } from './instances';
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 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>>;
}
export declare function createVPCsClient(axios: AxiosInstance): VPCsClient;