@takashito/linode-mcp-server
Version:
MCP server for Linode API
122 lines • 5.23 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createObjectStorageClient = createObjectStorageClient;
function createObjectStorageClient(axios) {
return {
// Clusters
getClusters: async () => {
const response = await axios.get('/object-storage/clusters');
return response.data.data;
},
// Endpoints
getEndpoints: async (params) => {
const response = await axios.get('/object-storage/endpoints', { params });
return response.data;
},
// Buckets
getBuckets: async (params) => {
const response = await axios.get('/object-storage/buckets', { params });
return response.data;
},
getBucket: async (region, label) => {
const response = await axios.get(`/object-storage/buckets/${region}/${label}`);
return response.data;
},
createBucket: async (data) => {
const response = await axios.post('/object-storage/buckets', data);
return response.data;
},
deleteBucket: async (region, label) => {
const response = await axios.delete(`/object-storage/buckets/${region}/${label}`);
return response.data;
},
getBucketAccess: async (region, label) => {
const response = await axios.get(`/object-storage/buckets/${region}/${label}/access`);
return response.data;
},
updateBucketAccess: async (region, label, data) => {
const response = await axios.post(`/object-storage/buckets/${region}/${label}/access`, data);
return response.data;
},
// Objects
getObjects: async (region, bucket, params) => {
const response = await axios.get(`/object-storage/buckets/${region}/${bucket}/object-list`, { params });
return response.data;
},
// New Object ACL method
updateObjectACL: async (region, bucket, name, data) => {
const response = await axios.put(`/object-storage/buckets/${region}/${bucket}/object-acl`, {
name,
acl: data.acl
});
return response.data;
},
// New Object URL generation method
getObjectURL: async (region, bucket, data) => {
// Create a new object with all properties except 'name'
const { ...requestData } = data;
// According to OpenAPI spec, we need to include the object name in the path for some methods
const response = await axios.post(`/object-storage/buckets/${region}/${bucket}/object-url`, requestData);
return response.data;
},
// SSL/TLS certificates
getBucketCertificate: async (region, bucket) => {
const response = await axios.get(`/object-storage/buckets/${region}/${bucket}/ssl`);
return response.data;
},
uploadBucketCertificate: async (region, bucket, data) => {
const response = await axios.post(`/object-storage/buckets/${region}/${bucket}/ssl`, data);
return response.data;
},
deleteBucketCertificate: async (region, bucket) => {
const response = await axios.delete(`/object-storage/buckets/${region}/${bucket}/ssl`);
return response.data;
},
// Access keys
getKeys: async (params) => {
const response = await axios.get('/object-storage/keys', { params });
return response.data;
},
getKey: async (id) => {
const response = await axios.get(`/object-storage/keys/${id}`);
return response.data;
},
createKey: async (data) => {
const response = await axios.post('/object-storage/keys', data);
return response.data;
},
updateKey: async (id, data) => {
const response = await axios.put(`/object-storage/keys/${id}`, data);
return response.data;
},
deleteKey: async (id) => {
const response = await axios.delete(`/object-storage/keys/${id}`);
return response.data;
},
// Default bucket access
getDefaultBucketAccess: async () => {
const response = await axios.get('/object-storage/bucket-access');
return response.data;
},
updateDefaultBucketAccess: async (data) => {
const response = await axios.put('/object-storage/bucket-access', data);
return response.data;
},
// New Transfer statistics method
getTransferStats: async () => {
const response = await axios.get('/object-storage/transfer');
return response.data;
},
// New Object Storage types method
getTypes: async () => {
const response = await axios.get('/object-storage/types');
return response.data;
},
// Cancellation
cancelObjectStorage: async () => {
const response = await axios.post('/object-storage/cancel');
return response.data;
}
};
}
//# sourceMappingURL=objectStorage.js.map