Changes for version 0.102 - 2026-10-21
- The distribution declares LWP::Protocol::https, without it every https target fails
- Fix: transport failures (connection refused, DNS, TLS, timeout) now croak with LWP's reason instead of a bare "Hetzner API error: 500"; non-JSON error bodies (e.g. a proxy's HTML 502) contribute their status and text to the error message
- Fix: the debug log no longer prints password, private_key and user_data values of request bodies
- New: WWW::Hetzner::Cloud::Costs, $cloud->costs(label_selector => ..., price => 'gross'|'net') sums the hourly and monthly cost per resource and in total for servers (plus the server backup surcharge when backup_window is set), volumes, primary IPs, floating IPs and load balancers, priced per location from /pricing. Gross by default; the result carries price and vat_rate. Where /pricing has no hourly price (volumes, floating IPs) hourly is derived as monthly/624 and flagged hourly_derived. Resources without a price warn and stay out of the totals
- CLI: hcloud.pl costs [--label|-l SELECTOR] [--net] [--json]
- Fix: Server and PrimaryIP read the location object current API responses carry instead of the dropped datacenter (datacenter kept as fallback); Server gains the backup_window attribute
- Fix: Servers->create sent start_after_create, automount, enable_ipv4 and enable_ipv6 (also inside public_net) as JSON numbers, which the API rejected as invalid_input; they are now JSON booleans, as is change_type's upgrade_disk. The caller's public_net hash is no longer modified
- Docs: WWW::Hetzner::Cloud::API::Datacenters is deprecated, Hetzner removed GET /v1/datacenters (410 deprecated_api_endpoint); use Locations. The hcloud.pl datacenter command and the datacenter parameter of Servers->create and PrimaryIPs->create are deprecated as well
- Fix: Volumes->create and Volumes->attach send automount as a JSON boolean; a Perl 0 went out as the JSON number 0, which the API rejected as invalid_input, and attach turned every value into true
- CLI: hcloud.pl server list and hcloud.pl primary-ip list show the column LOCATION instead of DATACENTER, the API no longer sends the datacenter field
- New: the server type carries its locations, one entry per location with the name, the availability the datacenter used to deliver and the deprecation flag
Documentation
Hetzner Cloud CLI (Perl implementation)
Hetzner Robot CLI (Perl implementation)
Modules
Perl client for Hetzner APIs (Cloud, Storage, Robot)
Hetzner API action object
Hetzner Cloud CLI
Hetzner Cloud Certificate commands
Create a managed certificate
Delete a certificate
Describe a certificate
List certificates
Show the current running cost of the project
Datacenter commands
Hetzner Cloud Firewall commands
Add a rule to a firewall
Apply a firewall to a server
Create a firewall
Delete a firewall
Describe a firewall
List firewalls
Remove a firewall from a server
Hetzner Cloud Floating IP commands
Assign a floating IP to a server
Create a floating IP
Delete a floating IP
Describe a floating IP
List floating IPs
Unassign a floating IP from its server
Image commands
ISO commands
Hetzner Cloud Load Balancer commands
Add a service to a load balancer
Add a target to a load balancer
Create a load balancer
Delete a load balancer
Describe a load balancer
List load balancers
Load balancer type commands
Location commands
Hetzner Cloud Network commands
Add a route to a network
Add a subnet to a network
Create a network
Delete a network
Describe a network
List networks
Hetzner Cloud Placement Group commands
Create a placement group
Delete a placement group
Describe a placement group
List placement groups
Pricing commands
Hetzner Cloud Primary IP commands
Assign a primary IP to a server
Create a primary IP
Delete a primary IP
Describe a primary IP
List primary IPs
Unassign a primary IP from its server
DNS Record commands
Create a DNS record
Delete a DNS record
Describe a DNS record
List DNS records
Server commands
Create a server
Delete a server
Show server details
List servers
Power off a server (hard)
Power on a server
Reboot a server (soft)
Rebuild a server with a new image
Enable or disable rescue mode
Reset a server (hard)
Shutdown a server (graceful)
Server type commands
SSH key commands
Create an SSH key
Delete an SSH key
Describe an SSH key
List SSH keys
Storage Box commands
Add a label to a Storage Box
Change a Storage Box type
Create a Storage Box
Delete a Storage Box
Describe a Storage Box
Disable Storage Box delete protection
Disable a Storage Box snapshot plan
Enable Storage Box delete protection
Enable a Storage Box snapshot plan
List Storage Box folders
List Storage Boxes
Remove a label from a Storage Box
Reset a Storage Box password
Roll a Storage Box back to a snapshot
Storage Box snapshot commands
Add a label to a Storage Box snapshot
Create a Storage Box snapshot
Delete a Storage Box snapshot
Describe a Storage Box snapshot
List snapshots of a Storage Box
Remove a label from a Storage Box snapshot
Update a Storage Box snapshot
Storage Box subaccount commands
Change a Storage Box subaccount home directory
Create a Storage Box subaccount
Delete a Storage Box subaccount
Describe a Storage Box subaccount
List subaccounts of a Storage Box
Reset a Storage Box subaccount password
Update a Storage Box subaccount
Update Storage Box subaccount access settings
Update a Storage Box
Update Storage Box access settings
Volume commands
Attach a volume to a server
Create a volume
Delete a volume
Describe a volume
Detach a volume from a server
List volumes
Resize a volume
DNS Zone commands
Create a DNS zone
Delete a DNS zone
Describe a DNS zone
List DNS zones
CLI role that waits for a returned Action by default
Perl client for Hetzner Cloud API
Hetzner Cloud Actions API
Hetzner Cloud Certificates API
Hetzner Cloud Datacenters API
Hetzner Cloud Firewalls API
Hetzner Cloud Floating IPs API
Hetzner Cloud ISOs API
Hetzner Cloud Images API
Hetzner Cloud Load Balancer Types API
Hetzner Cloud Load Balancers API
Hetzner Cloud Locations API
Hetzner Cloud Networks API
Hetzner Cloud Placement Groups API
Hetzner Cloud Pricing API
Hetzner Cloud Primary IPs API
Hetzner Cloud DNS RRSets (Records) API
Hetzner Cloud SSH Keys API
Hetzner Cloud Server Types API
Hetzner Cloud Servers API
Hetzner Cloud Volumes API
Hetzner Cloud DNS Zones API
Hetzner Cloud Certificate object
Current running cost of a Hetzner Cloud project
Hetzner Cloud Datacenter object
Hetzner Cloud Firewall object
Hetzner Cloud Floating IP object
Hetzner Cloud ISO object
Hetzner Cloud Image object
Hetzner Cloud Load Balancer object
Hetzner Cloud LoadBalancerType object
Hetzner Cloud Location object
Hetzner Cloud Network object
Hetzner Cloud Placement Group object
Hetzner Cloud Pricing object
Hetzner Cloud Primary IP object
Hetzner Cloud DNS RRSet object
Hetzner Cloud SSHKey object
Hetzner Cloud Server object
Hetzner Cloud ServerType object
Hetzner Cloud Volume object
Hetzner Cloud DNS Zone object
HTTP request object for Hetzner API
HTTP response object for Hetzner API
Synchronous HTTP backend using LWP::UserAgent
Perl client for Hetzner Robot API (Dedicated Servers)
Hetzner Robot Boot Configuration API
Hetzner Robot Failover IP API
Hetzner Robot IPs API
Hetzner Robot SSH Keys API
Hetzner Robot Reverse DNS API
Hetzner Robot Server Reset API
Hetzner Robot Servers API
Hetzner Robot Traffic API
Hetzner Robot CLI
Robot boot configuration commands
Linux installation boot configuration
Rescue system boot configuration
VNC installation boot configuration
Windows installation boot configuration
Robot failover IP commands
Robot SSH key commands
Robot reverse DNS commands
Reset a dedicated server
Robot server commands
Describe a dedicated server
List dedicated servers
Query traffic statistics
Send Wake-on-LAN to a server
Hetzner Robot failover IP entity
Hetzner Robot IP entity
Hetzner Robot SSH Key entity
Hetzner Robot reverse DNS entry entity
Hetzner Robot Server entity
HTTP client role for Hetzner API clients
Entity role exposing a creation action
Controller role wrapping raw hashes as Action objects
Interface role for pluggable HTTP backends
Helper role for JSON boolean values in the Hetzner API
Controller helper for collecting paginated API lists
Perl client for Hetzner Storage Box API
Hetzner Storage Box Actions API
Hetzner Storage Box Snapshots API
Hetzner Storage Box Types API
Hetzner Storage Boxes API
Hetzner Storage Box Subaccounts API
Hetzner Storage Box Snapshot object
Hetzner Storage Box object
Hetzner Storage Box Type object
Hetzner Storage Box Subaccount object