UNPKG

@takashito/linode-mcp-server

Version:

MCP server for Linode API

143 lines 9.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.listImageSharegroupsByImageSchema = exports.listTokenSharegroupImagesSchema = exports.getTokenSharegroupSchema = exports.deleteSharegroupTokenSchema = exports.updateSharegroupTokenSchema = exports.createSharegroupTokenSchema = exports.getSharegroupTokenSchema = exports.listSharegroupTokensSchema = exports.removeSharegroupMemberSchema = exports.updateSharegroupMemberSchema = exports.addSharegroupMembersSchema = exports.getSharegroupMemberSchema = exports.listSharegroupMembersSchema = exports.removeSharegroupImageSchema = exports.updateSharegroupImageSchema = exports.addSharegroupImagesSchema = exports.listSharegroupImagesSchema = exports.deleteImageSharegroupSchema = exports.updateImageSharegroupSchema = exports.createImageSharegroupSchema = exports.getImageSharegroupSchema = exports.listImageSharegroupsSchema = 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: (0, schemas_1.coerceBoolean)().describe('True if the Image is public'), size: zod_1.z.coerce.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: (0, schemas_1.coerceBoolean)().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.coerce.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') }); // --- Sharegroups CRUD --- exports.listImageSharegroupsSchema = schemas_1.paginationSchema; exports.getImageSharegroupSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group') }); exports.createImageSharegroupSchema = zod_1.z.object({ label: zod_1.z.string().describe('The label for the share group'), description: zod_1.z.string().optional().describe('A description for the share group') }); exports.updateImageSharegroupSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group to update'), label: zod_1.z.string().optional().describe('The new label for the share group'), description: zod_1.z.string().optional().describe('The new description for the share group') }); exports.deleteImageSharegroupSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group to delete') }); // --- Sharegroup Images --- exports.listSharegroupImagesSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group'), page: zod_1.z.coerce.number().int().optional().describe('Page number to fetch (minimum: 1)'), page_size: zod_1.z.coerce.number().int().optional().describe('Number of items per page (minimum: 1, maximum: 500)') }); exports.addSharegroupImagesSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group'), images: zod_1.z.array(zod_1.z.string()).describe('Array of Image IDs to add to the share group') }); exports.updateSharegroupImageSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group'), imageId: zod_1.z.string().describe('The ID of the shared image to update') }); exports.removeSharegroupImageSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group'), imageId: zod_1.z.string().describe('The ID of the shared image to remove') }); // --- Sharegroup Members --- exports.listSharegroupMembersSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group'), page: zod_1.z.coerce.number().int().optional().describe('Page number to fetch (minimum: 1)'), page_size: zod_1.z.coerce.number().int().optional().describe('Number of items per page (minimum: 1, maximum: 500)') }); exports.getSharegroupMemberSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group'), tokenUuid: zod_1.z.string().describe('The UUID of the membership token') }); exports.addSharegroupMembersSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group'), data: zod_1.z.record(zod_1.z.any()).optional().describe('Request body for adding members to the share group') }); exports.updateSharegroupMemberSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group'), tokenUuid: zod_1.z.string().describe('The UUID of the membership token to update'), data: zod_1.z.record(zod_1.z.any()).optional().describe('Request body for updating the membership token') }); exports.removeSharegroupMemberSchema = zod_1.z.object({ sharegroupId: zod_1.z.coerce.number().describe('The ID of the share group'), tokenUuid: zod_1.z.string().describe('The UUID of the membership token to revoke') }); // --- Sharegroup Tokens --- exports.listSharegroupTokensSchema = schemas_1.paginationSchema; exports.getSharegroupTokenSchema = zod_1.z.object({ tokenUuid: zod_1.z.string().describe('The UUID of the token') }); exports.createSharegroupTokenSchema = zod_1.z.object({ data: zod_1.z.record(zod_1.z.any()).optional().describe('Request body for creating a sharegroup token') }); exports.updateSharegroupTokenSchema = zod_1.z.object({ tokenUuid: zod_1.z.string().describe('The UUID of the token to update'), data: zod_1.z.record(zod_1.z.any()).optional().describe('Request body for updating the token') }); exports.deleteSharegroupTokenSchema = zod_1.z.object({ tokenUuid: zod_1.z.string().describe('The UUID of the token to delete') }); // --- Token Lookups --- exports.getTokenSharegroupSchema = zod_1.z.object({ tokenUuid: zod_1.z.string().describe('The UUID of the token') }); exports.listTokenSharegroupImagesSchema = zod_1.z.object({ tokenUuid: zod_1.z.string().describe('The UUID of the token'), page: zod_1.z.coerce.number().int().optional().describe('Page number to fetch (minimum: 1)'), page_size: zod_1.z.coerce.number().int().optional().describe('Number of items per page (minimum: 1, maximum: 500)') }); // --- Image-to-Sharegroups Lookup --- exports.listImageSharegroupsByImageSchema = zod_1.z.object({ imageId: zod_1.z.string().describe('The ID of the Image'), page: zod_1.z.coerce.number().int().optional().describe('Page number to fetch (minimum: 1)'), page_size: zod_1.z.coerce.number().int().optional().describe('Number of items per page (minimum: 1, maximum: 500)') }); //# sourceMappingURL=schemas.js.map