API
Firewalls API
Configure firewall rules
Firewalls API
The Firewalls API allows you to configure firewall rules and apply them to resources.
List Firewalls
Returns all Firewall objects.
const firewalls = await client.firewalls.list();Get Firewall
Returns a specific Firewall object.
const firewall = await client.firewalls.get(12345);Create Firewall
Creates a new Firewall.
const firewall = await client.firewalls.create({
name: 'my-firewall',
rules: {
inbound: [
{
direction: 'in',
protocol: 'tcp',
port: '80',
source_ips: ['0.0.0.0/0', '::/0'],
description: 'Allow HTTP'
}
],
outbound: [
{
direction: 'out',
protocol: 'tcp',
source_ips: ['0.0.0.0/0', '::/0']
}
]
},
labels: { environment: 'production' }
});Update Firewall
Updates a Firewall.
const updated = await client.firewalls.update(12345, {
name: 'new-name',
labels: { environment: 'production' }
});Delete Firewall
Deletes a Firewall.
await client.firewalls.delete(12345);Apply to Resources
Applies a Firewall to resources.
await client.firewalls.applyToResources(12345, {
resources: [
{ type: 'server', server: { id: 12345 } }
]
});Remove from Resources
Removes a Firewall from resources.
await client.firewalls.removeFromResources(12345, {
resources: [
{ type: 'server', server: { id: 12345 } }
]
});Set Rules
Sets all rules for a Firewall.
await client.firewalls.setRules(12345, {
rules: {
inbound: [
{
direction: 'in',
protocol: 'tcp',
port: '443',
source_ips: ['0.0.0.0/0', '::/0']
}
]
}
});Types
type FirewallRuleProtocol = 'tcp' | 'udp' | 'icmp' | 'esp' | 'gre';
type FirewallRuleDirection = 'in' | 'out';
interface Firewall {
id: number;
name: string;
labels: Record<string, string>;
created: string;
rules?: {
inbound?: FirewallRule[];
outbound?: FirewallRule[];
};
applied_to?: Array<{
type: 'server' | 'label_selector';
server?: { id: number };
label_selector?: { selector: string };
}>;
}
interface FirewallRule {
direction: FirewallRuleDirection;
protocol: FirewallRuleProtocol;
port?: string | null;
source_ips?: string[];
destination_ips?: string[];
description?: string | null;
}