NAME

WWW::Hetzner::Cloud::API::PrimaryIPs - Hetzner Cloud Primary IPs API

VERSION

version 0.002

SYNOPSIS

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

# List primary IPs
my $pips = $cloud->primary_ips->list;

# Create primary IP
my $pip = $cloud->primary_ips->create(
    name          => 'my-primary-ip',
    type          => 'ipv4',
    assignee_type => 'server',
    datacenter    => 'fsn1-dc14',
);

# Assign to server
$cloud->primary_ips->assign($pip->id, $server_id, 'server');

# Unassign
$cloud->primary_ips->unassign($pip->id);

# Delete
$cloud->primary_ips->delete($pip->id);

DESCRIPTION

This module provides the API for managing Hetzner Cloud primary IPs. All methods return WWW::Hetzner::Cloud::PrimaryIP objects.

list

my $pips = $cloud->primary_ips->list;
my $pips = $cloud->primary_ips->list(label_selector => 'env=prod');

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

get

my $pip = $cloud->primary_ips->get($id);

Returns WWW::Hetzner::Cloud::PrimaryIP object.

create

my $pip = $cloud->primary_ips->create(
    name          => 'my-ip',       # required
    type          => 'ipv4',        # required (ipv4 or ipv6)
    assignee_type => 'server',      # required
    datacenter    => 'fsn1-dc14',   # required
    assignee_id   => $server_id,    # optional
    auto_delete   => 1,             # optional
    labels        => { ... },       # optional
);

Creates primary IP. Returns WWW::Hetzner::Cloud::PrimaryIP object.

update

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

Updates primary IP. Returns WWW::Hetzner::Cloud::PrimaryIP object.

delete

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

Deletes primary IP.

assign

$cloud->primary_ips->assign($id, $assignee_id, $assignee_type);

Assign primary IP to resource (default assignee_type is 'server').

unassign

$cloud->primary_ips->unassign($id);

Unassign primary IP from resource.

change_dns_ptr

$cloud->primary_ips->change_dns_ptr($id, $ip, $dns_ptr);

Change reverse DNS pointer for the primary IP.

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.