Laravel Hetzner Cloud

PHP MIT

Production-ready Laravel SDK for the Hetzner Cloud API with support for servers, volumes, networks, firewalls, load balancers, SSH keys, floating IPs, and more.

Stars
20
Forks
0
Downloads
2,293
Open Issues
0

Hetzner Cloud API Endpoints to SDK Methods Mapping

This document maps every endpoint in the Hetzner Cloud API to its corresponding SDK manager method.

Actions

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /actions | Hetzner::actions()->all() | | GET | /actions/{id} | Hetzner::actions()->find($id) |

Servers

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /servers | Hetzner::servers()->all() | | POST | /servers | Hetzner::servers()->create($data) | | GET | /servers/{id} | Hetzner::servers()->find($id) | | PUT | /servers/{id} | Hetzner::servers()->update($id, $data) | | DELETE | /servers/{id} | Hetzner::servers()->delete($id) | | GET | /servers/{id}/metrics | Hetzner::servers()->metrics($id, $params) | | GET | /servers/{id}/actions | Hetzner::servers()->actions($id) | | POST | /servers/{id}/actions/poweron | Hetzner::servers()->powerOn($id) | | POST | /servers/{id}/actions/poweroff | Hetzner::servers()->powerOff($id) | | POST | /servers/{id}/actions/shutdown | Hetzner::servers()->shutdown($id) | | POST | /servers/{id}/actions/reboot | Hetzner::servers()->reboot($id) | | POST | /servers/{id}/actions/reset | Hetzner::servers()->reset($id) | | POST | /servers/{id}/actions/rebuild | Hetzner::servers()->rebuild($id, $image) | | POST | /servers/{id}/actions/enable_rescue | Hetzner::servers()->enableRescue($id, $params) | | POST | /servers/{id}/actions/disable_rescue | Hetzner::servers()->disableRescue($id) | | POST | /servers/{id}/actions/enable_backup | Hetzner::servers()->enableBackup($id) | | POST | /servers/{id}/actions/disable_backup | Hetzner::servers()->disableBackup($id) | | POST | /servers/{id}/actions/attach_iso | Hetzner::servers()->attachIso($id, $iso) | | POST | /servers/{id}/actions/detach_iso | Hetzner::servers()->detachIso($id) | | POST | /servers/{id}/actions/attach_to_network | Hetzner::servers()->attachToNetwork($id, $network) | | POST | /servers/{id}/actions/detach_from_network | Hetzner::servers()->detachFromNetwork($id, $network) | | POST | /servers/{id}/actions/add_to_firewall | Hetzner::servers()->addToFirewall($id, $firewall) | | POST | /servers/{id}/actions/remove_from_firewall | Hetzner::servers()->removeFromFirewall($id, $firewall) |

Volumes

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /volumes | Hetzner::volumes()->all() | | POST | /volumes | Hetzner::volumes()->create($data) | | GET | /volumes/{id} | Hetzner::volumes()->find($id) | | PUT | /volumes/{id} | Hetzner::volumes()->update($id, $data) | | DELETE | /volumes/{id} | Hetzner::volumes()->delete($id) | | POST | /volumes/{id}/actions/attach | Hetzner::volumes()->attach($volume, $server) | | POST | /volumes/{id}/actions/detach | Hetzner::volumes()->detach($volume) | | POST | /volumes/{id}/actions/resize | Hetzner::volumes()->resize($volume, $size) | | POST | /volumes/{id}/actions/change_dns_ptr | Hetzner::volumes()->changeDnsPtr($volume, $params) |

Networks

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /networks | Hetzner::networks()->all() | | POST | /networks | Hetzner::networks()->create($data) | | GET | /networks/{id} | Hetzner::networks()->find($id) | | PUT | /networks/{id} | Hetzner::networks()->update($id, $data) | | DELETE | /networks/{id} | Hetzner::networks()->delete($id) | | POST | /networks/{id}/actions/add_subnet | Hetzner::networks()->addSubnet($id, $subnet) | | POST | /networks/{id}/actions/delete_subnet | Hetzner::networks()->deleteSubnet($id, $subnet) | | POST | /networks/{id}/actions/add_route | Hetzner::networks()->addRoute($id, $route) | | POST | /networks/{id}/actions/delete_route | Hetzner::networks()->deleteRoute($id, $route) | | POST | /networks/{id}/actions/change_ip_range | Hetzner::networks()->changeIpRange($id, $ipRange) |

Firewalls

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /firewalls | Hetzner::firewalls()->all() | | POST | /firewalls | Hetzner::firewalls()->create($data) | | GET | /firewalls/{id} | Hetzner::firewalls()->find($id) | | PUT | /firewalls/{id} | Hetzner::firewalls()->update($id, $data) | | DELETE | /firewalls/{id} | Hetzner::firewalls()->delete($id) | | POST | /firewalls/{id}/actions/apply_to_resources | Hetzner::firewalls()->apply($firewall, $server) | | POST | /firewalls/{id}/actions/remove_from_resources | Hetzner::firewalls()->remove($firewall, $server) | | POST | /firewalls/{id}/actions/set_rules | Hetzner::firewalls()->setRules($firewall, $rules) |

Floating IPs

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /floating_ips | Hetzner::floatingIps()->all() | | POST | /floating_ips | Hetzner::floatingIps()->create($data) | | GET | /floating_ips/{id} | Hetzner::floatingIps()->find($id) | | PUT | /floating_ips/{id} | Hetzner::floatingIps()->update($id, $data) | | DELETE | /floating_ips/{id} | Hetzner::floatingIps()->delete($id) | | POST | /floating_ips/{id}/actions/assign | Hetzner::floatingIps()->assign($ip, $server) | | POST | /floating_ips/{id}/actions/unassign | Hetzner::floatingIps()->unassign($ip) | | POST | /floating_ips/{id}/actions/change_dns_ptr | Hetzner::floatingIps()->changeDnsPtr($ip, $params) |

Primary IPs

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /primary_ips | Hetzner::primaryIps()->all() | | POST | /primary_ips | Hetzner::primaryIps()->create($data) | | GET | /primary_ips/{id} | Hetzner::primaryIps()->find($id) | | PUT | /primary_ips/{id} | Hetzner::primaryIps()->update($id, $data) | | DELETE | /primary_ips/{id} | Hetzner::primaryIps()->delete($id) | | POST | /primary_ips/{id}/actions/assign | Hetzner::primaryIps()->assign($ip, $server) | | POST | /primary_ips/{id}/actions/unassign | Hetzner::primaryIps()->unassign($ip) | | POST | /primary_ips/{id}/actions/change_dns_ptr | Hetzner::primaryIps()->changeDnsPtr($ip, $params) |

Load Balancers

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /load_balancers | Hetzner::loadBalancers()->all() | | POST | /load_balancers | Hetzner::loadBalancers()->create($data) | | GET | /load_balancers/{id} | Hetzner::loadBalancers()->find($id) | | PUT | /load_balancers/{id} | Hetzner::loadBalancers()->update($id, $data) | | DELETE | /load_balancers/{id} | Hetzner::loadBalancers()->delete($id) | | POST | /load_balancers/{id}/actions/add_target | Hetzner::loadBalancers()->addTarget($id, $target) | | POST | /load_balancers/{id}/actions/remove_target | Hetzner::loadBalancers()->removeTarget($id, $target) | | POST | /load_balancers/{id}/actions/add_service | Hetzner::loadBalancers()->addService($id, $service) | | POST | /load_balancers/{id}/actions/update_service | Hetzner::loadBalancers()->updateService($id, $listenPort, $service) | | POST | /load_balancers/{id}/actions/delete_service | Hetzner::loadBalancers()->deleteService($id, $listenPort) | | POST | /load_balancers/{id}/actions/change_algorithm | Hetzner::loadBalancers()->changeAlgorithm($id, $algorithm) | | POST | /load_balancers/{id}/actions/change_type | Hetzner::loadBalancers()->changeType($id, $type) | | POST | /load_balancers/{id}/actions/change_ip_support | Hetzner::loadBalancers()->changeIpSupport($id, $ipSupport) | | POST | /load_balancers/{id}/actions/enable_public_interface | Hetzner::loadBalancers()->enablePublicInterface($id) | | POST | /load_balancers/{id}/actions/disable_public_interface | Hetzner::loadBalancers()->disablePublicInterface($id) | | POST | /load_balancers/{id}/actions/attach_to_network | Hetzner::loadBalancers()->attachToNetwork($id, $network) | | POST | /load_balancers/{id}/actions/detach_from_network | Hetzner::loadBalancers()->detachFromNetwork($id, $network) | | POST | /load_balancers/{id}/actions/change_dns_ptr | Hetzner::loadBalancers()->changeDnsPtr($id, $params) | | GET | /load_balancers/{id}/metrics | Hetzner::loadBalancers()->metrics($id) |

SSH Keys

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /ssh_keys | Hetzner::sshKeys()->all() | | POST | /ssh_keys | Hetzner::sshKeys()->create($data) | | GET | /ssh_keys/{id} | Hetzner::sshKeys()->find($id) | | PUT | /ssh_keys/{id} | Hetzner::sshKeys()->update($id, $data) | | DELETE | /ssh_keys/{id} | Hetzner::sshKeys()->delete($id) |

Images

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /images | Hetzner::images()->all() | | GET | /images/{id} | Hetzner::images()->find($id) | | PUT | /images/{id} | Hetzner::images()->update($id, $data) | | DELETE | /images/{id} | Hetzner::images()->delete($id) | | POST | /images/{id}/actions/change_protection | Hetzner::images()->changeProtection($id, $params) |

Certificates

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /certificates | Hetzner::certificates()->all() | | POST | /certificates | Hetzner::certificates()->create($data) | | GET | /certificates/{id} | Hetzner::certificates()->find($id) | | PUT | /certificates/{id} | Hetzner::certificates()->update($id, $data) | | DELETE | /certificates/{id} | Hetzner::certificates()->delete($id) | | POST | /certificates/{id}/actions/retry | Hetzner::certificates()->retry($id) |

Placement Groups

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /placement_groups | Hetzner::placementGroups()->all() | | POST | /placement_groups | Hetzner::placementGroups()->create($data) | | GET | /placement_groups/{id} | Hetzner::placementGroups()->find($id) | | PUT | /placement_groups/{id} | Hetzner::placementGroups()->update($id, $data) | | DELETE | /placement_groups/{id} | Hetzner::placementGroups()->delete($id) |

Locations

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /locations | Hetzner::locations()->all() | | GET | /locations/{id} | Hetzner::locations()->find($id) |

Datacenters

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /datacenters | Hetzner::datacenters()->all() | | GET | /datacenters/{id} | Hetzner::datacenters()->find($id) |

ISOs

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /isos | Hetzner::isos()->all() | | GET | /isos/{id} | Hetzner::isos()->find($id) |

Pricing

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /pricing | Hetzner::pricing()->all() |

Server Types

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /server_types | Hetzner::serverTypes()->all() | | GET | /server_types/{id} | Hetzner::serverTypes()->find($id) |

Load Balancer Types

| HTTP Method | API Endpoint | SDK Method | | ----------- | ------------ | ---------- | | GET | /load_balancer_types | Hetzner::loadBalancerTypes()->all() | | GET | /load_balancer_types/{id} | Hetzner::loadBalancerTypes()->find($id) |