Add a route to a Network
Adds a route entry to a Network. Note: if the Network object changes during the request, the response will be a “conflict” error.
Adds a route entry to a Network. Note: if the Network object changes during the request, the response will be a “conflict” error.
Adds a Server to a Placement Group. Server must be powered off for this command to succeed. #### Call specific error codes | Code | Description | |-------------------------------|----------------------------------------------------------------------| | `server_not_stopped` | The action requires a stopped server |
Adds a new subnet object to the Network. If you do not specify an `ip_range` for the subnet we will automatically pick the first available /24 range for you if possible. Note: if the parent Network object changes during the request, the response will be a “conflict” error.
Adds a service to a Load Balancer. #### Call specific error codes | Code | Description | |----------------------------|---------------------------------------------------------| | `source_port_already_used` | The source port you are trying to add is already in use |
Adds a target to a Load Balancer. #### Call specific error codes | Code | Description | |-----------------------------------------|-------------------------------------------------------------------------------------------------------| | `cloud_resource_ip_not_allowed` | The IP you are trying to add as a target belongs to a Hetzner Cloud resource | | `ip_not_owned` | The IP you are trying to add as a target is not owned by the Project owner | | `load_balancer_not_attached_to_network` | The Load Balancer is not attached to a network | | `robot_unavailable` | Robot was not available. The caller may retry the operation after a short delay. | | `server_not_attached_to_network` | The server you are trying to add as a target is not attached to the same network as the Load Balancer | | `target_already_defined` | The Load Balancer target you are trying to define is already defined |
Applies one Firewall to multiple resources. Currently servers (public network interface) and label selectors are supported. #### Call specific error codes | Code | Description | |-------------------------------|---------------------------------------------------------------| | `firewall_already_applied` | Firewall was already applied on resource | | `incompatible_network_type` | The Network type is incompatible for the given resource | | `firewall_resource_not_found` | The resource the Firewall should be attached to was not found |
Assigns a Floating IP to a Server.
Assigns a Primary IP to a Server. A Server can only have one Primary IP of type `ipv4` and one of type `ipv6` assigned. If you need more IPs use Floating IPs. The Server must be powered off (status `off`) in order for this operation to succeed. #### Call specific error codes | Code | Description | |------------------------------ |-------------------------------------------------------------- | | `server_not_stopped` | The server is running, but needs to be powered off | | `primary_ip_already_assigned` | Primary ip is already assigned to a different server | | `server_has_ipv4` | The server already has an ipv4 address | | `server_has_ipv6` | The server already has an ipv6 address |
Attach a Load Balancer to a Network. **Call specific error codes** | Code | Description | |----------------------------------|-----------------------------------------------------------------------| | `load_balancer_already_attached` | The Load Balancer is already attached to a network | | `ip_not_available` | The provided Network IP is not available | | `no_subnet_available` | No Subnet or IP is available for the Load Balancer within the network |
Attaches a Server to a network. This will complement the fixed public Server interface by adding an additional ethernet interface to the Server which is connected to the specified network. The Server will get an IP auto assigned from a subnet of type `server` in the same `network_zone`. Using the `alias_ips` attribute you can also define one or more additional IPs to the Servers. Please note that you will have to configure these IPs by hand on your Server since only the primary IP will be given out by DHCP. **Call specific error codes** | Code | Description | |----------------------------------|-----------------------------------------------------------------------| | `server_already_attached` | The server is already attached to the network | | `ip_not_available` | The provided Network IP is not available | | `no_subnet_available` | No Subnet or IP is available for the Server within the network | | `networks_overlap` | The network IP range overlaps with one of the server networks |
Attaches an ISO to a Server. The Server will immediately see it as a new disk. An already attached ISO will automatically be detached before the new ISO is attached. Servers with attached ISOs have a modified boot order: They will try to boot from the ISO first before falling back to hard disk.
Change the algorithm that determines to which target new requests are sent.
Changes the alias IPs of an already attached Network. Note that the existing aliases for the specified Network will be replaced with these provided in the request body. So if you want to add an alias IP, you have to provide the existing ones from the Network plus the new alias IP in the request body.
Changes the protection configuration of the Floating IP.
Changes the protection configuration of the Image. Can only be used on snapshots.
Changes the IP range of a Network. IP ranges can only be extended and never shrunk. You can only add IPs at the end of an existing IP range. This means that the IP part of your existing range must stay the same and you can only change its netmask. For example if you have a range `10.0.0.0/16` you want to extend then your new range must also start with the IP `10.0.0.0`. Your CIDR netmask `/16` may change to a number that is smaller than `16` thereby increasing the IP range. So valid entries would be `10.0.0.0/15`, `10.0.0.0/14`, `10.0.0.0/13` and so on. After changing the IP range you will have to adjust the routes on your connected Servers by either rebooting them or manually changing the routes to your private Network interface. Note: if the Network object changes during the request, the response will be a “conflict” error.
Changes the protection configuration of a Load Balancer.
Changes the protection configuration of a Network. Note: if the Network object changes during the request, the response will be a “conflict” error.
Changes the protection configuration of a Primary IP. A Primary IP can only be delete protected if its `auto_delete` property is set to `false`.
Changes the hostname that will appear when getting the hostname belonging to this Floating IP.
Changes the hostname that will appear when getting the hostname belonging to this Primary IP.
Changes the hostname that will appear when getting the hostname belonging to the public IPs (IPv4 and IPv6) of this Load Balancer. Floating IPs assigned to the Server are not affected by this.
Changes the hostname that will appear when getting the hostname belonging to the primary IPs (IPv4 and IPv6) of this Server. Floating IPs assigned to the Server are not affected by this.
Changes the protection configuration of the Server.
Changes the type (Max Services, Max Targets and Max Connections) of a Load Balancer. **Call specific error codes** | Code | Description | |------------------------------|-----------------------------------------------------------------| | `invalid_load_balancer_type` | The Load Balancer type does not fit for the given Load Balancer |
Changes the type (Cores, RAM and disk sizes) of a Server. Server must be powered off for this command to succeed. This copies the content of its disk, and starts it again. You can only migrate to Server types with the same `storage_type` and equal or bigger disks. Shrinking disks is not possible as it might destroy data. If the disk gets upgraded, the Server type can not be downgraded any more. If you plan to downgrade the Server type, set `upgrade_disk` to `false`. #### Call specific error codes | Code | Description | |-------------------------------|----------------------------------------------------------------------| | `invalid_server_type` | The server type does not fit for the given server or is deprecated | | `server_not_stopped` | The action requires a stopped server |
Creates a new Certificate. The default type **uploaded** allows for uploading your existing `certificate` and `private_key` in PEM format. You have to monitor its expiration date and handle renewal yourself. In contrast, type **managed** requests a new Certificate from *Let's Encrypt* for the specified `domain_names`. Only domains managed by *Hetzner DNS* are supported. We handle renewal and timely alert the project owner via email if problems occur. For type `managed` Certificates the `action` key of the response contains the Action that allows for tracking the issuance process. For type `uploaded` Certificates the `action` is always null.
Creates a new Firewall. #### Call specific error codes | Code | Description | |------------------------------ |-------------------------------------------------------------- | | `server_already_added` | Server added more than one time to resource | | `incompatible_network_type` | The Network type is incompatible for the given resource | | `firewall_resource_not_found` | The resource the Firewall should be attached to was not found |
Creates a new Floating IP assigned to a Server. If you want to create a Floating IP that is not bound to a Server, you need to provide the `home_location` key instead of `server`. This can be either the ID or the name of the Location this IP shall be created in. Note that a Floating IP can be assigned to a Server in any Location later on. For optimal routing it is advised to use the Floating IP in the same Location it was created in.
Creates a Load Balancer. #### Call specific error codes | Code | Description | |-----------------------------------------|-------------------------------------------------------------------------------------------------------| | `cloud_resource_ip_not_allowed` | The IP you are trying to add as a target belongs to a Hetzner Cloud resource | | `ip_not_owned` | The IP is not owned by the owner of the project of the Load Balancer | | `load_balancer_not_attached_to_network` | The Load Balancer is not attached to a network | | `robot_unavailable` | Robot was not available. The caller may retry the operation after a short delay. | | `server_not_attached_to_network` | The server you are trying to add as a target is not attached to the same network as the Load Balancer | | `source_port_already_used` | The source port you are trying to add is already in use | | `target_already_defined` | The Load Balancer target you are trying to define is already defined |
Creates a network with the specified `ip_range`. You may specify one or more `subnets`. You can also add more Subnets later by using the [add subnet action](https://docs.hetzner.cloud/#network-actions-add-a-subnet-to-a-network). If you do not specify an `ip_range` in the subnet we will automatically pick the first available /24 range for you. You may specify one or more routes in `routes`. You can also add more routes later by using the [add route action](https://docs.hetzner.cloud/#network-actions-add-a-route-to-a-network).
Creates a new PlacementGroup.
Creates a new Primary IP, optionally assigned to a Server. If you want to create a Primary IP that is not assigned to a Server, you need to provide the `datacenter` key instead of `assignee_id`. This can be either the ID or the name of the Datacenter this Primary IP shall be created in. Note that a Primary IP can only be assigned to a Server in the same Datacenter later on. #### Call specific error codes | Code | Description | |------------------------------ |-------------------------------------------------------------- | | `server_not_stopped` | The specified server is running, but needs to be powered off | | `server_has_ipv4` | The server already has an ipv4 address | | `server_has_ipv6` | The server already has an ipv6 address |
Creates a new Server. Returns preliminary information about the Server as well as an Action that covers progress of creation.
Creates an Image (snapshot) from a Server by copying the contents of its disks. This creates a snapshot of the current state of the disk and copies it into an Image. If the Server is currently running you must make sure that its disk content is consistent. Otherwise, the created Image may not be readable. To make sure disk content is consistent, we recommend to shut down the Server prior to creating an Image. You can either create a `backup` Image that is bound to the Server and therefore will be deleted when the Server is deleted, or you can create an `snapshot` Image which is completely independent of the Server it was created from and will survive Server deletion. Backup Images are only available when the backup option is enabled for the Server. Snapshot Images are billed on a per GB basis.
Detaches a Load Balancer from a network.
Detaches a Server from a network. The interface for this network will vanish.
Detaches an ISO from a Server. In case no ISO Image is attached to the Server, the status of the returned Action is immediately set to `success`
Disables the automatic backup option and deletes all existing Backups for a Server. No more additional charges for backups will be made. Caution: This immediately removes all existing backups for the Server!
Disables the Hetzner Rescue System for a Server. This makes a Server start from its disks on next reboot. Rescue Mode is automatically disabled when you first boot into it or if you do not use it for 60 minutes. Disabling rescue mode will not reboot your Server — you will have to do this yourself.
Disable the public interface of a Load Balancer. The Load Balancer will be not accessible from the internet via its public IPs. #### Call specific error codes | Code | Description | |-------------------------------------------|--------------------------------------------------------------------------------| | `load_balancer_not_attached_to_network` | The Load Balancer is not attached to a network | | `targets_without_use_private_ip` | The Load Balancer has targets that use the public IP instead of the private IP |
Enable the public interface of a Load Balancer. The Load Balancer will be accessible from the internet via its public IPs.
Gets a specific Certificate object.
Returns a specific Datacenter object.
Gets a specific Firewall object.
Returns a specific Floating IP object.
Gets a specific Load Balancer object.
Gets a specific Load Balancer type object.
Returns a specific Location object.
Gets a specific network object.
Gets a specific PlacementGroup object.
Returns a specific Primary IP object.
Returns a specific Server object. The Server must exist inside the Project
Gets a specific Server type object.
Returns a specific SSH key object.
Gets a specific Volume object.
Returns all Action objects. You can `sort` the results by using the sort URI parameter, and filter them with the `status` parameter.
Returns all Action objects for a Certificate. You can sort the results by using the `sort` URI parameter, and filter them with the `status` parameter. Only type `managed` Certificates can have Actions. For type `uploaded` Certificates the `actions` key will always contain an empty array.
Returns all Action objects for a Firewall. You can sort the results by using the `sort` URI parameter, and filter them with the `status` parameter.
Returns all Action objects for a Floating IP. You can sort the results by using the `sort` URI parameter, and filter them with the `status` parameter.
Returns all Action objects for a Load Balancer. You can sort the results by using the `sort` URI parameter, and filter them with the `status` parameter.
Returns all Action objects for a Network. You can sort the results by using the `sort` URI parameter, and filter them with the `status` parameter.
Returns all Action objects for a Server. You can `sort` the results by using the sort URI parameter, and filter them with the `status` parameter.
Returns all Action objects for a Volume. You can `sort` the results by using the sort URI parameter, and filter them with the `status` parameter.
Returns all Action objects for an Image. You can sort the results by using the `sort` URI parameter, and filter them with the `status` parameter.
Returns all Certificate objects.
Returns all Datacenter objects.
Returns all Firewall objects.
Returns all Floating IP objects.
Returns all Image objects. You can select specific Image types only and sort the results by using URI parameters.
Returns all available ISO objects.
Gets all Load Balancer type objects.
Gets all existing Load Balancers that you have available.
Returns all Location objects.
Gets all existing networks that you have available.
Returns all PlacementGroup objects.
Returns prices for all resources available on the platform. VAT and currency of the Project owner are used for calculations. Both net and gross prices are included in the response.
Returns all Primary IP objects.
Gets all Server type objects.
Returns all existing Server objects
Returns all SSH key objects.
Gets all existing Volumes that you have available.
Returns a specific Action object.
Returns a specific Action for a Certificate. Only type `managed` Certificates have Actions.
Returns a specific Action for a Firewall.
Returns a specific Action object for a Floating IP.
Returns a specific Action for a Load Balancer.
Returns a specific Action for a Network.
Returns a specific Action object for a Server.
Returns a specific Action for a Volume.
Returns a specific Action for an Image.
Returns a specific Image object.
Returns a specific ISO object.
You must specify the type of metric to get: `open_connections`, `connections_per_second`, `requests_per_second` or `bandwidth`. You can also specify more than one type by comma separation, e.g. `requests_per_second,bandwidth`. Depending on the type you will get different time series data: |Type | Timeseries | Unit | Description | |---- |------------|------|-------------| | open_connections | open_connections | number | Open connections | | connections_per_second | connections_per_second | connections/s | Connections per second | | requests_per_second | requests_per_second | requests/s | Requests per second | | bandwidth | bandwidth.in | bytes/s | Ingress bandwidth | || bandwidth.out | bytes/s | Egress bandwidth | Metrics are available for the last 30 days only. If you do not provide the step argument we will automatically adjust it so that 200 samples are returned. We limit the number of samples to a maximum of 500 and will adjust the step parameter accordingly.
Get Metrics for specified Server. You must specify the type of metric to get: cpu, disk or network. You can also specify more than one type by comma separation, e.g. cpu,disk. Depending on the type you will get different time series data | Type | Timeseries | Unit | Description | |---------|-------------------------|-----------|------------------------------------------------------| | cpu | cpu | percent | Percent CPU usage | | disk | disk.0.iops.read | iop/s | Number of read IO operations per second | | | disk.0.iops.write | iop/s | Number of write IO operations per second | | | disk.0.bandwidth.read | bytes/s | Bytes read per second | | | disk.0.bandwidth.write | bytes/s | Bytes written per second | | network | network.0.pps.in | packets/s | Public Network interface packets per second received | | | network.0.pps.out | packets/s | Public Network interface packets per second sent | | | network.0.bandwidth.in | bytes/s | Public Network interface bytes/s received | | | network.0.bandwidth.out | bytes/s | Public Network interface bytes/s sent | Metrics are available for the last 30 days only. If you do not provide the step argument we will automatically adjust it so that a maximum of 200 samples are returned. We limit the number of samples returned to a maximum of 500 and will adjust the step parameter accordingly.
Retry a failed Certificate issuance or renewal. Only applicable if the type of the Certificate is `managed` and the issuance or renewal status is `failed`. #### Call specific error codes | Code | Description | |---------------------------------------------------------|---------------------------------------------------------------------------| | `caa_record_does_not_allow_ca` | CAA record does not allow certificate authority | | `ca_dns_validation_failed` | Certificate Authority: DNS validation failed | | `ca_too_many_authorizations_failed_recently` | Certificate Authority: Too many authorizations failed recently | | `ca_too_many_certificates_issued_for_registered_domain` | Certificate Authority: Too many certificates issued for registered domain | | `ca_too_many_duplicate_certificates` | Certificate Authority: Too many duplicate certificates | | `could_not_verify_domain_delegated_to_zone` | Could not verify domain delegated to zone | | `dns_zone_not_found` | DNS zone not found | | `dns_zone_is_secondary_zone` | DNS zone is a secondary zone |
Sets the rules of a Firewall. All existing rules will be overwritten. Pass an empty `rules` array to remove all rules. The maximum amount of rules that can be defined is 50. #### Call specific error codes | Code | Description | |-------------------------------|---------------------------------------------------------------| | `firewall_resource_not_found` | The resource the Firewall should be attached to was not found |
Unassigns a Floating IP, resulting in it being unreachable. You may assign it to a Server again at a later time.
Unassigns a Primary IP from a Server. The Server must be powered off (status `off`) in order for this operation to succeed. Note that only Servers that have at least one network interface (public or private) attached can be powered on. #### Call specific error codes | Code | Description | |---------------------------------- |-------------------------------------------------------------- | | `server_not_stopped` | The server is running, but needs to be powered off | | `server_is_load_balancer_target` | The server ipv4 address is a loadbalancer target |
Updates a Load Balancer Service. #### Call specific error codes | Code | Description | |----------------------------|---------------------------------------------------------| | `source_port_already_used` | The source port you are trying to add is already in use |
Tell us which provider you need, and we will ship it in the registry.
Point swirls add at an OpenAPI or GraphQL spec. Typed actions for any API you hold credentials for, today.