DNS-Hetzner

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Release history for DNS::Hetzner
================================

0.05   2021-01-11 13:19:00

  * fix cpantester fails (hopefully)

0.04   2021-01-10 10:27:00

  * Regenerate API classes for API version 1.1.1
  * Add stuff for new Primary Server endpoint

0.03   2021-01-08 08:25:00

  * use Dist::Zilla plugin SyncCPANfile to keep cpanfile in sync with prereq list in dist.ini
  * let Dist::Zilla::Plugin::PkgVersion set the version numbers. This removes unecessary maintenance burdens from us ;-)
  * remove DNS::Hetzner::API as the functionality is only used (and useful) in DNS::Hetzner the load_namespace function is moved to DNS::Hetzner
  * need to use Types::Standard as Types::Mojo doesn't inherit methods from Types::Standard since version 0.05 (thanks CPANTesters)

0.02   2021-01-06 05:20:00

lib/DNS/Hetzner/API/PrimaryServers.pm  view on Meta::CPAN

use Types::Standard qw(:all);

use Mojo::Base -strict, -signatures;

extends 'DNS::Hetzner::APIBase';

with 'MooX::Singleton';

use DNS::Hetzner::Schema;

has endpoint  => ( is => 'ro', isa => Str, default => sub { 'primary_servers' } );

sub list ($self, %params) {
    return $self->_do( 'GetPrimaryServers', \%params, '', { type => 'get' } );
}

sub create ($self, %params) {
    return $self->_do( 'CreatePrimaryServer', \%params, '', { type => 'post' } );
}

sub delete ($self, %params) {

lib/DNS/Hetzner/API/PrimaryServers.pm  view on Meta::CPAN

        token => $api_key,
    );

    $dns->records->create(
    );

=head1 ATTRIBUTES

=over 4

=item * endpoint

=back

=head1 METHODS

=head2 list

Returns all primary servers associated with user. Primary servers can also be filtered by zone_id.

    $dns->primary_servers->list();

lib/DNS/Hetzner/API/Records.pm  view on Meta::CPAN

use Types::Standard qw(:all);

use Mojo::Base -strict, -signatures;

extends 'DNS::Hetzner::APIBase';

with 'MooX::Singleton';

use DNS::Hetzner::Schema;

has endpoint  => ( is => 'ro', isa => Str, default => sub { 'records' } );

sub list ($self, %params) {
    return $self->_do( 'GetRecords', \%params, '', { type => 'get' } );
}

sub create ($self, %params) {
    return $self->_do( 'CreateRecord', \%params, '', { type => 'post' } );
}

sub bulk_create ($self, %params) {

lib/DNS/Hetzner/API/Records.pm  view on Meta::CPAN

        token => $api_key,
    );

    $dns->records->create(
    );

=head1 ATTRIBUTES

=over 4

=item * endpoint

=back

=head1 METHODS

=head2 list

Returns all records associated with user.

    $dns->records->list();

lib/DNS/Hetzner/API/Zones.pm  view on Meta::CPAN

use Types::Standard qw(:all);

use Mojo::Base -strict, -signatures;

extends 'DNS::Hetzner::APIBase';

with 'MooX::Singleton';

use DNS::Hetzner::Schema;

has endpoint  => ( is => 'ro', isa => Str, default => sub { 'zones' } );

sub list ($self, %params) {
    return $self->_do( 'GetZones', \%params, '', { type => 'get' } );
}

sub create ($self, %params) {
    return $self->_do( 'CreateZone', \%params, '', { type => 'post' } );
}

sub validate_file_plain ($self, %params) {

lib/DNS/Hetzner/API/Zones.pm  view on Meta::CPAN

        token => $api_key,
    );

    $dns->records->create(
    );

=head1 ATTRIBUTES

=over 4

=item * endpoint

=back

=head1 METHODS

=head2 list

Returns paginated zones associated with the user. Limited to 100 zones per request.

    $dns->zones->list();

lib/DNS/Hetzner/APIBase.pm  view on Meta::CPAN

        my $query_params = delete $params->{query};

        $query = join '&', map{
            $_ . '=' . url_escape($query_params->{$_})
        }sort keys $query_params->%*;
    }

    my $uri = join '/',
        $self->host,
        $self->base_uri,
        $self->endpoint,
        $partial_uri;

    $uri =~ s{/\z}{};

    $uri .= '?' . $query if $query;

    my $tx = $self->client->$method(
        $uri,
        {
            'Auth-API-Token' => $self->token,



( run in 0.286 second using v1.01-cache-2.11-cpan-b61123c0432 )