@takashito/linode-mcp-server
Version:
MCP server for Linode API
248 lines • 11 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;
},
// 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;
},
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;
},
// Entity operations
getEntities: async (params) => {
const response = await axiosInstance.get('/entities', { params });
return response.data;
},
// IAM Role Permission operations
getIamRoles: async () => {
const response = await axiosInstance.get('/iam/role-permissions');
return response.data;
},
getUserRolePermissions: async (username) => {
const response = await axiosInstance.get(`/iam/users/${username}/role-permissions`);
return response.data;
},
updateUserRolePermissions: async (username, data) => {
const response = await axiosInstance.put(`/iam/users/${username}/role-permissions`, data);
return response.data;
},
// Delegation Child Account operations
getDelegationChildAccounts: async (params) => {
const response = await axiosInstance.get('/iam/delegation/child-accounts', { params });
return response.data;
},
getDelegationChildAccountUsers: async (euuid) => {
const response = await axiosInstance.get(`/iam/delegation/child-accounts/${euuid}/users`);
return response.data;
},
updateDelegationChildAccountUsers: async (euuid, data) => {
const response = await axiosInstance.put(`/iam/delegation/child-accounts/${euuid}/users`, data);
return response.data;
},
// Delegation Default Roles operations
getDelegationDefaultRoles: async () => {
const response = await axiosInstance.get('/iam/delegation/default-role-permissions');
return response.data;
},
updateDelegationDefaultRoles: async (data) => {
const response = await axiosInstance.put('/iam/delegation/default-role-permissions', data);
return response.data;
},
// Delegation Profile operations
getDelegationProfileAccounts: async (params) => {
const response = await axiosInstance.get('/iam/delegation/profile/child-accounts', { params });
return response.data;
},
getDelegationProfileAccount: async (euuid) => {
const response = await axiosInstance.get(`/iam/delegation/profile/child-accounts/${euuid}`);
return response.data;
},
createDelegationToken: async (euuid) => {
const response = await axiosInstance.post(`/iam/delegation/profile/child-accounts/${euuid}/token`);
return response.data;
},
// User Delegations operations
getUserDelegations: async (username) => {
const response = await axiosInstance.get(`/iam/delegation/users/${username}/child-accounts`);
return response.data;
},
// Maintenance Policy operations
getMaintenancePolicies: async (params) => {
const response = await axiosInstance.get('/maintenance/policies', { params });
return response.data;
},
// Resource Lock operations
getResourceLocks: async (params) => {
const response = await axiosInstance.get('https://api.linode.com/v4beta/locks', { params });
return response.data;
},
getResourceLock: async (resourceLockId) => {
const response = await axiosInstance.get(`https://api.linode.com/v4beta/locks/${resourceLockId}`);
return response.data;
},
createResourceLock: async (data) => {
const response = await axiosInstance.post('https://api.linode.com/v4beta/locks', data);
return response.data;
},
deleteResourceLock: async (resourceLockId) => {
await axiosInstance.delete(`https://api.linode.com/v4beta/locks/${resourceLockId}`);
}
};
}
//# sourceMappingURL=account.js.map