@takashito/linode-mcp-server
Version:
MCP server for Linode API
186 lines • 7.96 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAccountClient = createAccountClient;
function createAccountClient(axiosInstance) {
return {
// Account operations
getAccount: async () => {
const response = await axiosInstance.get('/account');
return response.data;
},
updateAccount: async (data) => {
const response = await axiosInstance.put('/account', data);
return response.data;
},
// Agreements operations
getAgreements: async () => {
const response = await axiosInstance.get('/account/agreements');
return response.data;
},
acknowledgeAgreements: async (data) => {
const response = await axiosInstance.post('/account/agreements', data);
return response.data;
},
// Service availability operations
getServiceAvailability: async () => {
const response = await axiosInstance.get('/account/availability');
return response.data;
},
getRegionServiceAvailability: async (regionId) => {
const response = await axiosInstance.get(`/account/availability/${regionId}`);
return response.data;
},
// Account cancellation
cancelAccount: async (data) => {
const response = await axiosInstance.post('/account/cancel', data);
return response.data;
},
// Child account operations
getChildAccounts: async (params) => {
const response = await axiosInstance.get('/account/child-accounts', { params });
return response.data;
},
getChildAccount: async (euuid) => {
const response = await axiosInstance.get(`/account/child-accounts/${euuid}`);
return response.data;
},
createProxyToken: async (euuid, data) => {
const response = await axiosInstance.post(`/account/child-accounts/${euuid}/token`, data);
return response.data;
},
// Event operations
getEvents: async (params) => {
const response = await axiosInstance.get('/account/events', { params });
return response.data;
},
getEvent: async (eventId) => {
const response = await axiosInstance.get(`/account/events/${eventId}`);
return response.data;
},
markEventAsRead: async (eventId) => {
const response = await axiosInstance.post(`/account/events/${eventId}/read`);
return response.data;
},
markEventAsSeen: async (eventId) => {
const response = await axiosInstance.post(`/account/events/${eventId}/seen`);
return response.data;
},
// Invoice operations
getInvoices: async (params) => {
const response = await axiosInstance.get('/account/invoices', { params });
return response.data;
},
getInvoice: async (invoiceId) => {
const response = await axiosInstance.get(`/account/invoices/${invoiceId}`);
return response.data;
},
getInvoiceItems: async (invoiceId, params) => {
const response = await axiosInstance.get(`/account/invoices/${invoiceId}/items`, { params });
return response.data;
},
// Login operations
getLogins: async (params) => {
const response = await axiosInstance.get('/account/logins', { params });
return response.data;
},
getLogin: async (loginId) => {
const response = await axiosInstance.get(`/account/logins/${loginId}`);
return response.data;
},
// Maintenance operations
getMaintenances: async (params) => {
const response = await axiosInstance.get('/account/maintenance', { params });
return response.data;
},
// Notification operations
getNotifications: async () => {
const response = await axiosInstance.get('/account/notifications');
return response.data;
},
// OAuth client operations
getOAuthClients: async (params) => {
const response = await axiosInstance.get('/account/oauth-clients', { params });
return response.data;
},
createOAuthClient: async (data) => {
const response = await axiosInstance.post('/account/oauth-clients', data);
return response.data;
},
deleteOAuthClient: async (clientId) => {
await axiosInstance.delete(`/account/oauth-clients/${clientId}`);
},
getOAuthClient: async (clientId) => {
const response = await axiosInstance.get(`/account/oauth-clients/${clientId}`);
return response.data;
},
updateOAuthClient: async (clientId, data) => {
const response = await axiosInstance.put(`/account/oauth-clients/${clientId}`, data);
return response.data;
},
resetOAuthClientSecret: async (clientId) => {
const response = await axiosInstance.post(`/account/oauth-clients/${clientId}/reset-secret`);
return response.data;
},
getOAuthClientThumbnail: async (clientId) => {
const response = await axiosInstance.get(`/account/oauth-clients/${clientId}/thumbnail`, {
responseType: 'arraybuffer'
});
return response.data;
},
updateOAuthClientThumbnail: async (clientId, thumbnailData) => {
const response = await axiosInstance.put(`/account/oauth-clients/${clientId}/thumbnail`, thumbnailData, {
headers: {
'Content-Type': 'image/png' // Assuming PNG format, adjust as needed
}
});
return response.data;
},
// Account settings operations
getAccountSettings: async () => {
const response = await axiosInstance.get('/account/settings');
return response.data;
},
updateAccountSettings: async (data) => {
const response = await axiosInstance.put('/account/settings', data);
return response.data;
},
enableManagedService: async () => {
const response = await axiosInstance.post('/account/settings/managed-enable');
return response.data;
},
// Network transfer operations
getNetworkTransfer: async () => {
const response = await axiosInstance.get('/account/transfer');
return response.data;
},
// User operations
getUsers: async (params) => {
const response = await axiosInstance.get('/account/users', { params });
return response.data;
},
createUser: async (data) => {
const response = await axiosInstance.post('/account/users', data);
return response.data;
},
deleteUser: async (username) => {
await axiosInstance.delete(`/account/users/${username}`);
},
getUser: async (username) => {
const response = await axiosInstance.get(`/account/users/${username}`);
return response.data;
},
updateUser: async (username, data) => {
const response = await axiosInstance.put(`/account/users/${username}`, data);
return response.data;
},
getUserGrants: async (username) => {
const response = await axiosInstance.get(`/account/users/${username}/grants`);
return response.data;
},
updateUserGrants: async (username, data) => {
const response = await axiosInstance.put(`/account/users/${username}/grants`, data);
return response.data;
}
};
}
//# sourceMappingURL=account.js.map