@takashito/linode-mcp-server
Version:
MCP server for Linode API
55 lines • 3.23 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.replicateImageSchema = exports.deleteImageSchema = exports.updateImageSchema = exports.uploadImageSchema = exports.createImageSchema = exports.getImageSchema = exports.listImagesSchema = exports.linodeImageSchema = void 0;
const zod_1 = require("zod");
const schemas_1 = require("../common/schemas");
// Basic image schema
exports.linodeImageSchema = zod_1.z.object({
id: zod_1.z.string().describe('The unique ID of this Image'),
label: zod_1.z.string().describe('The Image\'s label'),
description: zod_1.z.string().nullable().describe('A description for this Image'),
created: zod_1.z.string().describe('The date this Image was created'),
updated: zod_1.z.string().describe('The last date this Image was updated'),
type: zod_1.z.enum(['manual', 'automatic']).describe('How the Image was created'),
status: zod_1.z.enum(['available', 'creating', 'pending_upload', 'deleted']).describe('The status of the Image'),
is_public: zod_1.z.boolean().describe('True if the Image is public'),
size: zod_1.z.number().describe('The size of the Image in MB'),
created_by: zod_1.z.string().describe('The name of the user who created this Image'),
vendor: zod_1.z.string().nullable().describe('The upstream distribution vendor'),
deprecated: zod_1.z.boolean().describe('Whether or not this Image is deprecated'),
expiry: zod_1.z.string().nullable().describe('Only Images with a non-null expiry will be automatically deleted')
});
// Schema for listing images
exports.listImagesSchema = schemas_1.paginationSchema;
// Schema for getting a specific image
exports.getImageSchema = zod_1.z.object({
imageId: zod_1.z.string().describe('The ID of the Image')
});
// Schema for creating an image
exports.createImageSchema = zod_1.z.object({
disk_id: zod_1.z.number().describe('The ID of the Linode Disk to create an Image from'),
label: zod_1.z.string().describe('The label for the resulting Image'),
description: zod_1.z.string().optional().describe('A text description for the Image')
});
// Schema for uploading an image
exports.uploadImageSchema = zod_1.z.object({
label: zod_1.z.string().describe('The label for the resulting Image'),
description: zod_1.z.string().optional().describe('A text description for the Image'),
region: zod_1.z.string().describe('The region where the Image will be uploaded')
});
// Schema for updating an image
exports.updateImageSchema = zod_1.z.object({
imageId: zod_1.z.string().describe('The ID of the Image to update'),
label: zod_1.z.string().optional().describe('The new label for the Image'),
description: zod_1.z.string().optional().describe('The new description for the Image')
});
// Schema for deleting an image
exports.deleteImageSchema = zod_1.z.object({
imageId: zod_1.z.string().describe('The ID of the Image to delete')
});
// Schema for replicating an image
exports.replicateImageSchema = zod_1.z.object({
imageId: zod_1.z.string().describe('The ID of the Image to replicate'),
regions: zod_1.z.array(zod_1.z.string()).describe('Array of regions to replicate the Image to')
});
//# sourceMappingURL=schemas.js.map