NAME
WWW::Hetzner::Cloud::API::RRSets - Hetzner Cloud DNS RRSets (Records) API
VERSION
version 0.002
SYNOPSIS
use WWW::Hetzner::Cloud;
my $cloud = WWW::Hetzner::Cloud->new(token => $ENV{HETZNER_API_TOKEN});
# Get RRSets object for a zone
my $rrsets = $cloud->zones->rrsets($zone_id);
# Or from a Zone object
my $zone = $cloud->zones->get($zone_id);
my $rrsets = $zone->rrsets;
# List all records
my $records = $rrsets->list;
my $records = $rrsets->list(type => 'A');
# Get specific record
my $record = $rrsets->get('www', 'A');
printf "Record: %s -> %s\n", $record->name, $record->records->[0]{value};
# Create records
my $record = $rrsets->create(
name => 'www',
type => 'A',
ttl => 300,
records => [{ value => '203.0.113.10' }],
);
# Convenience methods
$rrsets->add_a('www', '203.0.113.10', ttl => 300);
$rrsets->add_aaaa('www', '2001:db8::1');
$rrsets->add_cname('blog', 'www.example.com.');
$rrsets->add_mx('@', 'mail.example.com.', 10);
$rrsets->add_txt('@', 'v=spf1 include:_spf.example.com ~all');
# Update record
$rrsets->update('www', 'A', records => [{ value => '203.0.113.20' }]);
# Delete record
$rrsets->delete('www', 'A');
DESCRIPTION
This module provides access to DNS RRSets (Resource Record Sets) within a zone. RRSets are groups of DNS records with the same name and type. All methods return WWW::Hetzner::Cloud::RRSet objects.
list
my $records = $rrsets->list;
my $records = $rrsets->list(type => 'A', name => 'www');
Returns an arrayref of WWW::Hetzner::Cloud::RRSet objects. Optional parameters: name, type, sort, page, per_page.
get
my $record = $rrsets->get($name, $type);
my $record = $rrsets->get('www', 'A');
Returns a WWW::Hetzner::Cloud::RRSet object.
create
my $record = $rrsets->create(
name => 'www', # required
type => 'A', # required
records => [{ value => '1.2.3.4' }], # required
ttl => 300, # optional
);
Creates a new RRSet. Returns a WWW::Hetzner::Cloud::RRSet object.
update
my $record = $rrsets->update('www', 'A',
ttl => 600,
records => [{ value => '1.2.3.5' }],
);
Updates an existing RRSet. Returns a WWW::Hetzner::Cloud::RRSet object.
delete
$rrsets->delete('www', 'A');
Deletes an RRSet.
add_a
my $record = $rrsets->add_a('www', '203.0.113.10', ttl => 300);
Creates an A record. Returns a WWW::Hetzner::Cloud::RRSet object.
add_aaaa
my $record = $rrsets->add_aaaa('www', '2001:db8::1', ttl => 300);
Creates an AAAA record. Returns a WWW::Hetzner::Cloud::RRSet object.
add_cname
my $record = $rrsets->add_cname('blog', 'www.example.com.', ttl => 3600);
Creates a CNAME record. Target should end with a dot. Returns a WWW::Hetzner::Cloud::RRSet object.
add_mx
my $record = $rrsets->add_mx('@', 'mail.example.com.', 10, ttl => 3600);
Creates an MX record with priority. Returns a WWW::Hetzner::Cloud::RRSet object.
add_txt
my $record = $rrsets->add_txt('@', 'v=spf1 include:_spf.example.com ~all');
Creates a TXT record. Returns a WWW::Hetzner::Cloud::RRSet object.
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.