update-template
Modify existing templates by updating Docker images, ports, environment variables, and documentation to adapt configurations for changing requirements.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | ID of the template to update | |
| name | No | New name for the template | |
| imageName | No | New Docker image | |
| ports | No | New ports to expose | |
| env | No | New environment variables | |
| readme | No | New README content in markdown format |
Implementation Reference
- src/index.ts:583-599 (handler)The handler function that executes the tool logic: destructures the templateId from params, sends a PATCH request to RunPod API /templates/{templateId} with the update parameters, and returns the JSON response as text content.async (params) => { const { templateId, ...updateParams } = params; const result = await runpodRequest( `/templates/${templateId}`, 'PATCH', updateParams ); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }
- src/index.ts:572-582 (schema)Zod input schema defining the parameters for updating a template: required templateId, optional name, imageName, ports, env, and readme.{ templateId: z.string().describe('ID of the template to update'), name: z.string().optional().describe('New name for the template'), imageName: z.string().optional().describe('New Docker image'), ports: z.array(z.string()).optional().describe('New ports to expose'), env: z.record(z.string()).optional().describe('New environment variables'), readme: z .string() .optional() .describe('New README content in markdown format'), },
- src/index.ts:570-600 (registration)Registration of the 'update-template' tool using server.tool(), including inline schema and handler.server.tool( 'update-template', { templateId: z.string().describe('ID of the template to update'), name: z.string().optional().describe('New name for the template'), imageName: z.string().optional().describe('New Docker image'), ports: z.array(z.string()).optional().describe('New ports to expose'), env: z.record(z.string()).optional().describe('New environment variables'), readme: z .string() .optional() .describe('New README content in markdown format'), }, async (params) => { const { templateId, ...updateParams } = params; const result = await runpodRequest( `/templates/${templateId}`, 'PATCH', updateParams ); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } );