NAME

Net::Async::Hetzner::Robot - Async Hetzner Robot API client for IO::Async

VERSION

version 0.003

SYNOPSIS

use IO::Async::Loop;
use Net::Async::Hetzner::Robot;

my $loop = IO::Async::Loop->new;

my $robot = Net::Async::Hetzner::Robot->new(
    user     => $ENV{HETZNER_ROBOT_USER},
    password => $ENV{HETZNER_ROBOT_PASSWORD},
);
$loop->add($robot);

# List dedicated servers
my $servers = $robot->get('/server')->get;

# Get specific server
my $data = $robot->get('/server/123456')->get;
print $data->{server}{server_name}, "\n";

DESCRIPTION

Async client for the Hetzner Robot API (dedicated servers) built on IO::Async. Extends IO::Async::Notifier and uses Net::Async::HTTP for non-blocking HTTP communication.

All methods return Future objects. Request building and response parsing are delegated to WWW::Hetzner::Robot.

user

Robot webservice username. Falls back to HETZNER_ROBOT_USER environment variable.

password

Robot webservice password. Falls back to HETZNER_ROBOT_PASSWORD environment variable.

base_url

Base URL for the Robot API. Defaults to https://robot-ws.your-server.de.

get($path, %params)

Async GET request. Returns a Future.

post($path, \%body)

Async POST request with JSON body. Returns a Future.

put($path, \%body)

Async PUT request with JSON body. Returns a Future.

delete($path)

Async DELETE request. Returns a Future.

SEE ALSO

Net::Async::Hetzner, Net::Async::Hetzner::Cloud, WWW::Hetzner::Robot, IO::Async, Future

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-net-async-hetzner/issues.

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.