@takashito/linode-mcp-server
Version:
MCP server for Linode API
41 lines • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.listVolumeTypesSchema = exports.resizeVolumeSchema = exports.detachVolumeSchema = exports.attachVolumeSchema = exports.deleteVolumeSchema = exports.createVolumeSchema = exports.getVolumeSchema = exports.listVolumesSchema = void 0;
const zod_1 = require("zod");
const schemas_1 = require("../common/schemas");
// Volume tools
exports.listVolumesSchema = zod_1.z.object({
...schemas_1.pagingParamsSchema.shape,
});
exports.getVolumeSchema = zod_1.z.object({
id: zod_1.z.number().describe('The ID of the volume'),
});
exports.createVolumeSchema = zod_1.z.object({
region: zod_1.z.string().describe('The region where the volume will be created. This is only required if a linode_id is not given.'),
size: zod_1.z.number().describe('The size of the volume in GB. If the size is not specified, default will be 20 (20GB).'),
label: zod_1.z.string().describe('The label for the volume'),
linode_id: zod_1.z.number().optional().describe('The ID of the Linode to attach the volume to. If not given, the volume will be created without an attachment.'),
tags: schemas_1.tagSchema,
config_id: zod_1.z.number().optional().describe('The ID of the configuration profile to attach to. When creating a Volume attached to a Linode, the ID of the Linode Config to include the new Volume in. This Config must belong to the Linode referenced by linode_id. Must not be provided if linode_id is not sent. If a linode_id is sent without a config_id, the volume will be attached to the Linode\'s only config if it only has one config. to the Linode\'s last used config, if possible. If no config can be selected for attachment, an error will be returned.'),
encryption: zod_1.z.enum(['enabled', 'disabled']).optional().describe('__Limited availability__ Enables encryption on the volume. Full disk encryption ensures the data stored on a block storage volume drive is secure. default is disabled.'),
});
exports.deleteVolumeSchema = zod_1.z.object({
id: zod_1.z.number().describe('The ID of the volume'),
});
exports.attachVolumeSchema = zod_1.z.object({
id: zod_1.z.number().describe('The ID of the volume'),
linode_id: zod_1.z.number().describe('The ID of the Linode to attach the volume to'),
config_id: zod_1.z.number().optional().describe('The ID of the configuration profile to attach to'),
});
exports.detachVolumeSchema = zod_1.z.object({
id: zod_1.z.number().describe('The ID of the volume'),
});
exports.resizeVolumeSchema = zod_1.z.object({
id: zod_1.z.number().describe('The ID of the volume'),
size: zod_1.z.number().describe('The new size of the volume in GB'),
});
// Volume types
exports.listVolumeTypesSchema = zod_1.z.object({
...schemas_1.pagingParamsSchema.shape
});
//# sourceMappingURL=schemas.js.map