NAME
WWW::Hetzner::Cloud::API::Firewalls - Hetzner Cloud Firewalls API
VERSION
version 0.002
SYNOPSIS
my $cloud = WWW::Hetzner::Cloud->new(token => $token);
# List firewalls
my $firewalls = $cloud->firewalls->list;
# Create firewall with rules
my $fw = $cloud->firewalls->create(
name => 'web-firewall',
rules => [
{
direction => 'in',
protocol => 'tcp',
port => '22',
source_ips => ['0.0.0.0/0', '::/0'],
},
{
direction => 'in',
protocol => 'tcp',
port => '80',
source_ips => ['0.0.0.0/0', '::/0'],
},
],
);
# Apply to server
$cloud->firewalls->apply_to_resources($fw->id,
{ type => 'server', server => { id => 123 } },
);
# Delete
$cloud->firewalls->delete($fw->id);
DESCRIPTION
This module provides the API for managing Hetzner Cloud firewalls. All methods return WWW::Hetzner::Cloud::Firewall objects.
list
my $firewalls = $cloud->firewalls->list;
my $firewalls = $cloud->firewalls->list(label_selector => 'env=prod');
Returns arrayref of WWW::Hetzner::Cloud::Firewall objects.
get
my $firewall = $cloud->firewalls->get($id);
Returns WWW::Hetzner::Cloud::Firewall object.
create
my $fw = $cloud->firewalls->create(
name => 'my-firewall', # required
rules => [ ... ], # optional
labels => { ... }, # optional
apply_to => [ ... ], # optional
);
Creates firewall. Returns WWW::Hetzner::Cloud::Firewall object.
update
$cloud->firewalls->update($id, name => 'new-name', labels => { ... });
Updates firewall. Returns WWW::Hetzner::Cloud::Firewall object.
delete
$cloud->firewalls->delete($id);
Deletes firewall.
set_rules
$cloud->firewalls->set_rules($id, \@rules);
Set firewall rules, replacing all existing rules.
apply_to_resources
$cloud->firewalls->apply_to_resources($id,
{ type => 'server', server => { id => 123 } },
);
Apply firewall to resources.
remove_from_resources
$cloud->firewalls->remove_from_resources($id,
{ type => 'server', server => { id => 123 } },
);
Remove firewall from resources.
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-www-hetzner/issues.
IRC
Join #kubernetes on irc.perl.org or message Getty directly.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <torsten@raudssus.de>
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.