NAME

WWW::Hetzner::Cloud::API::Certificates - Hetzner Cloud Certificates API

VERSION

version 0.002

SYNOPSIS

my $cloud = WWW::Hetzner::Cloud->new(token => $token);

# List certificates
my $certs = $cloud->certificates->list;

# Create managed certificate (Let's Encrypt)
my $cert = $cloud->certificates->create(
    name         => 'my-cert',
    type         => 'managed',
    domain_names => ['example.com', 'www.example.com'],
);

# Create uploaded certificate
my $cert = $cloud->certificates->create(
    name        => 'my-cert',
    type        => 'uploaded',
    certificate => $pem_cert,
    private_key => $pem_key,
);

# Delete
$cloud->certificates->delete($cert->id);

DESCRIPTION

This module provides the API for managing Hetzner Cloud certificates. All methods return WWW::Hetzner::Cloud::Certificate objects.

list

my $certs = $cloud->certificates->list;
my $certs = $cloud->certificates->list(label_selector => 'env=prod');

Returns arrayref of WWW::Hetzner::Cloud::Certificate objects.

get

my $cert = $cloud->certificates->get($id);

Returns WWW::Hetzner::Cloud::Certificate object.

create

# Managed certificate (Let's Encrypt)
my $cert = $cloud->certificates->create(
    name         => 'my-cert',      # required
    type         => 'managed',      # required
    domain_names => ['example.com'],# required for managed
    labels       => { ... },        # optional
);

# Uploaded certificate
my $cert = $cloud->certificates->create(
    name        => 'my-cert',       # required
    type        => 'uploaded',      # required
    certificate => $pem_cert,       # required for uploaded
    private_key => $pem_key,        # required for uploaded
    labels      => { ... },         # optional
);

Creates certificate. Returns WWW::Hetzner::Cloud::Certificate object.

update

$cloud->certificates->update($id, name => 'new-name', labels => { ... });

Updates certificate. Returns WWW::Hetzner::Cloud::Certificate object.

delete

$cloud->certificates->delete($id);

Deletes certificate.

retry

$cloud->certificates->retry($id);

Retry issuance of a managed certificate that failed.

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.