@takashito/linode-mcp-server
Version:
MCP server for Linode API
99 lines • 4.12 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createNetworkingClient = createNetworkingClient;
function createNetworkingClient(axios) {
return {
// IP Address operations
getIPAddresses: async () => {
const response = await axios.get('/networking/ips');
return response.data;
},
getIPAddress: async (address) => {
const response = await axios.get(`/networking/ips/${address}`);
return response.data;
},
updateIPAddress: async (address, data) => {
const response = await axios.put(`/networking/ips/${address}`, data);
return response.data;
},
allocateIPAddress: async (data) => {
const response = await axios.post('/networking/ips', data);
return response.data;
},
shareIPAddresses: async (data) => {
const response = await axios.post('/networking/ips/share', data);
return response.data;
},
// IPv6 operations
getIPv6Ranges: async () => {
const response = await axios.get('/networking/ipv6/ranges');
return response.data;
},
getIPv6Range: async (range) => {
const response = await axios.get(`/networking/ipv6/ranges/${range}`);
return response.data;
},
getIPv6Pools: async () => {
const response = await axios.get('/networking/ipv6/pools');
return response.data;
},
// Firewall operations
getFirewalls: async (params) => {
const response = await axios.get('/networking/firewalls', { params });
return response.data;
},
getFirewall: async (id) => {
const response = await axios.get(`/networking/firewalls/${id}`);
return response.data;
},
createFirewall: async (data) => {
// Ensure inbound_policy and outbound_policy are provided
if (!data.rules.inbound_policy) {
data.rules.inbound_policy = 'DROP';
}
if (!data.rules.outbound_policy) {
data.rules.outbound_policy = 'ACCEPT';
}
const response = await axios.post('/networking/firewalls', data);
return response.data;
},
updateFirewall: async (id, data) => {
const response = await axios.put(`/networking/firewalls/${id}`, data);
return response.data;
},
deleteFirewall: async (id) => {
const response = await axios.delete(`/networking/firewalls/${id}`);
return response.data;
},
getFirewallDevices: async (firewallId) => {
const response = await axios.get(`/networking/firewalls/${firewallId}/devices`);
return response.data;
},
createFirewallDevice: async (firewallId, data) => {
const response = await axios.post(`/networking/firewalls/${firewallId}/devices`, data);
return response.data;
},
deleteFirewallDevice: async (firewallId, deviceId) => {
const response = await axios.delete(`/networking/firewalls/${firewallId}/devices/${deviceId}`);
return response.data;
},
getFirewallRules: async (firewallId) => {
const response = await axios.get(`/networking/firewalls/${firewallId}/rules`);
return response.data;
},
updateFirewallRules: async (firewallId, data) => {
const response = await axios.put(`/networking/firewalls/${firewallId}/rules`, data);
return response.data;
},
// VLAN operations
getVLANs: async (params) => {
const response = await axios.get('/networking/vlans', { params });
return response.data;
},
getVLAN: async (regionId, label) => {
const response = await axios.get(`/networking/vlans/${regionId}/${label}`);
return response.data;
}
};
}
//# sourceMappingURL=networking.js.map