@takashito/linode-mcp-server
Version:
MCP server for Linode API
116 lines • 5.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDatabasesClient = createDatabasesClient;
/**
* Creates a databases client for interfacing with the Linode Managed Databases API
*/
function createDatabasesClient(axios) {
return {
// Engine endpoints
getEngines: async (params) => {
const response = await axios.get('/databases/engines', { params });
return response.data;
},
getEngine: async (engineId) => {
const response = await axios.get(`/databases/engines/${engineId}`);
return response.data;
},
// Type endpoints
getTypes: async (params) => {
const response = await axios.get('/databases/types', { params });
return response.data;
},
getType: async (typeId) => {
const response = await axios.get(`/databases/types/${typeId}`);
return response.data;
},
// General database instances endpoint
getDatabaseInstances: async (params) => {
const response = await axios.get('/databases/instances', { params });
return response.data;
},
// MySQL specific endpoints
getMySQLInstances: async (params) => {
const response = await axios.get('/databases/mysql/instances', { params });
return response.data;
},
getMySQLInstance: async (instanceId) => {
const response = await axios.get(`/databases/mysql/instances/${instanceId}`);
return response.data;
},
createMySQLInstance: async (data) => {
const response = await axios.post('/databases/mysql/instances', data);
return response.data;
},
updateMySQLInstance: async (instanceId, data) => {
const response = await axios.put(`/databases/mysql/instances/${instanceId}`, data);
return response.data;
},
deleteMySQLInstance: async (instanceId) => {
await axios.delete(`/databases/mysql/instances/${instanceId}`);
},
getMySQLCredentials: async (instanceId) => {
const response = await axios.get(`/databases/mysql/instances/${instanceId}/credentials`);
return response.data;
},
resetMySQLCredentials: async (instanceId) => {
const response = await axios.post(`/databases/mysql/instances/${instanceId}/credentials/reset`);
return response.data;
},
getMySQLSSLCertificate: async (instanceId) => {
const response = await axios.get(`/databases/mysql/instances/${instanceId}/ssl`);
return response.data;
},
patchMySQLInstance: async (instanceId) => {
await axios.post(`/databases/mysql/instances/${instanceId}/patch`);
},
suspendMySQLInstance: async (instanceId) => {
await axios.post(`/databases/mysql/instances/${instanceId}/suspend`);
},
resumeMySQLInstance: async (instanceId) => {
await axios.post(`/databases/mysql/instances/${instanceId}/resume`);
},
// PostgreSQL specific endpoints
getPostgreSQLInstances: async (params) => {
const response = await axios.get('/databases/postgresql/instances', { params });
return response.data;
},
getPostgreSQLInstance: async (instanceId) => {
const response = await axios.get(`/databases/postgresql/instances/${instanceId}`);
return response.data;
},
createPostgreSQLInstance: async (data) => {
const response = await axios.post('/databases/postgresql/instances', data);
return response.data;
},
updatePostgreSQLInstance: async (instanceId, data) => {
const response = await axios.put(`/databases/postgresql/instances/${instanceId}`, data);
return response.data;
},
deletePostgreSQLInstance: async (instanceId) => {
await axios.delete(`/databases/postgresql/instances/${instanceId}`);
},
getPostgreSQLCredentials: async (instanceId) => {
const response = await axios.get(`/databases/postgresql/instances/${instanceId}/credentials`);
return response.data;
},
resetPostgreSQLCredentials: async (instanceId) => {
const response = await axios.post(`/databases/postgresql/instances/${instanceId}/credentials/reset`);
return response.data;
},
getPostgreSQLSSLCertificate: async (instanceId) => {
const response = await axios.get(`/databases/postgresql/instances/${instanceId}/ssl`);
return response.data;
},
patchPostgreSQLInstance: async (instanceId) => {
await axios.post(`/databases/postgresql/instances/${instanceId}/patch`);
},
suspendPostgreSQLInstance: async (instanceId) => {
await axios.post(`/databases/postgresql/instances/${instanceId}/suspend`);
},
resumePostgreSQLInstance: async (instanceId) => {
await axios.post(`/databases/postgresql/instances/${instanceId}/resume`);
}
};
}
//# sourceMappingURL=databases.js.map