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
19
Forks
0
Downloads
2,275
Open Issues
0
Files main

Repository Files

Loading file structure...
ENDPOINTS.md
# 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)` |