@takashito/linode-mcp-server
Version:
MCP server for Linode API
41 lines (40 loc) • 1.51 kB
TypeScript
import { AxiosInstance } from 'axios';
import { PaginatedResponse, PaginationParams } from './instances';
export interface PlacementGroup {
id: number;
label: string;
placement_group_type: string;
placement_group_policy: string;
region: string;
linodes: number[];
tags?: string[];
created: string;
updated: string;
}
export interface CreatePlacementGroupRequest {
label: string;
placement_group_type: 'anti_affinity:local';
placement_group_policy?: 'strict' | 'flexible';
region: string;
tags?: string[];
}
export interface UpdatePlacementGroupRequest {
label: string;
tags?: string[];
}
export interface AssignInstancesRequest {
linodes: number[];
}
export interface UnassignInstancesRequest {
linodes: number[];
}
export interface PlacementClient {
getPlacementGroups: (params?: PaginationParams) => Promise<PaginatedResponse<PlacementGroup>>;
getPlacementGroup: (id: number) => Promise<PlacementGroup>;
createPlacementGroup: (data: CreatePlacementGroupRequest) => Promise<PlacementGroup>;
updatePlacementGroup: (id: number, data: UpdatePlacementGroupRequest) => Promise<PlacementGroup>;
deletePlacementGroup: (id: number) => Promise<void>;
assignInstances: (id: number, data: AssignInstancesRequest) => Promise<PlacementGroup>;
unassignInstances: (id: number, data: UnassignInstancesRequest) => Promise<PlacementGroup>;
}
export declare function createPlacementClient(axios: AxiosInstance): PlacementClient;