Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.hetzner.cloud/v1
/certificates/{id}/actions/retry
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Certificate. |
POST /certificates/{id}/actions/retry
/certificates
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.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CertificatesCreateNewCertificateRequest"
},
"examples": {
"managed": {
"value": {
"name": "my website cert",
"type": "managed",
"domain_names": [
"example.com",
"webmail.example.com",
"www.example.com"
]
},
"summary": "Creating a type `managed` Certificate"
},
"uploaded": {
"value": {
"name": "my website cert",
"type": "uploaded",
"certificate": "-----BEGIN CERTIFICATE-----\n...",
"private_key": "-----BEGIN PRIVATE KEY-----\n..."
},
"summary": "Creating a type `uploaded` Certificate"
}
}
}
}
}
POST /certificates
/firewalls/{id}/actions/apply_to_resources
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Firewall. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FirewallActionsApplyToResourcesRequest"
},
"example": {
"apply_to": [
{
"type": "server",
"server": {
"id": 42
}
}
]
}
}
}
}
POST /firewalls/{id}/actions/apply_to_resources
/firewalls/{id}/actions/remove_from_resources
Removes one Firewall from multiple resources. Currently only Servers (and their public network interfaces) are supported. #### Call specific error codes | Code | Description | |---------------------------------------|------------------------------------------------------------------------| | `firewall_already_removed` | Firewall was already removed from the resource | | `firewall_resource_not_found` | The resource the Firewall should be attached to was not found | | `firewall_managed_by_label_selector` | Firewall was applied via label selector and cannot be removed manually |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Firewall. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FirewallActionsRemoveFromResourcesRequest"
},
"example": {
"remove_from": [
{
"type": "server",
"server": {
"id": 42
}
}
]
}
}
}
}
POST /firewalls/{id}/actions/remove_from_resources
/firewalls/{id}/actions/set_rules
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Firewall. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FirewallActionsSetRulesRequest"
},
"examples": {
"rules": {
"value": {
"rules": [
{
"port": "80",
"protocol": "tcp",
"direction": "in",
"source_ips": [
"28.239.13.1/32",
"28.239.14.0/24",
"ff21:1eac:9a3b:ee58:5ca:990c:8bc9:c03b/128"
],
"description": "Allow port 80"
}
]
}
}
}
}
}
}
POST /firewalls/{id}/actions/set_rules
/firewalls
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 |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FirewallsCreateFirewallRequest"
},
"examples": {
"request": {
"value": {
"name": "Corporate Intranet Protection",
"rules": [
{
"port": "80",
"protocol": "tcp",
"direction": "in",
"source_ips": [
"28.239.13.1/32",
"28.239.14.0/24",
"ff21:1eac:9a3b:ee58:5ca:990c:8bc9:c03b/128"
],
"description": "Allow port 80"
}
],
"labels": {
"env": "dev"
},
"apply_to": [
{
"type": "server",
"server": {
"id": 42
}
}
]
}
}
}
}
}
}
POST /firewalls
/floating_ips/{id}/actions/assign
Assigns a Floating IP to a Server.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Floating IP. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FloatingIpActionsAssignToServerRequest"
}
}
}
}
POST /floating_ips/{id}/actions/assign
/floating_ips/{id}/actions/change_dns_ptr
Changes the hostname that will appear when getting the hostname belonging to this Floating IP.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Floating IP. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FloatingIpActionsChangeDnsPtrRequest"
}
}
},
"description": "Select the IP address for which to change the DNS entry by passing `ip`. For a Floating IP of type `ipv4` this must exactly match the IP address of the Floating IP. For a Floating IP of type `ipv6` this must be a single IP within the IPv6 /64 range that belongs to this Floating IP. You can add up to 100 IPv6 reverse DNS entries.\n\nThe target hostname is set by passing `dns_ptr`.\n"
}
POST /floating_ips/{id}/actions/change_dns_ptr
/floating_ips/{id}/actions/change_protection
Changes the protection configuration of the Floating IP.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Floating IP. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FloatingIpActionsChangeProtectionRequest"
}
}
}
}
POST /floating_ips/{id}/actions/change_protection
/floating_ips/{id}/actions/unassign
Unassigns a Floating IP, resulting in it being unreachable. You may assign it to a Server again at a later time.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Floating IP. |
POST /floating_ips/{id}/actions/unassign
/floating_ips
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.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FloatingIPsCreateNewIpRequest"
}
}
},
"description": "The `type` argument is required while `home_location` and `server` are mutually exclusive."
}
POST /floating_ips
/images/{id}/actions/change_protection
Changes the protection configuration of the Image. Can only be used on snapshots.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Image. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImageActionsChangeProtectionRequest"
}
}
}
}
POST /images/{id}/actions/change_protection
/load_balancers/{id}/actions/add_service
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsAddServiceRequest"
}
}
}
}
POST /load_balancers/{id}/actions/add_service
/load_balancers/{id}/actions/add_target
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsAddTargetRequest"
}
}
}
}
POST /load_balancers/{id}/actions/add_target
/load_balancers/{id}/actions/attach_to_network
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsAttachToNetworkRequest"
}
}
}
}
POST /load_balancers/{id}/actions/attach_to_network
/load_balancers/{id}/actions/change_algorithm
Change the algorithm that determines to which target new requests are sent.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsChangeAlgorithmRequest"
}
}
}
}
POST /load_balancers/{id}/actions/change_algorithm
/load_balancers/{id}/actions/change_dns_ptr
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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsChangeDnsPtrRequest"
}
}
},
"description": "Select the IP address for which to change the DNS entry by passing `ip`. It can be either IPv4 or IPv6. The target hostname is set by passing `dns_ptr`."
}
POST /load_balancers/{id}/actions/change_dns_ptr
/load_balancers/{id}/actions/change_protection
Changes the protection configuration of a Load Balancer.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsChangeProtectionRequest"
}
}
}
}
POST /load_balancers/{id}/actions/change_protection
/load_balancers/{id}/actions/change_type
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsChangeTypeRequest"
}
}
}
}
POST /load_balancers/{id}/actions/change_type
/load_balancers/{id}/actions/delete_service
Delete a service of a Load Balancer.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsDeleteServiceRequest"
}
}
}
}
POST /load_balancers/{id}/actions/delete_service
/load_balancers/{id}/actions/detach_from_network
Detaches a Load Balancer from a network.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsDetachFromNetworkRequest"
}
}
}
}
POST /load_balancers/{id}/actions/detach_from_network
/load_balancers/{id}/actions/disable_public_interface
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
POST /load_balancers/{id}/actions/disable_public_interface
/load_balancers/{id}/actions/enable_public_interface
Enable the public interface of a Load Balancer. The Load Balancer will be accessible from the internet via its public IPs.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
POST /load_balancers/{id}/actions/enable_public_interface
/load_balancers/{id}/actions/remove_target
Removes a target from a Load Balancer.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsRemoveTargetRequest"
}
}
}
}
POST /load_balancers/{id}/actions/remove_target
/load_balancers/{id}/actions/update_service
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Load Balancer. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancerActionsUpdateServiceRequest"
}
}
}
}
POST /load_balancers/{id}/actions/update_service
/load_balancers
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 |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoadBalancersCreateLoadBalancerRequest"
}
}
}
}
POST /load_balancers
/networks/{id}/actions/add_route
Adds a route entry to a Network. Note: if the Network object changes during the request, the response will be a “conflict” error.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Network. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NetworkActionsAddRouteRequest"
}
}
}
}
POST /networks/{id}/actions/add_route
/networks/{id}/actions/add_subnet
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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Network. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NetworkActionsAddSubnetRequest"
}
}
}
}
POST /networks/{id}/actions/add_subnet
/networks/{id}/actions/change_ip_range
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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Network. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NetworkActionsChangeIpRangeRequest"
}
}
}
}
POST /networks/{id}/actions/change_ip_range
/networks/{id}/actions/change_protection
Changes the protection configuration of a Network. Note: if the Network object changes during the request, the response will be a “conflict” error.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Network. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NetworkActionsChangeProtectionRequest"
}
}
}
}
POST /networks/{id}/actions/change_protection
/networks/{id}/actions/delete_route
Delete a route entry from a Network. Note: if the Network object changes during the request, the response will be a “conflict” error.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Network. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NetworkActionsDeleteRouteRequest"
}
}
}
}
POST /networks/{id}/actions/delete_route
/networks/{id}/actions/delete_subnet
Deletes a single subnet entry from a Network. You cannot delete subnets which still have Servers attached. If you have Servers attached you first need to detach all Servers that use IPs from this subnet before you can delete the subnet. Note: if the Network object changes during the request, the response will be a “conflict” error.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Network. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NetworkActionsDeleteSubnetRequest"
}
}
}
}
POST /networks/{id}/actions/delete_subnet
/networks
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).
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NetworksCreateNetworkRequest"
}
}
}
}
POST /networks
/placement_groups
Creates a new PlacementGroup.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlacementGroupsCreateNewGroupRequest"
},
"examples": {
"spread": {
"value": {
"name": "my Placement Group",
"type": "spread"
},
"summary": "Creating a type `spread` Placement Group"
}
}
}
}
}
POST /placement_groups
/primary_ips/{id}/actions/assign
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Primary IP. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PrimaryIpActionsAssignPrimaryIpToResourceRequest"
}
}
}
}
POST /primary_ips/{id}/actions/assign
/primary_ips/{id}/actions/change_dns_ptr
Changes the hostname that will appear when getting the hostname belonging to this Primary IP.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Primary IP. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PrimaryIpActionsChangeDnsPtrRequest"
}
}
},
"description": "Select the IP address for which to change the DNS entry by passing `ip`. For a Primary IP of type `ipv4` this must exactly match the IP address of the Primary IP. For a Primary IP of type `ipv6` this must be a single IP within the IPv6 /64 range that belongs to this Primary IP. You can add up to 100 IPv6 reverse DNS entries.\n\nThe target hostname is set by passing `dns_ptr`.\n"
}
POST /primary_ips/{id}/actions/change_dns_ptr
/primary_ips/{id}/actions/change_protection
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`.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Primary IP. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PrimaryIpActionsChangeProtectionPrimaryIpRequest"
}
}
}
}
POST /primary_ips/{id}/actions/change_protection
/primary_ips/{id}/actions/unassign
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Primary IP. |
POST /primary_ips/{id}/actions/unassign
/primary_ips
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 |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PrimaryIPsCreateOrUpdateRequest"
}
}
},
"description": "The `type` argument is required while `datacenter` and `assignee_id` are mutually exclusive."
}
POST /primary_ips
/ssh_keys
Creates a new SSH key with the given `name` and `public_key`. Once an SSH key is created, it can be used in other calls such as creating Servers.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SshKeysCreateKeyRequest"
}
}
}
}
POST /ssh_keys
/servers/{id}/actions/add_to_placement_group
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsAddToPlacementGroupRequest"
}
}
}
}
POST /servers/{id}/actions/add_to_placement_group
/servers/{id}/actions/attach_iso
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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsAttachIsoToServerRequest"
}
}
}
}
POST /servers/{id}/actions/attach_iso
/servers/{id}/actions/attach_to_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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsAttachToNetworkRequest"
}
}
}
}
POST /servers/{id}/actions/attach_to_network
/servers/{id}/actions/change_alias_ips
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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsChangeAliasIpsRequest"
}
}
}
}
POST /servers/{id}/actions/change_alias_ips
/servers/{id}/actions/change_dns_ptr
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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsChangeDnsPtrRequest"
}
}
},
"description": "Select the IP address for which to change the DNS entry by passing `ip`. It can be either IPv4 or IPv6. The target hostname is set by passing `dns_ptr`."
}
POST /servers/{id}/actions/change_dns_ptr
/servers/{id}/actions/change_protection
Changes the protection configuration of the Server.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsChangeProtectionRequest"
}
}
}
}
POST /servers/{id}/actions/change_protection
/servers/{id}/actions/change_type
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 |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsChangeServerTypeRequest"
}
}
}
}
POST /servers/{id}/actions/change_type
/servers/{id}/actions/create_image
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 a `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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsCreateImageRequest"
}
}
}
}
POST /servers/{id}/actions/create_image
/servers/{id}/actions/detach_from_network
Detaches a Server from a network. The interface for this network will vanish.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsDetachFromNetworkRequest"
}
}
}
}
POST /servers/{id}/actions/detach_from_network
/servers/{id}/actions/detach_iso
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`
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/detach_iso
/servers/{id}/actions/disable_backup
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!
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/disable_backup
/servers/{id}/actions/disable_rescue
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.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/disable_rescue
/servers/{id}/actions/enable_backup
Enables and configures the automatic daily backup option for the Server. Enabling automatic backups will increase the price of the Server by 20%. In return, you will get seven slots where Images of type backup can be stored. Backups are automatically created daily.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/enable_backup
/servers/{id}/actions/enable_rescue
Enable the Hetzner Rescue System for this Server. The next time a Server with enabled rescue mode boots it will start a special minimal Linux distribution designed for repair and reinstall. In case a Server cannot boot on its own you can use this to access a Server’s disks. Rescue Mode is automatically disabled when you first boot into it or if you do not use it for 60 minutes. Enabling rescue mode will not [reboot](https://docs.hetzner.cloud/#server-actions-soft-reboot-a-server) your Server — you will have to do this yourself.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsEnableRescueModeRequest"
}
}
}
}
POST /servers/{id}/actions/enable_rescue
/servers/{id}/actions/poweroff
Cuts power to the Server. This forcefully stops it without giving the Server operating system time to gracefully stop. May lead to data loss, equivalent to pulling the power cord. Power off should only be used when shutdown does not work.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/poweroff
/servers/{id}/actions/poweron
Starts a Server by turning its power on.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/poweron
/servers/{id}/actions/reboot
Reboots a Server gracefully by sending an ACPI request. The Server operating system must support ACPI and react to the request, otherwise the Server will not reboot.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/reboot
/servers/{id}/actions/rebuild
Rebuilds a Server overwriting its disk with the content of an Image, thereby **destroying all data** on the target Server The Image can either be one you have created earlier (`backup` or `snapshot` Image) or it can be a completely fresh `system` Image provided by us. You can get a list of all available Images with `GET /images`. Your Server will automatically be powered off before the rebuild command executes.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerActionsRebuildServerFromImageRequest"
}
}
},
"description": "To select which Image to rebuild from you can either pass an ID or a name as the `image` argument. Passing a name only works for `system` Images since the other Image types do not have a name set."
}
POST /servers/{id}/actions/rebuild
/servers/{id}/actions/remove_from_placement_group
Removes a Server from a Placement Group.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/remove_from_placement_group
/servers/{id}/actions/request_console
Requests credentials for remote access via VNC over websocket to keyboard, monitor, and mouse for a Server. The provided URL is valid for 1 minute, after this period a new url needs to be created to connect to the Server. How long the connection is open after the initial connect is not subject to this timeout.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/request_console
/servers/{id}/actions/reset
Cuts power to a Server and starts it again. This forcefully stops it without giving the Server operating system time to gracefully stop. This may lead to data loss, it’s equivalent to pulling the power cord and plugging it in again. Reset should only be used when reboot does not work.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/reset
/servers/{id}/actions/reset_password
Resets the root password. Only works for Linux systems that are running the qemu guest agent. Server must be powered on (status `running`) in order for this operation to succeed. This will generate a new password for this Server and return it. If this does not succeed you can use the rescue system to netboot the Server and manually change your Server password by hand.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/reset_password
/servers/{id}/actions/shutdown
Shuts down a Server gracefully by sending an ACPI shutdown request. The Server operating system must support ACPI and react to the request, otherwise the Server will not shut down. Please note that the `action` status in this case only reflects whether the action was sent to the server. It does not mean that the server actually shut down successfully. If you need to ensure that the server is off, use the `poweroff` action
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Server. |
POST /servers/{id}/actions/shutdown
/servers
Creates a new Server. Returns preliminary information about the Server as well as an Action that covers progress of creation.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServersCreateServerActionRequest"
}
}
},
"description": "Please note that Server names must be unique per Project and valid hostnames as per RFC 1123 (i.e. may only contain letters, digits, periods, and dashes).\n\nFor `server_type` you can either use the ID as listed in `/server_types` or its name.\n\nFor `image` you can either use the ID as listed in `/images` or its name.\n\nIf you want to create the Server in a Location, you must set `location` to the ID or name as listed in `/locations`. This is the recommended way. You can be even more specific by setting `datacenter` to the ID or name as listed in `/datacenters`. However we only recommend this if you want to assign a specific Primary IP to the Server which is located in the specified Datacenter.\n\nSome properties like `start_after_create` or `automount` will trigger Actions after the Server is created. Those Actions are listed in the `next_actions` field in the response.\n\nFor accessing your Server we strongly recommend to use SSH keys by passing the respective key IDs in `ssh_keys`. If you do not specify any `ssh_keys` we will generate a root password for you and return it in the response.\n\nPlease note that provided user-data is stored in our systems. While we take measures to protect it we highly recommend that you don’t use it to store passwords or other sensitive information.\n\n#### Call specific error codes\n\n| Code | Description |\n|----------------------------------|------------------------------------------------------------|\n| `placement_error` | An error during the placement occurred |\n| `primary_ip_assigned` | The specified Primary IP is already assigned to a server |\n| `primary_ip_datacenter_mismatch` | The specified Primary IP is in a different datacenter |\n| `primary_ip_version_mismatch` | The specified Primary IP has the wrong IP Version |\n"
}
POST /servers
/volumes/{id}/actions/attach
Attaches a Volume to a Server. Works only if the Server is in the same Location as the Volume.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Volume. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VolumeActionsAttachVolumeToServerRequest"
}
}
}
}
POST /volumes/{id}/actions/attach
/volumes/{id}/actions/change_protection
Changes the protection configuration of a Volume.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Volume. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VolumeActionsChangeProtectionVolumeRequest"
}
}
}
}
POST /volumes/{id}/actions/change_protection
/volumes/{id}/actions/detach
Detaches a Volume from the Server it’s attached to. You may attach it to a Server again at a later time.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Volume. |
POST /volumes/{id}/actions/detach
/volumes/{id}/actions/resize
Changes the size of a Volume. Note that downsizing a Volume is not possible.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the Volume. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VolumeActionsChangeSizeRequest"
}
}
}
}
POST /volumes/{id}/actions/resize
/volumes
Creates a new Volume attached to a Server. If you want to create a Volume that is not attached to a Server, you need to provide the `location` key instead of `server`. This can be either the ID or the name of the Location this Volume will be created in. Note that a Volume can be attached to a Server only in the same Location as the Volume itself. Specifying the Server during Volume creation will automatically attach the Volume to that Server after it has been initialized. In that case, the `next_actions` key in the response is an array which contains a single `attach_volume` action. The minimum Volume size is 10GB and the maximum size is 10TB (10240GB). A volume’s name can consist of alphanumeric characters, dashes, underscores, and dots, but has to start and end with an alphanumeric character. The total length is limited to 64 characters. Volume names must be unique per Project. #### Call specific error codes | Code | Description | |-------------------------------------|-----------------------------------------------------| | `no_space_left_in_location` | There is no volume space left in the given location |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VolumesCreateVolumeRequest"
},
"example": {
"name": "test-database",
"size": 42,
"format": "xfs",
"labels": {
"labelkey": "value"
},
"location": "nbg1",
"automount": false
}
}
}
}
POST /volumes
Action
{
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
ActionID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
}
ActionListResponse
{
"type": "object",
"title": "ActionListResponse",
"required": [
"actions"
],
"properties": {
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
ActionListResponseWithMeta
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
ActionNullable
{
"type": "object",
"title": "ActionNullable",
"nullable": true,
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
ActionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ActionsGetAllResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
ActionsGetByIdResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
CertificateActionsGetActionByIdResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
CertificateActionsGetActionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
CertificateActionsGetAllActions200Response
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
CertificateActionsGetAllActionsResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
CertificateActionsRetryIssuanceOrRenewalResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
CertificateID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Certificate."
}
CertificatesCreateNewCertificateRequest
{
"type": "object",
"title": "CreateCertificateRequest",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"example": "my website cert",
"description": "Name of the Certificate"
},
"type": {
"enum": [
"uploaded",
"managed"
],
"type": "string",
"default": "uploaded",
"example": "uploaded",
"description": "Choose between uploading a Certificate in PEM format or requesting a managed *Let's Encrypt* Certificate."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"certificate": {
"type": "string",
"example": "-----BEGIN CERTIFICATE-----\n...",
"description": "Certificate and chain in PEM format, in order so that each record directly certifies the one preceding. Required for type `uploaded` Certificates."
},
"private_key": {
"type": "string",
"example": "-----BEGIN PRIVATE KEY-----\n...",
"description": "Certificate key in PEM format. Required for type `uploaded` Certificates."
},
"domain_names": {
"type": "array",
"items": {
"type": "string"
},
"example": null,
"description": "Domains and subdomains that should be contained in the Certificate issued by *Let's Encrypt*. Required for type `managed` Certificates."
}
}
}
CertificatesCreateNewCertificateResponse
{
"type": "object",
"title": "CreateCertificateResponse",
"required": [
"certificate"
],
"properties": {
"action": {
"type": "object",
"title": "ActionNullable",
"nullable": true,
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"certificate": {
"type": "object",
"title": "Certificate",
"required": [
"id",
"name",
"labels",
"certificate",
"created",
"not_valid_before",
"not_valid_after",
"domain_names",
"fingerprint",
"used_by"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Certificate."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"uploaded",
"managed"
],
"type": "string",
"example": "uploaded",
"description": "Type of the Certificate"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"type": "object",
"nullable": true,
"properties": {
"error": {
"type": "object",
"example": null,
"nullable": true,
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"description": "If issuance or renewal reports `failed`, this property contains information about what happened"
},
"renewal": {
"enum": [
"scheduled",
"pending",
"failed",
"unavailable"
],
"type": "string",
"example": "scheduled",
"description": "Status of the renewal process of the Certificate."
},
"issuance": {
"enum": [
"pending",
"completed",
"failed"
],
"type": "string",
"example": "completed",
"description": "Status of the issuance process of the Certificate"
}
},
"description": "Current status of a type `managed` Certificate, always *null* for type `uploaded` Certificates"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"used_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of resource referenced"
},
"type": {
"type": "string",
"example": "load_balancer",
"description": "Type of resource referenced"
}
}
},
"description": "Resources currently using the Certificate"
},
"certificate": {
"type": "string",
"example": "-----BEGIN CERTIFICATE-----\n...",
"nullable": true,
"description": "Certificate and chain in PEM format, in order so that each record directly certifies the one preceding"
},
"fingerprint": {
"type": "string",
"example": "03:c7:55:9b:2a:d1:04:17:09:f6:d0:7f:18:34:63:d4:3e:5f",
"nullable": true,
"description": "SHA256 fingerprint of the Certificate"
},
"domain_names": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"example.com",
"webmail.example.com",
"www.example.com"
],
"description": "Domains and subdomains covered by the Certificate"
},
"not_valid_after": {
"type": "string",
"example": "2019-07-08T09:59:59+00:00",
"nullable": true,
"description": "Point in time when the Certificate stops being valid (in ISO-8601 format)"
},
"not_valid_before": {
"type": "string",
"example": "2019-01-08T10:00:00+00:00",
"nullable": true,
"description": "Point in time when the Certificate becomes valid (in ISO-8601 format)"
}
}
}
}
}
CertificatesGetAllResponse
{
"type": "object",
"title": "CertificatesResponse",
"required": [
"certificates",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"certificates": {
"type": "array",
"items": {
"type": "object",
"title": "Certificate",
"required": [
"id",
"name",
"labels",
"certificate",
"created",
"not_valid_before",
"not_valid_after",
"domain_names",
"fingerprint",
"used_by"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Certificate."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"uploaded",
"managed"
],
"type": "string",
"example": "uploaded",
"description": "Type of the Certificate"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"type": "object",
"nullable": true,
"properties": {
"error": {
"type": "object",
"example": null,
"nullable": true,
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"description": "If issuance or renewal reports `failed`, this property contains information about what happened"
},
"renewal": {
"enum": [
"scheduled",
"pending",
"failed",
"unavailable"
],
"type": "string",
"example": "scheduled",
"description": "Status of the renewal process of the Certificate."
},
"issuance": {
"enum": [
"pending",
"completed",
"failed"
],
"type": "string",
"example": "completed",
"description": "Status of the issuance process of the Certificate"
}
},
"description": "Current status of a type `managed` Certificate, always *null* for type `uploaded` Certificates"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"used_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of resource referenced"
},
"type": {
"type": "string",
"example": "load_balancer",
"description": "Type of resource referenced"
}
}
},
"description": "Resources currently using the Certificate"
},
"certificate": {
"type": "string",
"example": "-----BEGIN CERTIFICATE-----\n...",
"nullable": true,
"description": "Certificate and chain in PEM format, in order so that each record directly certifies the one preceding"
},
"fingerprint": {
"type": "string",
"example": "03:c7:55:9b:2a:d1:04:17:09:f6:d0:7f:18:34:63:d4:3e:5f",
"nullable": true,
"description": "SHA256 fingerprint of the Certificate"
},
"domain_names": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"example.com",
"webmail.example.com",
"www.example.com"
],
"description": "Domains and subdomains covered by the Certificate"
},
"not_valid_after": {
"type": "string",
"example": "2019-07-08T09:59:59+00:00",
"nullable": true,
"description": "Point in time when the Certificate stops being valid (in ISO-8601 format)"
},
"not_valid_before": {
"type": "string",
"example": "2019-01-08T10:00:00+00:00",
"nullable": true,
"description": "Point in time when the Certificate becomes valid (in ISO-8601 format)"
}
}
}
}
}
}
CertificatesGetByIdResponse
{
"type": "object",
"title": "CertificateResponse",
"required": [
"certificate"
],
"properties": {
"certificate": {
"type": "object",
"title": "Certificate",
"required": [
"id",
"name",
"labels",
"certificate",
"created",
"not_valid_before",
"not_valid_after",
"domain_names",
"fingerprint",
"used_by"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Certificate."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"uploaded",
"managed"
],
"type": "string",
"example": "uploaded",
"description": "Type of the Certificate"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"type": "object",
"nullable": true,
"properties": {
"error": {
"type": "object",
"example": null,
"nullable": true,
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"description": "If issuance or renewal reports `failed`, this property contains information about what happened"
},
"renewal": {
"enum": [
"scheduled",
"pending",
"failed",
"unavailable"
],
"type": "string",
"example": "scheduled",
"description": "Status of the renewal process of the Certificate."
},
"issuance": {
"enum": [
"pending",
"completed",
"failed"
],
"type": "string",
"example": "completed",
"description": "Status of the issuance process of the Certificate"
}
},
"description": "Current status of a type `managed` Certificate, always *null* for type `uploaded` Certificates"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"used_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of resource referenced"
},
"type": {
"type": "string",
"example": "load_balancer",
"description": "Type of resource referenced"
}
}
},
"description": "Resources currently using the Certificate"
},
"certificate": {
"type": "string",
"example": "-----BEGIN CERTIFICATE-----\n...",
"nullable": true,
"description": "Certificate and chain in PEM format, in order so that each record directly certifies the one preceding"
},
"fingerprint": {
"type": "string",
"example": "03:c7:55:9b:2a:d1:04:17:09:f6:d0:7f:18:34:63:d4:3e:5f",
"nullable": true,
"description": "SHA256 fingerprint of the Certificate"
},
"domain_names": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"example.com",
"webmail.example.com",
"www.example.com"
],
"description": "Domains and subdomains covered by the Certificate"
},
"not_valid_after": {
"type": "string",
"example": "2019-07-08T09:59:59+00:00",
"nullable": true,
"description": "Point in time when the Certificate stops being valid (in ISO-8601 format)"
},
"not_valid_before": {
"type": "string",
"example": "2019-01-08T10:00:00+00:00",
"nullable": true,
"description": "Point in time when the Certificate becomes valid (in ISO-8601 format)"
}
}
}
}
}
CertificatesUpdateByIdRequest
{
"type": "object",
"title": "UpdateCertificateRequest",
"properties": {
"name": {
"type": "string",
"example": "my website cert",
"description": "New Certificate name"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
}
}
}
CertificatesUpdateByIdResponse
{
"type": "object",
"title": "CertificateResponse",
"required": [
"certificate"
],
"properties": {
"certificate": {
"type": "object",
"title": "Certificate",
"required": [
"id",
"name",
"labels",
"certificate",
"created",
"not_valid_before",
"not_valid_after",
"domain_names",
"fingerprint",
"used_by"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Certificate."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"uploaded",
"managed"
],
"type": "string",
"example": "uploaded",
"description": "Type of the Certificate"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"type": "object",
"nullable": true,
"properties": {
"error": {
"type": "object",
"example": null,
"nullable": true,
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
},
"description": "If issuance or renewal reports `failed`, this property contains information about what happened"
},
"renewal": {
"enum": [
"scheduled",
"pending",
"failed",
"unavailable"
],
"type": "string",
"example": "scheduled",
"description": "Status of the renewal process of the Certificate."
},
"issuance": {
"enum": [
"pending",
"completed",
"failed"
],
"type": "string",
"example": "completed",
"description": "Status of the issuance process of the Certificate"
}
},
"description": "Current status of a type `managed` Certificate, always *null* for type `uploaded` Certificates"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"used_by": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of resource referenced"
},
"type": {
"type": "string",
"example": "load_balancer",
"description": "Type of resource referenced"
}
}
},
"description": "Resources currently using the Certificate"
},
"certificate": {
"type": "string",
"example": "-----BEGIN CERTIFICATE-----\n...",
"nullable": true,
"description": "Certificate and chain in PEM format, in order so that each record directly certifies the one preceding"
},
"fingerprint": {
"type": "string",
"example": "03:c7:55:9b:2a:d1:04:17:09:f6:d0:7f:18:34:63:d4:3e:5f",
"nullable": true,
"description": "SHA256 fingerprint of the Certificate"
},
"domain_names": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"example.com",
"webmail.example.com",
"www.example.com"
],
"description": "Domains and subdomains covered by the Certificate"
},
"not_valid_after": {
"type": "string",
"example": "2019-07-08T09:59:59+00:00",
"nullable": true,
"description": "Point in time when the Certificate stops being valid (in ISO-8601 format)"
},
"not_valid_before": {
"type": "string",
"example": "2019-01-08T10:00:00+00:00",
"nullable": true,
"description": "Point in time when the Certificate becomes valid (in ISO-8601 format)"
}
}
}
}
}
Created
{
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
}
DatacenterID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
}
DatacentersGetAllResponse
{
"type": "object",
"required": [
"datacenters",
"recommendation",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"datacenters": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
}
},
"description": "List of Datacenters."
},
"recommendation": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "Recommended Datacenter ID for new Resources."
}
}
}
DatacentersGetByIdResponse
{
"type": "object",
"required": [
"datacenter"
],
"properties": {
"datacenter": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
}
}
}
}
DeprecationInfo
{
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
}
Description
{
"type": "string",
"example": "This describes my resource",
"nullable": true,
"description": "Description of the Resource."
}
FirewallActionsApplyToResourcesRequest
{
"type": "object",
"title": "ApplyToResourcesRequest",
"required": [
"apply_to"
],
"properties": {
"apply_to": {
"type": "array",
"items": {
"type": "object",
"title": "FirewallResource",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"server",
"label_selector"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "ID of the Server"
}
},
"description": "Configuration for type server, required if type is `server`"
},
"label_selector": {
"type": "object",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
},
"description": "Configuration for type label_selector, required if type is `label_selector`"
}
}
},
"description": "Resources the Firewall should be applied to"
}
}
}
FirewallActionsApplyToResourcesResponse
{
"type": "object",
"title": "ActionListResponse",
"required": [
"actions"
],
"properties": {
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
FirewallActionsGetActionById200Response
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
FirewallActionsGetActionByIdResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
FirewallActionsGetAllActions200Response
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
FirewallActionsGetAllActionsResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
FirewallActionsRemoveFromResourcesRequest
{
"type": "object",
"title": "RemoveFromResourcesRequest",
"required": [
"remove_from"
],
"properties": {
"remove_from": {
"type": "array",
"items": {
"type": "object",
"title": "FirewallResource",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"server",
"label_selector"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "ID of the Server"
}
},
"description": "Configuration for type server, required if type is `server`"
},
"label_selector": {
"type": "object",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
},
"description": "Configuration for type label_selector, required if type is `label_selector`"
}
}
},
"description": "Resources the Firewall should be removed from"
}
}
}
FirewallActionsRemoveFromResourcesResponse
{
"type": "object",
"title": "ActionListResponse",
"required": [
"actions"
],
"properties": {
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
FirewallActionsSetRulesRequest
{
"type": "object",
"title": "SetRulesRequest",
"required": [
"rules"
],
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "Rule",
"required": [
"direction",
"protocol"
],
"properties": {
"port": {
"type": "string",
"example": "80",
"description": "Port or port range to which traffic will be allowed, only applicable for protocols TCP and UDP. A port range can be specified by separating two ports with a dash, e.g `1024-5000`."
},
"protocol": {
"enum": [
"tcp",
"udp",
"icmp",
"esp",
"gre"
],
"type": "string",
"description": "Type of traffic to allow"
},
"direction": {
"enum": [
"in",
"out"
],
"type": "string",
"example": "in",
"description": "Select traffic direction on which rule should be applied. Use `source_ips` for direction `in` and `destination_ips` for direction `out`."
},
"source_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"28.239.13.1/32",
"28.239.14.0/24",
"ff21:1eac:9a3b:ee58:5ca:990c:8bc9:c03b/128"
],
"description": "List of permitted IPv4/IPv6 addresses for incoming traffic (`direction` set to `in`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
},
"description": {
"type": "string",
"nullable": true,
"maxLength": 255,
"description": "Description of the Rule"
},
"destination_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [],
"description": "List of permitted IPv4/IPv6 addresses for outgoing traffic (`direction` set to `out`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
}
}
},
"maxItems": 50,
"description": "Array of rules.\n\nLimited to a maximum of 50 rules per Firewall.\n"
}
}
}
FirewallActionsSetRulesResponse
{
"type": "object",
"title": "ActionListResponse",
"required": [
"actions"
],
"properties": {
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
FirewallID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Firewall."
}
FirewallsCreateFirewallRequest
{
"type": "object",
"title": "CreateFirewallRequest",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"example": "Corporate Intranet Protection",
"description": "Name of the Firewall.\n\nLimited to a maximum of 128 characters.\n"
},
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "Rule",
"required": [
"direction",
"protocol"
],
"properties": {
"port": {
"type": "string",
"example": "80",
"description": "Port or port range to which traffic will be allowed, only applicable for protocols TCP and UDP. A port range can be specified by separating two ports with a dash, e.g `1024-5000`."
},
"protocol": {
"enum": [
"tcp",
"udp",
"icmp",
"esp",
"gre"
],
"type": "string",
"description": "Type of traffic to allow"
},
"direction": {
"enum": [
"in",
"out"
],
"type": "string",
"example": "in",
"description": "Select traffic direction on which rule should be applied. Use `source_ips` for direction `in` and `destination_ips` for direction `out`."
},
"source_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"28.239.13.1/32",
"28.239.14.0/24",
"ff21:1eac:9a3b:ee58:5ca:990c:8bc9:c03b/128"
],
"description": "List of permitted IPv4/IPv6 addresses for incoming traffic (`direction` set to `in`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
},
"description": {
"type": "string",
"nullable": true,
"maxLength": 255,
"description": "Description of the Rule"
},
"destination_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [],
"description": "List of permitted IPv4/IPv6 addresses for outgoing traffic (`direction` set to `out`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
}
}
},
"example": [
{
"port": "80",
"protocol": "tcp",
"direction": "in",
"source_ips": [
"28.239.13.1/32",
"28.239.14.0/24",
"ff21:1eac:9a3b:ee58:5ca:990c:8bc9:c03b/128"
]
}
],
"description": "Array of rules.\n\nLimited to a maximum of 50 rules per Firewall.\n"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"apply_to": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"server",
"label_selector"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "ID of the Server"
}
},
"description": "Configuration for type Server, required if type is `server`"
},
"label_selector": {
"type": "object",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"description": "Label selector"
}
},
"description": "Configuration for type LabelSelector, required if type is `label_selector`"
}
}
},
"description": "Resources the Firewall should be applied to after creation"
}
}
}
FirewallsCreateFirewallResponse
{
"type": "object",
"title": "CreateFirewallResponse",
"properties": {
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"example": [
{
"id": 13,
"error": {
"code": "action_failed",
"message": "Action failed"
},
"status": "success",
"command": "set_firewall_rules",
"started": "2016-01-30T23:55:00+00:00",
"finished": "2016-01-30T23:56:00+00:00",
"progress": 100,
"resources": [
{
"id": 38,
"type": "firewall"
}
]
},
{
"id": 14,
"error": {
"code": "action_failed",
"message": "Action failed"
},
"status": "success",
"command": "apply_firewall",
"started": "2016-01-30T23:55:00+00:00",
"finished": "2016-01-30T23:56:00+00:00",
"progress": 100,
"resources": [
{
"id": 42,
"type": "server"
},
{
"id": 38,
"type": "firewall"
}
]
}
]
},
"firewall": {
"type": "object",
"title": "FirewallResponse",
"required": [
"id",
"name",
"created",
"rules",
"applied_to"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Firewall."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "RuleResponse",
"required": [
"direction",
"protocol",
"destination_ips",
"source_ips",
"port"
],
"properties": {
"port": {
"type": "string",
"example": "80",
"nullable": true,
"description": "Port or port range to which traffic will be allowed, only applicable for protocols TCP and UDP. A port range can be specified by separating two ports with a dash, e.g `1024-5000`."
},
"protocol": {
"enum": [
"tcp",
"udp",
"icmp",
"esp",
"gre"
],
"type": "string",
"description": "Type of traffic to allow"
},
"direction": {
"enum": [
"in",
"out"
],
"type": "string",
"example": "in",
"description": "Select traffic direction on which rule should be applied. Use `source_ips` for direction `in` and `destination_ips` for direction `out`."
},
"source_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"28.239.13.1/32",
"28.239.14.0/24",
"ff21:1eac:9a3b:ee58:5ca:990c:8bc9:c03b/128"
],
"description": "List of permitted IPv4/IPv6 addresses for incoming traffic (`direction` set to `in`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
},
"description": {
"type": "string",
"nullable": true,
"maxLength": 255,
"description": "Description of the Rule"
},
"destination_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [],
"description": "List of permitted IPv4/IPv6 addresses for outgoing traffic (`direction` set to `out`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
}
}
}
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"applied_to": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"server",
"label_selector"
],
"type": "string",
"example": "server",
"description": "Type of resource referenced"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
}
}
},
"label_selector": {
"type": "object",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
}
},
"applied_to_resources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"enum": [
"server"
],
"type": "string",
"example": "server",
"description": "Type of resource referenced"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
}
}
}
}
}
}
}
}
}
}
}
}
}
FirewallsGetFirewallByIdResponse
{
"type": "object",
"title": "FirewallResponse",
"required": [
"firewall"
],
"properties": {
"firewall": {
"type": "object",
"title": "FirewallResponse",
"required": [
"id",
"name",
"created",
"rules",
"applied_to"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Firewall."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "RuleResponse",
"required": [
"direction",
"protocol",
"destination_ips",
"source_ips",
"port"
],
"properties": {
"port": {
"type": "string",
"example": "80",
"nullable": true,
"description": "Port or port range to which traffic will be allowed, only applicable for protocols TCP and UDP. A port range can be specified by separating two ports with a dash, e.g `1024-5000`."
},
"protocol": {
"enum": [
"tcp",
"udp",
"icmp",
"esp",
"gre"
],
"type": "string",
"description": "Type of traffic to allow"
},
"direction": {
"enum": [
"in",
"out"
],
"type": "string",
"example": "in",
"description": "Select traffic direction on which rule should be applied. Use `source_ips` for direction `in` and `destination_ips` for direction `out`."
},
"source_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"28.239.13.1/32",
"28.239.14.0/24",
"ff21:1eac:9a3b:ee58:5ca:990c:8bc9:c03b/128"
],
"description": "List of permitted IPv4/IPv6 addresses for incoming traffic (`direction` set to `in`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
},
"description": {
"type": "string",
"nullable": true,
"maxLength": 255,
"description": "Description of the Rule"
},
"destination_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [],
"description": "List of permitted IPv4/IPv6 addresses for outgoing traffic (`direction` set to `out`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
}
}
}
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"applied_to": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"server",
"label_selector"
],
"type": "string",
"example": "server",
"description": "Type of resource referenced"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
}
}
},
"label_selector": {
"type": "object",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
}
},
"applied_to_resources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"enum": [
"server"
],
"type": "string",
"example": "server",
"description": "Type of resource referenced"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
}
}
}
}
}
}
}
}
}
}
}
}
}
FirewallsListAllResponse
{
"type": "object",
"title": "FirewallsResponse",
"required": [
"firewalls",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"firewalls": {
"type": "array",
"items": {
"type": "object",
"title": "FirewallResponse",
"required": [
"id",
"name",
"created",
"rules",
"applied_to"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Firewall."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "RuleResponse",
"required": [
"direction",
"protocol",
"destination_ips",
"source_ips",
"port"
],
"properties": {
"port": {
"type": "string",
"example": "80",
"nullable": true,
"description": "Port or port range to which traffic will be allowed, only applicable for protocols TCP and UDP. A port range can be specified by separating two ports with a dash, e.g `1024-5000`."
},
"protocol": {
"enum": [
"tcp",
"udp",
"icmp",
"esp",
"gre"
],
"type": "string",
"description": "Type of traffic to allow"
},
"direction": {
"enum": [
"in",
"out"
],
"type": "string",
"example": "in",
"description": "Select traffic direction on which rule should be applied. Use `source_ips` for direction `in` and `destination_ips` for direction `out`."
},
"source_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"28.239.13.1/32",
"28.239.14.0/24",
"ff21:1eac:9a3b:ee58:5ca:990c:8bc9:c03b/128"
],
"description": "List of permitted IPv4/IPv6 addresses for incoming traffic (`direction` set to `in`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
},
"description": {
"type": "string",
"nullable": true,
"maxLength": 255,
"description": "Description of the Rule"
},
"destination_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [],
"description": "List of permitted IPv4/IPv6 addresses for outgoing traffic (`direction` set to `out`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
}
}
}
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"applied_to": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"server",
"label_selector"
],
"type": "string",
"example": "server",
"description": "Type of resource referenced"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
}
}
},
"label_selector": {
"type": "object",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
}
},
"applied_to_resources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"enum": [
"server"
],
"type": "string",
"example": "server",
"description": "Type of resource referenced"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
}
}
}
}
}
}
}
}
}
}
}
}
}
}
FirewallsUpdateFirewallByIdRequest
{
"type": "object",
"title": "UpdateFirewallRequest",
"properties": {
"name": {
"type": "string",
"example": "new-name",
"description": "New Firewall name"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
}
}
}
FirewallsUpdateFirewallByIdResponse
{
"type": "object",
"title": "FirewallResponse",
"required": [
"firewall"
],
"properties": {
"firewall": {
"type": "object",
"title": "FirewallResponse",
"required": [
"id",
"name",
"created",
"rules",
"applied_to"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Firewall."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "RuleResponse",
"required": [
"direction",
"protocol",
"destination_ips",
"source_ips",
"port"
],
"properties": {
"port": {
"type": "string",
"example": "80",
"nullable": true,
"description": "Port or port range to which traffic will be allowed, only applicable for protocols TCP and UDP. A port range can be specified by separating two ports with a dash, e.g `1024-5000`."
},
"protocol": {
"enum": [
"tcp",
"udp",
"icmp",
"esp",
"gre"
],
"type": "string",
"description": "Type of traffic to allow"
},
"direction": {
"enum": [
"in",
"out"
],
"type": "string",
"example": "in",
"description": "Select traffic direction on which rule should be applied. Use `source_ips` for direction `in` and `destination_ips` for direction `out`."
},
"source_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"28.239.13.1/32",
"28.239.14.0/24",
"ff21:1eac:9a3b:ee58:5ca:990c:8bc9:c03b/128"
],
"description": "List of permitted IPv4/IPv6 addresses for incoming traffic (`direction` set to `in`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
},
"description": {
"type": "string",
"nullable": true,
"maxLength": 255,
"description": "Description of the Rule"
},
"destination_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [],
"description": "List of permitted IPv4/IPv6 addresses for outgoing traffic (`direction` set to `out`)\nin [CIDR block notation](https://wikipedia.org/wiki/CIDR). You can specify 100 CIDR\nblocks at most.\n\nThe CIDR blocks may refer to networks (with empty host bits) or single hosts.\nFor example, a network could be defined with `10.0.1.0/24` or `2001:db8:ff00:42::/64`,\nand a single host with `10.0.1.1/32` or `2001:db8:ff00:42::8329/128`.\nUse `0.0.0.0/0` to allow any IPv4 addresses and `::/0` to allow any IPv6 addresses.\n"
}
}
}
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"applied_to": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"server",
"label_selector"
],
"type": "string",
"example": "server",
"description": "Type of resource referenced"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
}
}
},
"label_selector": {
"type": "object",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
}
},
"applied_to_resources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"enum": [
"server"
],
"type": "string",
"example": "server",
"description": "Type of resource referenced"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
}
}
}
}
}
}
}
}
}
}
}
}
}
FloatingIPID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Floating IP."
}
FloatingIPsCreateNewIpRequest
{
"type": "object",
"title": "CreateFloatingIPRequest",
"required": [
"type"
],
"properties": {
"name": {
"type": "string",
"example": "Web Frontend"
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Floating IP type"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"example": 42,
"description": "ID of the Server to assign the Floating IP to"
},
"description": {
"type": "string",
"example": "Web Frontend"
},
"home_location": {
"type": "string",
"example": "fsn1",
"description": "Home Location (routing is optimized for that Location). Only optional if Server argument is passed."
}
}
}
FloatingIPsCreateNewIpResponse
{
"type": "object",
"required": [
"floating_ip"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"floating_ip": {
"type": "object",
"required": [
"id",
"name",
"description",
"ip",
"type",
"server",
"dns_ptr",
"home_location",
"blocked",
"protection",
"labels",
"created"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Floating IP."
},
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "IP address."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Type of the Floating IP"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"example": 42,
"nullable": true,
"description": "ID of the Server the Floating IP is assigned to, null if it is not assigned at all"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "Whether the IP is blocked"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"description": "Single IPv4 or IPv6 address"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"description": "Array of reverse DNS entries"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "This describes my resource",
"nullable": true,
"description": "Description of the Resource."
},
"home_location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "Location the Floating IP was created in. Routing is optimized for this Location."
}
}
}
}
}
FloatingIPsGetAllResponse
{
"type": "object",
"required": [
"floating_ips",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"floating_ips": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"description",
"ip",
"type",
"server",
"dns_ptr",
"home_location",
"blocked",
"protection",
"labels",
"created"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Floating IP."
},
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "IP address."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Type of the Floating IP"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"example": 42,
"nullable": true,
"description": "ID of the Server the Floating IP is assigned to, null if it is not assigned at all"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "Whether the IP is blocked"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"description": "Single IPv4 or IPv6 address"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"description": "Array of reverse DNS entries"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "This describes my resource",
"nullable": true,
"description": "Description of the Resource."
},
"home_location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "Location the Floating IP was created in. Routing is optimized for this Location."
}
}
}
}
}
}
FloatingIPsGetResponse
{
"type": "object",
"required": [
"floating_ip"
],
"properties": {
"floating_ip": {
"type": "object",
"required": [
"id",
"name",
"description",
"ip",
"type",
"server",
"dns_ptr",
"home_location",
"blocked",
"protection",
"labels",
"created"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Floating IP."
},
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "IP address."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Type of the Floating IP"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"example": 42,
"nullable": true,
"description": "ID of the Server the Floating IP is assigned to, null if it is not assigned at all"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "Whether the IP is blocked"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"description": "Single IPv4 or IPv6 address"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"description": "Array of reverse DNS entries"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "This describes my resource",
"nullable": true,
"description": "Description of the Resource."
},
"home_location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "Location the Floating IP was created in. Routing is optimized for this Location."
}
}
}
}
}
FloatingIPsUpdateDescriptionLabelsRequest
{
"type": "object",
"title": "UpdateFloatingIPRequest",
"properties": {
"name": {
"type": "string",
"example": "Web Frontend",
"description": "New unique name to set"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"description": {
"type": "string",
"example": "Web Frontend",
"description": "New Description to set"
}
}
}
FloatingIPsUpdateDescriptionLabelsResponse
{
"type": "object",
"required": [
"floating_ip"
],
"properties": {
"floating_ip": {
"type": "object",
"required": [
"id",
"name",
"description",
"ip",
"type",
"server",
"dns_ptr",
"home_location",
"blocked",
"protection",
"labels",
"created"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Floating IP."
},
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "IP address."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Type of the Floating IP"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"example": 42,
"nullable": true,
"description": "ID of the Server the Floating IP is assigned to, null if it is not assigned at all"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "Whether the IP is blocked"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"description": "Single IPv4 or IPv6 address"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"description": "Array of reverse DNS entries"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "This describes my resource",
"nullable": true,
"description": "Description of the Resource."
},
"home_location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "Location the Floating IP was created in. Routing is optimized for this Location."
}
}
}
}
}
FloatingIpActionsAssignToServerRequest
{
"type": "object",
"title": "AssignFloatingIPRequest",
"required": [
"server"
],
"properties": {
"server": {
"type": "integer",
"format": "int64",
"example": 42,
"description": "ID of the Server the Floating IP shall be assigned to"
}
},
"description": "#### Call specific error codes\n\n| Code | Description |\n|------------------------------ |-------------------------------------------------------------- |\n| `floating_ip_assigned` | The floating IP is already assigned |\n"
}
FloatingIpActionsAssignToServerResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
FloatingIpActionsChangeDnsPtrRequest
{
"type": "object",
"title": "ChangeDNSPTRRequest",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "1.2.3.4",
"description": "IP address for which to set the reverse DNS entry"
},
"dns_ptr": {
"type": "string",
"example": "server02.example.com",
"nullable": true,
"description": "Hostname to set as a reverse DNS PTR entry, will reset to original default value if `null`"
}
}
}
FloatingIpActionsChangeDnsPtrResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
FloatingIpActionsChangeProtectionRequest
{
"type": "object",
"title": "ChangeProtectionRequest",
"properties": {
"delete": {
"type": "boolean",
"example": true,
"description": "If true, prevents the Floating IP from being deleted"
}
}
}
FloatingIpActionsChangeProtectionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
FloatingIpActionsGetActionById200Response
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
FloatingIpActionsGetActionByIdResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
FloatingIpActionsGetAllActions200Response
{
"type": "object",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
FloatingIpActionsGetAllActionsResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
FloatingIpActionsUnassignIpResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
}
IP
{
"type": "string",
"example": "131.232.99.1",
"description": "IP address."
}
ISOID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the ISO."
}
ImageActionsChangeProtectionRequest
{
"type": "object",
"properties": {
"delete": {
"type": "boolean",
"example": true,
"description": "If true, prevents the snapshot from being deleted"
}
}
}
ImageActionsChangeProtectionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ImageActionsGetActionById200Response
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ImageActionsGetActionByIdResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ImageActionsGetAllActions200Response
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
ImageActionsGetAllActionsResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
ImageID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Image."
}
ImagesGetAllResponse
{
"type": "object",
"required": [
"images",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type",
"status",
"name",
"description",
"image_size",
"disk_size",
"created",
"created_from",
"bound_to",
"os_flavor",
"os_version",
"protection",
"deprecated",
"deleted",
"labels",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Image."
},
"name": {
"type": "string",
"example": "ubuntu-20.04",
"nullable": true,
"description": "Unique identifier of the Image. This value is only set for system Images."
},
"type": {
"enum": [
"system",
"app",
"snapshot",
"backup",
"temporary"
],
"type": "string",
"example": "snapshot",
"description": "Type of the Image"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"enum": [
"available",
"creating",
"unavailable"
],
"type": "string",
"description": "Whether the Image can be used or if it's still being created or unavailable"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"deleted": {
"type": "string",
"example": null,
"nullable": true,
"description": "Point in time where the Image was deleted (in ISO-8601 format)"
},
"bound_to": {
"type": "integer",
"format": "int64",
"example": null,
"nullable": true,
"description": "ID of Server the Image is bound to. Only set for Images of type `backup`."
},
"disk_size": {
"type": "number",
"example": 10,
"description": "Size of the disk contained in the Image in GB"
},
"os_flavor": {
"enum": [
"ubuntu",
"centos",
"debian",
"fedora",
"rocky",
"alma",
"unknown"
],
"type": "string",
"example": "ubuntu",
"description": "Flavor of operating system contained in the Image"
},
"deprecated": {
"type": "string",
"example": "2018-02-28T00:00:00+00:00",
"nullable": true,
"description": "Point in time when the Image is considered to be deprecated (in ISO-8601 format)"
},
"image_size": {
"type": "number",
"example": 2.3,
"nullable": true,
"description": "Size of the Image file in our storage in GB. For snapshot Images this is the value relevant for calculating costs for the Image."
},
"os_version": {
"type": "string",
"example": "20.04",
"nullable": true,
"description": "Operating system version"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "Ubuntu 20.04 Standard 64 bit",
"description": "Description of the Image"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture this image is compatible with."
},
"created_from": {
"type": "object",
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server the Image was created from"
},
"name": {
"type": "string",
"example": "Server",
"description": "Server name at the time the Image was created"
}
},
"description": "Information about the Server the Image was created from"
},
"rapid_deploy": {
"type": "boolean",
"example": false,
"description": "Indicates that rapid deploy of the Image is available"
}
}
}
}
}
}
ImagesGetByIdResponse
{
"type": "object",
"properties": {
"image": {
"type": "object",
"required": [
"id",
"type",
"status",
"name",
"description",
"image_size",
"disk_size",
"created",
"created_from",
"bound_to",
"os_flavor",
"os_version",
"protection",
"deprecated",
"deleted",
"labels",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Image."
},
"name": {
"type": "string",
"example": "ubuntu-20.04",
"nullable": true,
"description": "Unique identifier of the Image. This value is only set for system Images."
},
"type": {
"enum": [
"system",
"app",
"snapshot",
"backup",
"temporary"
],
"type": "string",
"example": "snapshot",
"description": "Type of the Image"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"enum": [
"available",
"creating",
"unavailable"
],
"type": "string",
"description": "Whether the Image can be used or if it's still being created or unavailable"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"deleted": {
"type": "string",
"example": null,
"nullable": true,
"description": "Point in time where the Image was deleted (in ISO-8601 format)"
},
"bound_to": {
"type": "integer",
"format": "int64",
"example": null,
"nullable": true,
"description": "ID of Server the Image is bound to. Only set for Images of type `backup`."
},
"disk_size": {
"type": "number",
"example": 10,
"description": "Size of the disk contained in the Image in GB"
},
"os_flavor": {
"enum": [
"ubuntu",
"centos",
"debian",
"fedora",
"rocky",
"alma",
"unknown"
],
"type": "string",
"example": "ubuntu",
"description": "Flavor of operating system contained in the Image"
},
"deprecated": {
"type": "string",
"example": "2018-02-28T00:00:00+00:00",
"nullable": true,
"description": "Point in time when the Image is considered to be deprecated (in ISO-8601 format)"
},
"image_size": {
"type": "number",
"example": 2.3,
"nullable": true,
"description": "Size of the Image file in our storage in GB. For snapshot Images this is the value relevant for calculating costs for the Image."
},
"os_version": {
"type": "string",
"example": "20.04",
"nullable": true,
"description": "Operating system version"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "Ubuntu 20.04 Standard 64 bit",
"description": "Description of the Image"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture this image is compatible with."
},
"created_from": {
"type": "object",
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server the Image was created from"
},
"name": {
"type": "string",
"example": "Server",
"description": "Server name at the time the Image was created"
}
},
"description": "Information about the Server the Image was created from"
},
"rapid_deploy": {
"type": "boolean",
"example": false,
"description": "Indicates that rapid deploy of the Image is available"
}
}
}
}
}
ImagesUpdateImageByIdRequest
{
"type": "object",
"title": "UpdateImageRequest",
"properties": {
"type": {
"enum": [
"snapshot"
],
"type": "string",
"description": "Destination Image type to convert to"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"description": {
"type": "string",
"example": "My new Image description",
"description": "New description of Image"
}
}
}
ImagesUpdateImageByIdResponse
{
"type": "object",
"properties": {
"image": {
"type": "object",
"required": [
"id",
"type",
"status",
"name",
"description",
"image_size",
"disk_size",
"created",
"created_from",
"bound_to",
"os_flavor",
"os_version",
"protection",
"deprecated",
"deleted",
"labels",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Image."
},
"name": {
"type": "string",
"example": "ubuntu-20.04",
"nullable": true,
"description": "Unique identifier of the Image. This value is only set for system Images."
},
"type": {
"enum": [
"system",
"app",
"snapshot",
"backup",
"temporary"
],
"type": "string",
"example": "snapshot",
"description": "Type of the Image"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"enum": [
"available",
"creating",
"unavailable"
],
"type": "string",
"description": "Whether the Image can be used or if it's still being created or unavailable"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"deleted": {
"type": "string",
"example": null,
"nullable": true,
"description": "Point in time where the Image was deleted (in ISO-8601 format)"
},
"bound_to": {
"type": "integer",
"format": "int64",
"example": null,
"nullable": true,
"description": "ID of Server the Image is bound to. Only set for Images of type `backup`."
},
"disk_size": {
"type": "number",
"example": 10,
"description": "Size of the disk contained in the Image in GB"
},
"os_flavor": {
"enum": [
"ubuntu",
"centos",
"debian",
"fedora",
"rocky",
"alma",
"unknown"
],
"type": "string",
"example": "ubuntu",
"description": "Flavor of operating system contained in the Image"
},
"deprecated": {
"type": "string",
"example": "2018-02-28T00:00:00+00:00",
"nullable": true,
"description": "Point in time when the Image is considered to be deprecated (in ISO-8601 format)"
},
"image_size": {
"type": "number",
"example": 2.3,
"nullable": true,
"description": "Size of the Image file in our storage in GB. For snapshot Images this is the value relevant for calculating costs for the Image."
},
"os_version": {
"type": "string",
"example": "20.04",
"nullable": true,
"description": "Operating system version"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "Ubuntu 20.04 Standard 64 bit",
"description": "Description of the Image"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture this image is compatible with."
},
"created_from": {
"type": "object",
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server the Image was created from"
},
"name": {
"type": "string",
"example": "Server",
"description": "Server name at the time the Image was created"
}
},
"description": "Information about the Server the Image was created from"
},
"rapid_deploy": {
"type": "boolean",
"example": false,
"description": "Indicates that rapid deploy of the Image is available"
}
}
}
}
}
IsOsGetAllResponse
{
"type": "object",
"required": [
"isos",
"meta"
],
"properties": {
"isos": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"description",
"type",
"deprecation",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the ISO."
},
"name": {
"type": "string",
"example": "FreeBSD-11.0-RELEASE-amd64-dvd1",
"nullable": true,
"description": "Unique identifier of the ISO. Only set for public ISOs"
},
"type": {
"enum": [
"public",
"private"
],
"type": "string",
"nullable": true,
"description": "Type of the ISO"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "FreeBSD 11.0 x64",
"description": "Description of the ISO"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"nullable": true,
"description": "Type of cpu architecture this iso is compatible with. Null indicates no restriction on the architecture (wildcard)."
}
}
}
},
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
}
}
}
IsOsGetResponse
{
"type": "object",
"required": [
"iso"
],
"properties": {
"iso": {
"type": "object",
"required": [
"id",
"name",
"description",
"type",
"deprecation",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the ISO."
},
"name": {
"type": "string",
"example": "FreeBSD-11.0-RELEASE-amd64-dvd1",
"nullable": true,
"description": "Unique identifier of the ISO. Only set for public ISOs"
},
"type": {
"enum": [
"public",
"private"
],
"type": "string",
"nullable": true,
"description": "Type of the ISO"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "FreeBSD 11.0 x64",
"description": "Description of the ISO"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"nullable": true,
"description": "Type of cpu architecture this iso is compatible with. Null indicates no restriction on the architecture (wildcard)."
}
}
}
}
}
Labels
{
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
}
ListMeta
{
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
}
LoadBalancerActionsAddServiceRequest
{
"type": "object",
"title": "LoadBalancerService",
"required": [
"protocol",
"listen_port",
"destination_port",
"proxyprotocol",
"health_check"
],
"properties": {
"http": {
"type": "object",
"title": "LoadBalancerServiceHTTP",
"properties": {
"cookie_name": {
"type": "string",
"default": "HCLBSTICKY",
"example": "HCLBSTICKY",
"description": "Name of the cookie used for sticky sessions."
},
"certificates": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
897
],
"description": "IDs of the Certificates to use for TLS/SSL termination by the Load Balancer; empty for TLS/SSL passthrough or if `protocol` is `http`."
},
"redirect_http": {
"type": "boolean",
"default": false,
"example": true,
"description": "Redirect HTTP requests to HTTPS. Only available if `protocol` is `https`."
},
"cookie_lifetime": {
"type": "integer",
"default": 300,
"example": 300,
"description": "Lifetime of the cookie used for sticky sessions (in seconds)."
},
"sticky_sessions": {
"type": "boolean",
"default": false,
"example": true,
"description": "Use sticky sessions. Only available if `protocol` is `http` or `https`."
}
},
"description": "Configuration option for protocols http and https"
},
"protocol": {
"enum": [
"tcp",
"http",
"https"
],
"type": "string",
"example": "https",
"description": "Protocol of the Load Balancer"
},
"listen_port": {
"type": "integer",
"example": 443,
"description": "Port the Load Balancer listens on"
},
"health_check": {
"type": "object",
"title": "LoadBalancerServiceHealthCheck",
"required": [
"protocol",
"port",
"interval",
"timeout",
"retries"
],
"properties": {
"http": {
"type": "object",
"required": [
"domain",
"path"
],
"properties": {
"tls": {
"type": "boolean",
"example": false,
"description": "Use HTTPS for health check"
},
"path": {
"type": "string",
"example": "/",
"description": "HTTP path to use for health checks. May not contain literal spaces, use percent-encoding instead."
},
"domain": {
"type": "string",
"example": "example.com",
"nullable": true,
"description": "Host header to send in the HTTP request. May not contain spaces, percent or backslash symbols. Can be null, in that case no host header is sent."
},
"response": {
"type": "string",
"example": "{\"status\": \"ok\"}",
"description": "String that must be contained in HTTP response in order to pass the health check"
},
"status_codes": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"2??",
"3??"
],
"example": [
"2??",
"3??"
],
"description": "List of returned HTTP status codes in order to pass the health check. Supports the wildcards `?` for exactly one character and `*` for multiple ones."
}
},
"description": "Additional configuration for protocol http"
},
"port": {
"type": "integer",
"example": 4711,
"description": "Port the health check will be performed on"
},
"retries": {
"type": "integer",
"example": 3,
"description": "Unsuccessful retries needed until a target is considered unhealthy; an unhealthy target needs the same number of successful retries to become healthy again"
},
"timeout": {
"type": "integer",
"example": 10,
"description": "Time in seconds after an attempt is considered a timeout"
},
"interval": {
"type": "integer",
"example": 15,
"description": "Time interval in seconds health checks are performed"
},
"protocol": {
"enum": [
"tcp",
"http"
],
"type": "string",
"example": "http",
"description": "Type of the health check"
}
},
"description": "Service health check"
},
"proxyprotocol": {
"type": "boolean",
"example": false,
"description": "Is Proxyprotocol enabled or not"
},
"destination_port": {
"type": "integer",
"example": 80,
"description": "Port the Load Balancer will balance to"
}
}
}
LoadBalancerActionsAddServiceResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsAddTargetRequest
{
"type": "object",
"title": "AddTargetRequest",
"required": [
"type"
],
"properties": {
"ip": {
"type": "object",
"title": "LoadBalancerTargetIP",
"required": [
"ip"
],
"properties": {
"ip": {
"type": "string",
"example": "203.0.113.1",
"description": "IP of a server that belongs to the same customer (public IPv4/IPv6) or private IP in a Subnetwork type vswitch."
}
},
"description": "IP targets where the traffic should be routed to. It is only possible to use the (Public or vSwitch) IPs of Hetzner Online Root Servers belonging to the project owner. IPs belonging to other users are blocked. Additionally IPs belonging to services provided by Hetzner Cloud (Servers, Load Balancers, ...) are blocked as well. Only present for target type \"ip\"."
},
"type": {
"enum": [
"server",
"label_selector",
"ip"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Configuration for type Server, required if type is `server`"
},
"label_selector": {
"type": "object",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
},
"description": "Configuration for label selector targets, required if type is `label_selector`"
},
"use_private_ip": {
"type": "boolean",
"default": false,
"example": true,
"description": "Use the private network IP instead of the public IP of the Server, requires the Server and Load Balancer to be in the same network."
}
}
}
LoadBalancerActionsAddTargetResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsAttachToNetworkRequest
{
"type": "object",
"required": [
"network"
],
"properties": {
"ip": {
"type": "string",
"example": "10.0.1.1",
"description": "IP to request to be assigned to this Load Balancer; if you do not provide this then you will be auto assigned an IP address"
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of an existing network to attach the Load Balancer to"
}
}
}
LoadBalancerActionsAttachToNetworkResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsChangeAlgorithmRequest
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"round_robin",
"least_connections"
],
"type": "string",
"description": "Algorithm of the Load Balancer"
}
}
}
LoadBalancerActionsChangeAlgorithmResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsChangeDnsPtrRequest
{
"type": "object",
"title": "ChangeLoadbalancerDnsPtrRequest",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "1.2.3.4",
"description": "Public IP address for which the reverse DNS entry should be set"
},
"dns_ptr": {
"type": "string",
"example": "lb1.example.com",
"nullable": true,
"description": "Hostname to set as a reverse DNS PTR entry"
}
}
}
LoadBalancerActionsChangeDnsPtrResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsChangeProtectionRequest
{
"type": "object",
"properties": {
"delete": {
"type": "boolean",
"example": true,
"description": "If true, prevents the Load Balancer from being deleted"
}
}
}
LoadBalancerActionsChangeProtectionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsChangeTypeRequest
{
"type": "object",
"title": "ChangeTypeRequest",
"required": [
"load_balancer_type"
],
"properties": {
"load_balancer_type": {
"type": "string",
"example": "lb21",
"description": "ID or name of Load Balancer type the Load Balancer should migrate to"
}
}
}
LoadBalancerActionsChangeTypeResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsDeleteServiceRequest
{
"type": "object",
"required": [
"listen_port"
],
"properties": {
"listen_port": {
"type": "integer",
"example": 443,
"description": "The listen port of the service you want to delete"
}
}
}
LoadBalancerActionsDeleteServiceResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsDetachFromNetworkRequest
{
"type": "object",
"required": [
"network"
],
"properties": {
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of an existing network to detach the Load Balancer from"
}
}
}
LoadBalancerActionsDetachFromNetworkResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsDisablePublicInterfaceResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsEnablePublicInterfaceResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsGetAllActions200Response
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
LoadBalancerActionsGetAllActionsResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
LoadBalancerActionsGetSpecificAction200Response
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsGetSpecificActionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsRemoveTargetRequest
{
"type": "object",
"title": "RemoveTargetRequest",
"required": [
"type"
],
"properties": {
"ip": {
"type": "object",
"title": "LoadBalancerTargetIP",
"required": [
"ip"
],
"properties": {
"ip": {
"type": "string",
"example": "203.0.113.1",
"description": "IP of a server that belongs to the same customer (public IPv4/IPv6) or private IP in a Subnetwork type vswitch."
}
},
"description": "IP targets where the traffic should be routed to. It is only possible to use the (Public or vSwitch) IPs of Hetzner Online Root Servers belonging to the project owner. IPs belonging to other users are blocked. Additionally IPs belonging to services provided by Hetzner Cloud (Servers, Load Balancers, ...) are blocked as well. Only present for target type \"ip\"."
},
"type": {
"enum": [
"server",
"label_selector",
"ip"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Configuration for type Server, required if type is `server`"
},
"label_selector": {
"type": "object",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
},
"description": "Configuration for label selector targets, required if type is `label_selector`"
}
}
}
LoadBalancerActionsRemoveTargetResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerActionsUpdateServiceRequest
{
"type": "object",
"title": "UpdateLoadBalancerService",
"required": [
"listen_port"
],
"properties": {
"http": {
"type": "object",
"title": "LoadBalancerServiceHTTP",
"properties": {
"cookie_name": {
"type": "string",
"example": "HCLBSTICKY",
"description": "Name of the cookie used for sticky sessions"
},
"certificates": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
897
],
"description": "IDs of the Certificates to use for TLS/SSL termination by the Load Balancer; empty for TLS/SSL passthrough or if `protocol` is \"http\""
},
"redirect_http": {
"type": "boolean",
"default": false,
"example": true,
"description": "Redirect HTTP requests to HTTPS. Only available if protocol is \"https\"."
},
"cookie_lifetime": {
"type": "integer",
"example": 300,
"description": "Lifetime of the cookie used for sticky sessions (in seconds)"
},
"sticky_sessions": {
"type": "boolean",
"default": false,
"example": true,
"description": "Use sticky sessions. Only available if protocol is \"http\" or \"https\"."
}
},
"description": "Configuration option for protocols http and https"
},
"protocol": {
"enum": [
"tcp",
"http",
"https"
],
"type": "string",
"example": "https",
"description": "Protocol of the Load Balancer"
},
"listen_port": {
"type": "integer",
"example": 443,
"description": "Port the Load Balancer listens on"
},
"health_check": {
"type": "object",
"title": "UpdateLoadBalancerServiceHealthCheck",
"properties": {
"http": {
"type": "object",
"properties": {
"tls": {
"type": "boolean",
"example": false,
"description": "Use HTTPS for health check"
},
"path": {
"type": "string",
"example": "/",
"description": "HTTP path to use for health checks. May not contain literal spaces, use percent-encoding instead."
},
"domain": {
"type": "string",
"example": "example.com",
"nullable": true,
"description": "Host header to send in the HTTP request. May not contain spaces, percent or backslash symbols. Can be null, in that case no host header is sent."
},
"response": {
"type": "string",
"example": "{\"status\": \"ok\"}",
"description": "String that must be contained in HTTP response in order to pass the health check"
},
"status_codes": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"2??",
"3??"
],
"example": [
"2??",
"3??"
],
"description": "List of returned HTTP status codes in order to pass the health check. Supports the wildcards `?` for exactly one character and `*` for multiple ones."
}
},
"description": "Additional configuration for protocol http"
},
"port": {
"type": "integer",
"example": 4711,
"description": "Port the health check will be performed on"
},
"retries": {
"type": "integer",
"example": 3,
"description": "Unsuccessful retries needed until a target is considered unhealthy; an unhealthy target needs the same number of successful retries to become healthy again"
},
"timeout": {
"type": "integer",
"example": 10,
"description": "Time in seconds after an attempt is considered a timeout"
},
"interval": {
"type": "integer",
"example": 15,
"description": "Time interval in seconds health checks are performed"
},
"protocol": {
"enum": [
"tcp",
"http"
],
"type": "string",
"example": "http",
"description": "Type of the health check"
}
},
"description": "Service health check"
},
"proxyprotocol": {
"type": "boolean",
"example": false,
"description": "Is Proxyprotocol enabled or not"
},
"destination_port": {
"type": "integer",
"example": 80,
"description": "Port the Load Balancer will balance to"
}
}
}
LoadBalancerActionsUpdateServiceResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
LoadBalancerID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Load Balancer."
}
LoadBalancerTypeID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Load Balancer Type."
}
LoadBalancerTypesGetAllTypesResponse
{
"type": "object",
"required": [
"load_balancer_types"
],
"properties": {
"load_balancer_types": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"description",
"max_connections",
"max_services",
"max_targets",
"max_assigned_certificates",
"deprecated",
"prices"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Load Balancer type"
},
"name": {
"type": "string",
"example": "lb11",
"description": "Unique identifier of the Load Balancer type"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for."
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Hourly costs for a Resource in this Location."
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Monthly costs for a Resource in this Location."
}
}
},
"description": "Prices in different network zones"
},
"deprecated": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"nullable": true,
"description": "Point in time when the Load Balancer type is deprecated (in ISO-8601 format)"
},
"description": {
"type": "string",
"example": "LB11",
"description": "Description of the Load Balancer type"
},
"max_targets": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Number of targets a single Load Balancer can have"
},
"max_services": {
"type": "integer",
"format": "int64",
"example": 5,
"description": "Number of services a Load Balancer of this type can have"
},
"max_connections": {
"type": "integer",
"format": "int64",
"example": 20000,
"description": "Number of maximum simultaneous open connections"
},
"max_assigned_certificates": {
"type": "integer",
"format": "int64",
"example": 10,
"description": "Number of SSL Certificates that can be assigned to a single Load Balancer"
}
}
}
}
}
}
LoadBalancerTypesGetByIdResponse
{
"type": "object",
"properties": {
"load_balancer_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"max_connections",
"max_services",
"max_targets",
"max_assigned_certificates",
"deprecated",
"prices"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Load Balancer type"
},
"name": {
"type": "string",
"example": "lb11",
"description": "Unique identifier of the Load Balancer type"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for."
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Hourly costs for a Resource in this Location."
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Monthly costs for a Resource in this Location."
}
}
},
"description": "Prices in different network zones"
},
"deprecated": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"nullable": true,
"description": "Point in time when the Load Balancer type is deprecated (in ISO-8601 format)"
},
"description": {
"type": "string",
"example": "LB11",
"description": "Description of the Load Balancer type"
},
"max_targets": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Number of targets a single Load Balancer can have"
},
"max_services": {
"type": "integer",
"format": "int64",
"example": 5,
"description": "Number of services a Load Balancer of this type can have"
},
"max_connections": {
"type": "integer",
"format": "int64",
"example": 20000,
"description": "Number of maximum simultaneous open connections"
},
"max_assigned_certificates": {
"type": "integer",
"format": "int64",
"example": 10,
"description": "Number of SSL Certificates that can be assigned to a single Load Balancer"
}
}
}
}
}
LoadBalancersCreateLoadBalancerRequest
{
"type": "object",
"title": "CreateLoadBalancerRequest",
"required": [
"name",
"load_balancer_type"
],
"properties": {
"name": {
"type": "string",
"example": "Web Frontend",
"description": "Name of the Load Balancer"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"network": {
"type": "integer",
"format": "int64",
"example": 123,
"description": "ID of the network the Load Balancer should be attached to on creation"
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTarget",
"required": [
"type"
],
"properties": {
"ip": {
"type": "object",
"title": "LoadBalancerTargetIP",
"required": [
"ip"
],
"properties": {
"ip": {
"type": "string",
"example": "203.0.113.1",
"description": "IP of a server that belongs to the same customer (public IPv4/IPv6) or private IP in a Subnetwork type vswitch."
}
},
"description": "IP targets where the traffic should be routed to. It is only possible to use the (Public or vSwitch) IPs of Hetzner Online Root Servers belonging to the project owner. IPs belonging to other users are blocked. Additionally IPs belonging to services provided by Hetzner Cloud (Servers, Load Balancers, ...) are blocked as well. Only present for target type \"ip\"."
},
"type": {
"enum": [
"server",
"label_selector",
"ip"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTargetTarget",
"properties": {
"type": {
"type": "string",
"example": "server",
"description": "Type of the resource. Here always \"server\"."
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "List of resolved label selector target Servers. Only present for type \"label_selector\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"label_selector": {
"type": "object",
"title": "LoadBalancerTargetLabelSelector",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
},
"description": "Label selector used to determine targets. Only present for target type \"label_selector\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "Array of targets"
},
"location": {
"type": "string",
"description": "ID or name of Location to create Load Balancer in"
},
"services": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerService",
"required": [
"protocol",
"listen_port",
"destination_port",
"proxyprotocol",
"health_check"
],
"properties": {
"http": {
"type": "object",
"title": "LoadBalancerServiceHTTP",
"properties": {
"cookie_name": {
"type": "string",
"default": "HCLBSTICKY",
"example": "HCLBSTICKY",
"description": "Name of the cookie used for sticky sessions."
},
"certificates": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
897
],
"description": "IDs of the Certificates to use for TLS/SSL termination by the Load Balancer; empty for TLS/SSL passthrough or if `protocol` is `http`."
},
"redirect_http": {
"type": "boolean",
"default": false,
"example": true,
"description": "Redirect HTTP requests to HTTPS. Only available if `protocol` is `https`."
},
"cookie_lifetime": {
"type": "integer",
"default": 300,
"example": 300,
"description": "Lifetime of the cookie used for sticky sessions (in seconds)."
},
"sticky_sessions": {
"type": "boolean",
"default": false,
"example": true,
"description": "Use sticky sessions. Only available if `protocol` is `http` or `https`."
}
},
"description": "Configuration option for protocols http and https"
},
"protocol": {
"enum": [
"tcp",
"http",
"https"
],
"type": "string",
"example": "https",
"description": "Protocol of the Load Balancer"
},
"listen_port": {
"type": "integer",
"example": 443,
"description": "Port the Load Balancer listens on"
},
"health_check": {
"type": "object",
"title": "LoadBalancerServiceHealthCheck",
"required": [
"protocol",
"port",
"interval",
"timeout",
"retries"
],
"properties": {
"http": {
"type": "object",
"required": [
"domain",
"path"
],
"properties": {
"tls": {
"type": "boolean",
"example": false,
"description": "Use HTTPS for health check"
},
"path": {
"type": "string",
"example": "/",
"description": "HTTP path to use for health checks. May not contain literal spaces, use percent-encoding instead."
},
"domain": {
"type": "string",
"example": "example.com",
"nullable": true,
"description": "Host header to send in the HTTP request. May not contain spaces, percent or backslash symbols. Can be null, in that case no host header is sent."
},
"response": {
"type": "string",
"example": "{\"status\": \"ok\"}",
"description": "String that must be contained in HTTP response in order to pass the health check"
},
"status_codes": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"2??",
"3??"
],
"example": [
"2??",
"3??"
],
"description": "List of returned HTTP status codes in order to pass the health check. Supports the wildcards `?` for exactly one character and `*` for multiple ones."
}
},
"description": "Additional configuration for protocol http"
},
"port": {
"type": "integer",
"example": 4711,
"description": "Port the health check will be performed on"
},
"retries": {
"type": "integer",
"example": 3,
"description": "Unsuccessful retries needed until a target is considered unhealthy; an unhealthy target needs the same number of successful retries to become healthy again"
},
"timeout": {
"type": "integer",
"example": 10,
"description": "Time in seconds after an attempt is considered a timeout"
},
"interval": {
"type": "integer",
"example": 15,
"description": "Time interval in seconds health checks are performed"
},
"protocol": {
"enum": [
"tcp",
"http"
],
"type": "string",
"example": "http",
"description": "Type of the health check"
}
},
"description": "Service health check"
},
"proxyprotocol": {
"type": "boolean",
"example": false,
"description": "Is Proxyprotocol enabled or not"
},
"destination_port": {
"type": "integer",
"example": 80,
"description": "Port the Load Balancer will balance to"
}
}
},
"description": "Array of services"
},
"algorithm": {
"type": "object",
"title": "LoadBalancerAlgorithm",
"default": {
"type": "round_robin"
},
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"round_robin",
"least_connections"
],
"type": "string",
"default": "round_robin",
"description": "Type of the algorithm."
}
},
"description": "Algorithm of the Load Balancer"
},
"network_zone": {
"type": "string",
"example": "eu-central",
"description": "Name of network zone"
},
"public_interface": {
"type": "boolean",
"example": true,
"description": "Enable or disable the public interface of the Load Balancer"
},
"load_balancer_type": {
"type": "string",
"example": "lb11",
"description": "ID or name of the Load Balancer type this Load Balancer should be created with"
}
}
}
LoadBalancersCreateLoadBalancerResponse
{
"type": "object",
"required": [
"load_balancer",
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"load_balancer": {
"type": "object",
"required": [
"id",
"name",
"public_net",
"private_net",
"location",
"load_balancer_type",
"protection",
"labels",
"created",
"services",
"targets",
"algorithm",
"outgoing_traffic",
"ingoing_traffic",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Load Balancer."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTarget",
"required": [
"type"
],
"properties": {
"ip": {
"type": "object",
"title": "LoadBalancerTargetIP",
"required": [
"ip"
],
"properties": {
"ip": {
"type": "string",
"example": "203.0.113.1",
"description": "IP of a server that belongs to the same customer (public IPv4/IPv6) or private IP in a Subnetwork type vswitch."
}
},
"description": "IP targets where the traffic should be routed to. It is only possible to use the (Public or vSwitch) IPs of Hetzner Online Root Servers belonging to the project owner. IPs belonging to other users are blocked. Additionally IPs belonging to services provided by Hetzner Cloud (Servers, Load Balancers, ...) are blocked as well. Only present for target type \"ip\"."
},
"type": {
"enum": [
"server",
"label_selector",
"ip"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTargetTarget",
"properties": {
"type": {
"type": "string",
"example": "server",
"description": "Type of the resource. Here always \"server\"."
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "List of resolved label selector target Servers. Only present for type \"label_selector\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"label_selector": {
"type": "object",
"title": "LoadBalancerTargetLabelSelector",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
},
"description": "Label selector used to determine targets. Only present for target type \"label_selector\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "List of targets that belong to this Load Balancer"
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
}
},
"services": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerService",
"required": [
"protocol",
"listen_port",
"destination_port",
"proxyprotocol",
"health_check"
],
"properties": {
"http": {
"type": "object",
"title": "LoadBalancerServiceHTTP",
"properties": {
"cookie_name": {
"type": "string",
"default": "HCLBSTICKY",
"example": "HCLBSTICKY",
"description": "Name of the cookie used for sticky sessions."
},
"certificates": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
897
],
"description": "IDs of the Certificates to use for TLS/SSL termination by the Load Balancer; empty for TLS/SSL passthrough or if `protocol` is `http`."
},
"redirect_http": {
"type": "boolean",
"default": false,
"example": true,
"description": "Redirect HTTP requests to HTTPS. Only available if `protocol` is `https`."
},
"cookie_lifetime": {
"type": "integer",
"default": 300,
"example": 300,
"description": "Lifetime of the cookie used for sticky sessions (in seconds)."
},
"sticky_sessions": {
"type": "boolean",
"default": false,
"example": true,
"description": "Use sticky sessions. Only available if `protocol` is `http` or `https`."
}
},
"description": "Configuration option for protocols http and https"
},
"protocol": {
"enum": [
"tcp",
"http",
"https"
],
"type": "string",
"example": "https",
"description": "Protocol of the Load Balancer"
},
"listen_port": {
"type": "integer",
"example": 443,
"description": "Port the Load Balancer listens on"
},
"health_check": {
"type": "object",
"title": "LoadBalancerServiceHealthCheck",
"required": [
"protocol",
"port",
"interval",
"timeout",
"retries"
],
"properties": {
"http": {
"type": "object",
"required": [
"domain",
"path"
],
"properties": {
"tls": {
"type": "boolean",
"example": false,
"description": "Use HTTPS for health check"
},
"path": {
"type": "string",
"example": "/",
"description": "HTTP path to use for health checks. May not contain literal spaces, use percent-encoding instead."
},
"domain": {
"type": "string",
"example": "example.com",
"nullable": true,
"description": "Host header to send in the HTTP request. May not contain spaces, percent or backslash symbols. Can be null, in that case no host header is sent."
},
"response": {
"type": "string",
"example": "{\"status\": \"ok\"}",
"description": "String that must be contained in HTTP response in order to pass the health check"
},
"status_codes": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"2??",
"3??"
],
"example": [
"2??",
"3??"
],
"description": "List of returned HTTP status codes in order to pass the health check. Supports the wildcards `?` for exactly one character and `*` for multiple ones."
}
},
"description": "Additional configuration for protocol http"
},
"port": {
"type": "integer",
"example": 4711,
"description": "Port the health check will be performed on"
},
"retries": {
"type": "integer",
"example": 3,
"description": "Unsuccessful retries needed until a target is considered unhealthy; an unhealthy target needs the same number of successful retries to become healthy again"
},
"timeout": {
"type": "integer",
"example": 10,
"description": "Time in seconds after an attempt is considered a timeout"
},
"interval": {
"type": "integer",
"example": 15,
"description": "Time interval in seconds health checks are performed"
},
"protocol": {
"enum": [
"tcp",
"http"
],
"type": "string",
"example": "http",
"description": "Type of the health check"
}
},
"description": "Service health check"
},
"proxyprotocol": {
"type": "boolean",
"example": false,
"description": "Is Proxyprotocol enabled or not"
},
"destination_port": {
"type": "integer",
"example": 80,
"description": "Port the Load Balancer will balance to"
}
}
},
"description": "List of services that belong to this Load Balancer"
},
"algorithm": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"round_robin",
"least_connections"
],
"type": "string",
"description": "Type of the algorithm"
}
},
"description": "Algorithm of the Load Balancer"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"public_net": {
"type": "object",
"required": [
"enabled",
"ipv4",
"ipv6"
],
"properties": {
"ipv4": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "1.2.3.4",
"nullable": true,
"description": "IP address (v4) of this Load Balancer"
},
"dns_ptr": {
"type": "string",
"example": "lb1.example.com",
"nullable": true,
"description": "Reverse DNS PTR entry for the IPv4 address of this Load Balancer"
}
},
"description": "IP address (v4)"
},
"ipv6": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"nullable": true,
"description": "IP address (v6) of this Load Balancer"
},
"dns_ptr": {
"type": "string",
"example": "lb1.example.com",
"nullable": true,
"description": "Reverse DNS PTR entry for the IPv6 address of this Load Balancer"
}
},
"description": "IP address (v6)"
},
"enabled": {
"type": "boolean",
"description": "Public Interface enabled or not"
}
},
"description": "Public network information"
},
"private_net": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "10.0.0.2",
"description": "IP address (v4) of this Load Balancer in this Network"
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of the Network"
}
}
},
"description": "Private networks information"
},
"ingoing_traffic": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Inbound Traffic for the current billing period in bytes"
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 10000,
"description": "Free Traffic for the current billing period in bytes"
},
"outgoing_traffic": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Outbound Traffic for the current billing period in bytes"
},
"load_balancer_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"max_connections",
"max_services",
"max_targets",
"max_assigned_certificates",
"deprecated",
"prices"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Load Balancer type"
},
"name": {
"type": "string",
"example": "lb11",
"description": "Unique identifier of the Load Balancer type"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for."
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Hourly costs for a Resource in this Location."
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Monthly costs for a Resource in this Location."
}
}
},
"description": "Prices in different network zones"
},
"deprecated": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"nullable": true,
"description": "Point in time when the Load Balancer type is deprecated (in ISO-8601 format)"
},
"description": {
"type": "string",
"example": "LB11",
"description": "Description of the Load Balancer type"
},
"max_targets": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Number of targets a single Load Balancer can have"
},
"max_services": {
"type": "integer",
"format": "int64",
"example": 5,
"description": "Number of services a Load Balancer of this type can have"
},
"max_connections": {
"type": "integer",
"format": "int64",
"example": 20000,
"description": "Number of maximum simultaneous open connections"
},
"max_assigned_certificates": {
"type": "integer",
"format": "int64",
"example": 10,
"description": "Number of SSL Certificates that can be assigned to a single Load Balancer"
}
}
}
}
}
}
}
LoadBalancersGetAllResponse
{
"type": "object",
"required": [
"load_balancers",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"load_balancers": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"public_net",
"private_net",
"location",
"load_balancer_type",
"protection",
"labels",
"created",
"services",
"targets",
"algorithm",
"outgoing_traffic",
"ingoing_traffic",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Load Balancer."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTarget",
"required": [
"type"
],
"properties": {
"ip": {
"type": "object",
"title": "LoadBalancerTargetIP",
"required": [
"ip"
],
"properties": {
"ip": {
"type": "string",
"example": "203.0.113.1",
"description": "IP of a server that belongs to the same customer (public IPv4/IPv6) or private IP in a Subnetwork type vswitch."
}
},
"description": "IP targets where the traffic should be routed to. It is only possible to use the (Public or vSwitch) IPs of Hetzner Online Root Servers belonging to the project owner. IPs belonging to other users are blocked. Additionally IPs belonging to services provided by Hetzner Cloud (Servers, Load Balancers, ...) are blocked as well. Only present for target type \"ip\"."
},
"type": {
"enum": [
"server",
"label_selector",
"ip"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTargetTarget",
"properties": {
"type": {
"type": "string",
"example": "server",
"description": "Type of the resource. Here always \"server\"."
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "List of resolved label selector target Servers. Only present for type \"label_selector\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"label_selector": {
"type": "object",
"title": "LoadBalancerTargetLabelSelector",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
},
"description": "Label selector used to determine targets. Only present for target type \"label_selector\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "List of targets that belong to this Load Balancer"
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
}
},
"services": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerService",
"required": [
"protocol",
"listen_port",
"destination_port",
"proxyprotocol",
"health_check"
],
"properties": {
"http": {
"type": "object",
"title": "LoadBalancerServiceHTTP",
"properties": {
"cookie_name": {
"type": "string",
"default": "HCLBSTICKY",
"example": "HCLBSTICKY",
"description": "Name of the cookie used for sticky sessions."
},
"certificates": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
897
],
"description": "IDs of the Certificates to use for TLS/SSL termination by the Load Balancer; empty for TLS/SSL passthrough or if `protocol` is `http`."
},
"redirect_http": {
"type": "boolean",
"default": false,
"example": true,
"description": "Redirect HTTP requests to HTTPS. Only available if `protocol` is `https`."
},
"cookie_lifetime": {
"type": "integer",
"default": 300,
"example": 300,
"description": "Lifetime of the cookie used for sticky sessions (in seconds)."
},
"sticky_sessions": {
"type": "boolean",
"default": false,
"example": true,
"description": "Use sticky sessions. Only available if `protocol` is `http` or `https`."
}
},
"description": "Configuration option for protocols http and https"
},
"protocol": {
"enum": [
"tcp",
"http",
"https"
],
"type": "string",
"example": "https",
"description": "Protocol of the Load Balancer"
},
"listen_port": {
"type": "integer",
"example": 443,
"description": "Port the Load Balancer listens on"
},
"health_check": {
"type": "object",
"title": "LoadBalancerServiceHealthCheck",
"required": [
"protocol",
"port",
"interval",
"timeout",
"retries"
],
"properties": {
"http": {
"type": "object",
"required": [
"domain",
"path"
],
"properties": {
"tls": {
"type": "boolean",
"example": false,
"description": "Use HTTPS for health check"
},
"path": {
"type": "string",
"example": "/",
"description": "HTTP path to use for health checks. May not contain literal spaces, use percent-encoding instead."
},
"domain": {
"type": "string",
"example": "example.com",
"nullable": true,
"description": "Host header to send in the HTTP request. May not contain spaces, percent or backslash symbols. Can be null, in that case no host header is sent."
},
"response": {
"type": "string",
"example": "{\"status\": \"ok\"}",
"description": "String that must be contained in HTTP response in order to pass the health check"
},
"status_codes": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"2??",
"3??"
],
"example": [
"2??",
"3??"
],
"description": "List of returned HTTP status codes in order to pass the health check. Supports the wildcards `?` for exactly one character and `*` for multiple ones."
}
},
"description": "Additional configuration for protocol http"
},
"port": {
"type": "integer",
"example": 4711,
"description": "Port the health check will be performed on"
},
"retries": {
"type": "integer",
"example": 3,
"description": "Unsuccessful retries needed until a target is considered unhealthy; an unhealthy target needs the same number of successful retries to become healthy again"
},
"timeout": {
"type": "integer",
"example": 10,
"description": "Time in seconds after an attempt is considered a timeout"
},
"interval": {
"type": "integer",
"example": 15,
"description": "Time interval in seconds health checks are performed"
},
"protocol": {
"enum": [
"tcp",
"http"
],
"type": "string",
"example": "http",
"description": "Type of the health check"
}
},
"description": "Service health check"
},
"proxyprotocol": {
"type": "boolean",
"example": false,
"description": "Is Proxyprotocol enabled or not"
},
"destination_port": {
"type": "integer",
"example": 80,
"description": "Port the Load Balancer will balance to"
}
}
},
"description": "List of services that belong to this Load Balancer"
},
"algorithm": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"round_robin",
"least_connections"
],
"type": "string",
"description": "Type of the algorithm"
}
},
"description": "Algorithm of the Load Balancer"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"public_net": {
"type": "object",
"required": [
"enabled",
"ipv4",
"ipv6"
],
"properties": {
"ipv4": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "1.2.3.4",
"nullable": true,
"description": "IP address (v4) of this Load Balancer"
},
"dns_ptr": {
"type": "string",
"example": "lb1.example.com",
"nullable": true,
"description": "Reverse DNS PTR entry for the IPv4 address of this Load Balancer"
}
},
"description": "IP address (v4)"
},
"ipv6": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"nullable": true,
"description": "IP address (v6) of this Load Balancer"
},
"dns_ptr": {
"type": "string",
"example": "lb1.example.com",
"nullable": true,
"description": "Reverse DNS PTR entry for the IPv6 address of this Load Balancer"
}
},
"description": "IP address (v6)"
},
"enabled": {
"type": "boolean",
"description": "Public Interface enabled or not"
}
},
"description": "Public network information"
},
"private_net": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "10.0.0.2",
"description": "IP address (v4) of this Load Balancer in this Network"
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of the Network"
}
}
},
"description": "Private networks information"
},
"ingoing_traffic": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Inbound Traffic for the current billing period in bytes"
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 10000,
"description": "Free Traffic for the current billing period in bytes"
},
"outgoing_traffic": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Outbound Traffic for the current billing period in bytes"
},
"load_balancer_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"max_connections",
"max_services",
"max_targets",
"max_assigned_certificates",
"deprecated",
"prices"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Load Balancer type"
},
"name": {
"type": "string",
"example": "lb11",
"description": "Unique identifier of the Load Balancer type"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for."
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Hourly costs for a Resource in this Location."
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Monthly costs for a Resource in this Location."
}
}
},
"description": "Prices in different network zones"
},
"deprecated": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"nullable": true,
"description": "Point in time when the Load Balancer type is deprecated (in ISO-8601 format)"
},
"description": {
"type": "string",
"example": "LB11",
"description": "Description of the Load Balancer type"
},
"max_targets": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Number of targets a single Load Balancer can have"
},
"max_services": {
"type": "integer",
"format": "int64",
"example": 5,
"description": "Number of services a Load Balancer of this type can have"
},
"max_connections": {
"type": "integer",
"format": "int64",
"example": 20000,
"description": "Number of maximum simultaneous open connections"
},
"max_assigned_certificates": {
"type": "integer",
"format": "int64",
"example": 10,
"description": "Number of SSL Certificates that can be assigned to a single Load Balancer"
}
}
}
}
}
}
}
}
LoadBalancersGetByIdResponse
{
"type": "object",
"required": [
"load_balancer"
],
"properties": {
"load_balancer": {
"type": "object",
"required": [
"id",
"name",
"public_net",
"private_net",
"location",
"load_balancer_type",
"protection",
"labels",
"created",
"services",
"targets",
"algorithm",
"outgoing_traffic",
"ingoing_traffic",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Load Balancer."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTarget",
"required": [
"type"
],
"properties": {
"ip": {
"type": "object",
"title": "LoadBalancerTargetIP",
"required": [
"ip"
],
"properties": {
"ip": {
"type": "string",
"example": "203.0.113.1",
"description": "IP of a server that belongs to the same customer (public IPv4/IPv6) or private IP in a Subnetwork type vswitch."
}
},
"description": "IP targets where the traffic should be routed to. It is only possible to use the (Public or vSwitch) IPs of Hetzner Online Root Servers belonging to the project owner. IPs belonging to other users are blocked. Additionally IPs belonging to services provided by Hetzner Cloud (Servers, Load Balancers, ...) are blocked as well. Only present for target type \"ip\"."
},
"type": {
"enum": [
"server",
"label_selector",
"ip"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTargetTarget",
"properties": {
"type": {
"type": "string",
"example": "server",
"description": "Type of the resource. Here always \"server\"."
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "List of resolved label selector target Servers. Only present for type \"label_selector\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"label_selector": {
"type": "object",
"title": "LoadBalancerTargetLabelSelector",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
},
"description": "Label selector used to determine targets. Only present for target type \"label_selector\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "List of targets that belong to this Load Balancer"
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
}
},
"services": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerService",
"required": [
"protocol",
"listen_port",
"destination_port",
"proxyprotocol",
"health_check"
],
"properties": {
"http": {
"type": "object",
"title": "LoadBalancerServiceHTTP",
"properties": {
"cookie_name": {
"type": "string",
"default": "HCLBSTICKY",
"example": "HCLBSTICKY",
"description": "Name of the cookie used for sticky sessions."
},
"certificates": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
897
],
"description": "IDs of the Certificates to use for TLS/SSL termination by the Load Balancer; empty for TLS/SSL passthrough or if `protocol` is `http`."
},
"redirect_http": {
"type": "boolean",
"default": false,
"example": true,
"description": "Redirect HTTP requests to HTTPS. Only available if `protocol` is `https`."
},
"cookie_lifetime": {
"type": "integer",
"default": 300,
"example": 300,
"description": "Lifetime of the cookie used for sticky sessions (in seconds)."
},
"sticky_sessions": {
"type": "boolean",
"default": false,
"example": true,
"description": "Use sticky sessions. Only available if `protocol` is `http` or `https`."
}
},
"description": "Configuration option for protocols http and https"
},
"protocol": {
"enum": [
"tcp",
"http",
"https"
],
"type": "string",
"example": "https",
"description": "Protocol of the Load Balancer"
},
"listen_port": {
"type": "integer",
"example": 443,
"description": "Port the Load Balancer listens on"
},
"health_check": {
"type": "object",
"title": "LoadBalancerServiceHealthCheck",
"required": [
"protocol",
"port",
"interval",
"timeout",
"retries"
],
"properties": {
"http": {
"type": "object",
"required": [
"domain",
"path"
],
"properties": {
"tls": {
"type": "boolean",
"example": false,
"description": "Use HTTPS for health check"
},
"path": {
"type": "string",
"example": "/",
"description": "HTTP path to use for health checks. May not contain literal spaces, use percent-encoding instead."
},
"domain": {
"type": "string",
"example": "example.com",
"nullable": true,
"description": "Host header to send in the HTTP request. May not contain spaces, percent or backslash symbols. Can be null, in that case no host header is sent."
},
"response": {
"type": "string",
"example": "{\"status\": \"ok\"}",
"description": "String that must be contained in HTTP response in order to pass the health check"
},
"status_codes": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"2??",
"3??"
],
"example": [
"2??",
"3??"
],
"description": "List of returned HTTP status codes in order to pass the health check. Supports the wildcards `?` for exactly one character and `*` for multiple ones."
}
},
"description": "Additional configuration for protocol http"
},
"port": {
"type": "integer",
"example": 4711,
"description": "Port the health check will be performed on"
},
"retries": {
"type": "integer",
"example": 3,
"description": "Unsuccessful retries needed until a target is considered unhealthy; an unhealthy target needs the same number of successful retries to become healthy again"
},
"timeout": {
"type": "integer",
"example": 10,
"description": "Time in seconds after an attempt is considered a timeout"
},
"interval": {
"type": "integer",
"example": 15,
"description": "Time interval in seconds health checks are performed"
},
"protocol": {
"enum": [
"tcp",
"http"
],
"type": "string",
"example": "http",
"description": "Type of the health check"
}
},
"description": "Service health check"
},
"proxyprotocol": {
"type": "boolean",
"example": false,
"description": "Is Proxyprotocol enabled or not"
},
"destination_port": {
"type": "integer",
"example": 80,
"description": "Port the Load Balancer will balance to"
}
}
},
"description": "List of services that belong to this Load Balancer"
},
"algorithm": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"round_robin",
"least_connections"
],
"type": "string",
"description": "Type of the algorithm"
}
},
"description": "Algorithm of the Load Balancer"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"public_net": {
"type": "object",
"required": [
"enabled",
"ipv4",
"ipv6"
],
"properties": {
"ipv4": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "1.2.3.4",
"nullable": true,
"description": "IP address (v4) of this Load Balancer"
},
"dns_ptr": {
"type": "string",
"example": "lb1.example.com",
"nullable": true,
"description": "Reverse DNS PTR entry for the IPv4 address of this Load Balancer"
}
},
"description": "IP address (v4)"
},
"ipv6": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"nullable": true,
"description": "IP address (v6) of this Load Balancer"
},
"dns_ptr": {
"type": "string",
"example": "lb1.example.com",
"nullable": true,
"description": "Reverse DNS PTR entry for the IPv6 address of this Load Balancer"
}
},
"description": "IP address (v6)"
},
"enabled": {
"type": "boolean",
"description": "Public Interface enabled or not"
}
},
"description": "Public network information"
},
"private_net": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "10.0.0.2",
"description": "IP address (v4) of this Load Balancer in this Network"
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of the Network"
}
}
},
"description": "Private networks information"
},
"ingoing_traffic": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Inbound Traffic for the current billing period in bytes"
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 10000,
"description": "Free Traffic for the current billing period in bytes"
},
"outgoing_traffic": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Outbound Traffic for the current billing period in bytes"
},
"load_balancer_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"max_connections",
"max_services",
"max_targets",
"max_assigned_certificates",
"deprecated",
"prices"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Load Balancer type"
},
"name": {
"type": "string",
"example": "lb11",
"description": "Unique identifier of the Load Balancer type"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for."
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Hourly costs for a Resource in this Location."
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Monthly costs for a Resource in this Location."
}
}
},
"description": "Prices in different network zones"
},
"deprecated": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"nullable": true,
"description": "Point in time when the Load Balancer type is deprecated (in ISO-8601 format)"
},
"description": {
"type": "string",
"example": "LB11",
"description": "Description of the Load Balancer type"
},
"max_targets": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Number of targets a single Load Balancer can have"
},
"max_services": {
"type": "integer",
"format": "int64",
"example": 5,
"description": "Number of services a Load Balancer of this type can have"
},
"max_connections": {
"type": "integer",
"format": "int64",
"example": 20000,
"description": "Number of maximum simultaneous open connections"
},
"max_assigned_certificates": {
"type": "integer",
"format": "int64",
"example": 10,
"description": "Number of SSL Certificates that can be assigned to a single Load Balancer"
}
}
}
}
}
}
}
LoadBalancersGetMetricsResponse
{
"type": "object",
"required": [
"metrics"
],
"properties": {
"metrics": {
"type": "object",
"required": [
"start",
"end",
"step",
"time_series"
],
"properties": {
"end": {
"type": "string",
"example": "2017-01-01T23:00:00+00:00",
"description": "End of period of metrics reported (in ISO-8601 format)"
},
"step": {
"type": "number",
"example": 60,
"description": "Resolution of results in seconds."
},
"start": {
"type": "string",
"example": "2017-01-01T00:00:00+00:00",
"description": "Start of period of metrics reported (in ISO-8601 format)"
},
"time_series": {
"type": "object",
"example": {
"name_of_timeseries": {
"values": [
[
1435781470.622,
"42"
],
[
1435781471.622,
"43"
]
]
}
},
"description": "Hash with timeseries information, containing the name of timeseries as key",
"additionalProperties": {
"type": "object",
"required": [
"values"
],
"properties": {
"values": {
"type": "array",
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
}
},
"description": "Metrics Timestamps with values"
}
}
}
}
}
}
}
}
LoadBalancersUpdateBalancerRequest
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "new-name",
"description": "New Load Balancer name"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
}
}
}
LoadBalancersUpdateBalancerResponse
{
"type": "object",
"required": [
"load_balancer"
],
"properties": {
"load_balancer": {
"type": "object",
"required": [
"id",
"name",
"public_net",
"private_net",
"location",
"load_balancer_type",
"protection",
"labels",
"created",
"services",
"targets",
"algorithm",
"outgoing_traffic",
"ingoing_traffic",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Load Balancer."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTarget",
"required": [
"type"
],
"properties": {
"ip": {
"type": "object",
"title": "LoadBalancerTargetIP",
"required": [
"ip"
],
"properties": {
"ip": {
"type": "string",
"example": "203.0.113.1",
"description": "IP of a server that belongs to the same customer (public IPv4/IPv6) or private IP in a Subnetwork type vswitch."
}
},
"description": "IP targets where the traffic should be routed to. It is only possible to use the (Public or vSwitch) IPs of Hetzner Online Root Servers belonging to the project owner. IPs belonging to other users are blocked. Additionally IPs belonging to services provided by Hetzner Cloud (Servers, Load Balancers, ...) are blocked as well. Only present for target type \"ip\"."
},
"type": {
"enum": [
"server",
"label_selector",
"ip"
],
"type": "string",
"description": "Type of the resource"
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"targets": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerTargetTarget",
"properties": {
"type": {
"type": "string",
"example": "server",
"description": "Type of the resource. Here always \"server\"."
},
"server": {
"type": "object",
"title": "LoadBalancerTargetServer",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 80,
"description": "ID of the Server"
}
},
"description": "Server where the traffic should be routed to. Only present for target type \"server\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "List of resolved label selector target Servers. Only present for type \"label_selector\"."
},
"health_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"enum": [
"healthy",
"unhealthy",
"unknown"
],
"type": "string",
"example": "healthy"
},
"listen_port": {
"type": "integer",
"example": 443
}
}
},
"title": "LoadBalancerTargetHealthStatus",
"description": "List of health statuses of the services on this target. Only present for target types \"server\" and \"ip\"."
},
"label_selector": {
"type": "object",
"title": "LoadBalancerTargetLabelSelector",
"required": [
"selector"
],
"properties": {
"selector": {
"type": "string",
"example": "env=prod",
"description": "Label selector"
}
},
"description": "Label selector used to determine targets. Only present for target type \"label_selector\"."
},
"use_private_ip": {
"type": "boolean",
"title": "LoadBalancerTargetUsePrivateIP",
"default": false,
"description": "Use the private network IP instead of the public IP. Only present for target types \"server\" and \"label_selector\"."
}
}
},
"description": "List of targets that belong to this Load Balancer"
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
}
},
"services": {
"type": "array",
"items": {
"type": "object",
"title": "LoadBalancerService",
"required": [
"protocol",
"listen_port",
"destination_port",
"proxyprotocol",
"health_check"
],
"properties": {
"http": {
"type": "object",
"title": "LoadBalancerServiceHTTP",
"properties": {
"cookie_name": {
"type": "string",
"default": "HCLBSTICKY",
"example": "HCLBSTICKY",
"description": "Name of the cookie used for sticky sessions."
},
"certificates": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
897
],
"description": "IDs of the Certificates to use for TLS/SSL termination by the Load Balancer; empty for TLS/SSL passthrough or if `protocol` is `http`."
},
"redirect_http": {
"type": "boolean",
"default": false,
"example": true,
"description": "Redirect HTTP requests to HTTPS. Only available if `protocol` is `https`."
},
"cookie_lifetime": {
"type": "integer",
"default": 300,
"example": 300,
"description": "Lifetime of the cookie used for sticky sessions (in seconds)."
},
"sticky_sessions": {
"type": "boolean",
"default": false,
"example": true,
"description": "Use sticky sessions. Only available if `protocol` is `http` or `https`."
}
},
"description": "Configuration option for protocols http and https"
},
"protocol": {
"enum": [
"tcp",
"http",
"https"
],
"type": "string",
"example": "https",
"description": "Protocol of the Load Balancer"
},
"listen_port": {
"type": "integer",
"example": 443,
"description": "Port the Load Balancer listens on"
},
"health_check": {
"type": "object",
"title": "LoadBalancerServiceHealthCheck",
"required": [
"protocol",
"port",
"interval",
"timeout",
"retries"
],
"properties": {
"http": {
"type": "object",
"required": [
"domain",
"path"
],
"properties": {
"tls": {
"type": "boolean",
"example": false,
"description": "Use HTTPS for health check"
},
"path": {
"type": "string",
"example": "/",
"description": "HTTP path to use for health checks. May not contain literal spaces, use percent-encoding instead."
},
"domain": {
"type": "string",
"example": "example.com",
"nullable": true,
"description": "Host header to send in the HTTP request. May not contain spaces, percent or backslash symbols. Can be null, in that case no host header is sent."
},
"response": {
"type": "string",
"example": "{\"status\": \"ok\"}",
"description": "String that must be contained in HTTP response in order to pass the health check"
},
"status_codes": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"2??",
"3??"
],
"example": [
"2??",
"3??"
],
"description": "List of returned HTTP status codes in order to pass the health check. Supports the wildcards `?` for exactly one character and `*` for multiple ones."
}
},
"description": "Additional configuration for protocol http"
},
"port": {
"type": "integer",
"example": 4711,
"description": "Port the health check will be performed on"
},
"retries": {
"type": "integer",
"example": 3,
"description": "Unsuccessful retries needed until a target is considered unhealthy; an unhealthy target needs the same number of successful retries to become healthy again"
},
"timeout": {
"type": "integer",
"example": 10,
"description": "Time in seconds after an attempt is considered a timeout"
},
"interval": {
"type": "integer",
"example": 15,
"description": "Time interval in seconds health checks are performed"
},
"protocol": {
"enum": [
"tcp",
"http"
],
"type": "string",
"example": "http",
"description": "Type of the health check"
}
},
"description": "Service health check"
},
"proxyprotocol": {
"type": "boolean",
"example": false,
"description": "Is Proxyprotocol enabled or not"
},
"destination_port": {
"type": "integer",
"example": 80,
"description": "Port the Load Balancer will balance to"
}
}
},
"description": "List of services that belong to this Load Balancer"
},
"algorithm": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"round_robin",
"least_connections"
],
"type": "string",
"description": "Type of the algorithm"
}
},
"description": "Algorithm of the Load Balancer"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"public_net": {
"type": "object",
"required": [
"enabled",
"ipv4",
"ipv6"
],
"properties": {
"ipv4": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "1.2.3.4",
"nullable": true,
"description": "IP address (v4) of this Load Balancer"
},
"dns_ptr": {
"type": "string",
"example": "lb1.example.com",
"nullable": true,
"description": "Reverse DNS PTR entry for the IPv4 address of this Load Balancer"
}
},
"description": "IP address (v4)"
},
"ipv6": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"nullable": true,
"description": "IP address (v6) of this Load Balancer"
},
"dns_ptr": {
"type": "string",
"example": "lb1.example.com",
"nullable": true,
"description": "Reverse DNS PTR entry for the IPv6 address of this Load Balancer"
}
},
"description": "IP address (v6)"
},
"enabled": {
"type": "boolean",
"description": "Public Interface enabled or not"
}
},
"description": "Public network information"
},
"private_net": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "10.0.0.2",
"description": "IP address (v4) of this Load Balancer in this Network"
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of the Network"
}
}
},
"description": "Private networks information"
},
"ingoing_traffic": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Inbound Traffic for the current billing period in bytes"
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 10000,
"description": "Free Traffic for the current billing period in bytes"
},
"outgoing_traffic": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "Outbound Traffic for the current billing period in bytes"
},
"load_balancer_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"max_connections",
"max_services",
"max_targets",
"max_assigned_certificates",
"deprecated",
"prices"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Load Balancer type"
},
"name": {
"type": "string",
"example": "lb11",
"description": "Unique identifier of the Load Balancer type"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for."
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Hourly costs for a Resource in this Location."
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Monthly costs for a Resource in this Location."
}
}
},
"description": "Prices in different network zones"
},
"deprecated": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"nullable": true,
"description": "Point in time when the Load Balancer type is deprecated (in ISO-8601 format)"
},
"description": {
"type": "string",
"example": "LB11",
"description": "Description of the Load Balancer type"
},
"max_targets": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Number of targets a single Load Balancer can have"
},
"max_services": {
"type": "integer",
"format": "int64",
"example": 5,
"description": "Number of services a Load Balancer of this type can have"
},
"max_connections": {
"type": "integer",
"format": "int64",
"example": 20000,
"description": "Number of maximum simultaneous open connections"
},
"max_assigned_certificates": {
"type": "integer",
"format": "int64",
"example": 10,
"description": "Number of SSL Certificates that can be assigned to a single Load Balancer"
}
}
}
}
}
}
}
LocationID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
}
LocationsGetAllLocationsResponse
{
"type": "object",
"required": [
"locations",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
}
},
"description": "List of Locations."
}
}
}
LocationsGetLocationByIdResponse
{
"type": "object",
"required": [
"location"
],
"properties": {
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
}
}
}
}
Name
{
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
}
NetworkActionsAddRouteRequest
{
"type": "object",
"title": "AddDeleteRouteRequest",
"required": [
"destination",
"gateway"
],
"properties": {
"gateway": {
"type": "string",
"example": "10.0.1.1",
"description": "Gateway for the route. Cannot be the first IP of the networks ip_range, an IP behind a vSwitch or 172.31.1.1, as this IP is being used as a gateway for the public network interface of Servers."
},
"destination": {
"type": "string",
"example": "10.100.1.0/24",
"description": "Destination network or host of this route. Must not overlap with an existing ip_range in any subnets or with any destinations in other routes or with the first IP of the networks ip_range or with 172.31.1.1. Must be one of the private IPv4 ranges of RFC1918."
}
}
}
NetworkActionsAddRouteResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
NetworkActionsAddSubnetRequest
{
"type": "object",
"title": "AddSubnetRequest",
"required": [
"type",
"network_zone"
],
"properties": {
"type": {
"enum": [
"cloud",
"server",
"vswitch"
],
"type": "string",
"description": "Type of Subnetwork"
},
"ip_range": {
"type": "string",
"example": "10.0.1.0/24",
"description": "Range to allocate IPs from. Must be a Subnet of the ip_range of the parent network object and must not overlap with any other subnets or with any destinations in routes. If the Subnet is of type vSwitch, it also can not overlap with any gateway in routes. Minimum Network size is /30. We suggest that you pick a bigger Network with a /24 netmask."
},
"vswitch_id": {
"type": "integer",
"format": "int64",
"example": 1000,
"description": "ID of the robot vSwitch. Must be supplied if the subnet is of type vswitch."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"description": "Name of Network zone. The Location object contains the `network_zone` property each Location belongs to."
}
}
}
NetworkActionsAddSubnetResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
NetworkActionsChangeIpRangeRequest
{
"type": "object",
"title": "ChangeIPRangeRequest",
"required": [
"ip_range"
],
"properties": {
"ip_range": {
"type": "string",
"example": "10.0.0.0/12",
"description": "The new prefix for the whole Network"
}
}
}
NetworkActionsChangeIpRangeResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
NetworkActionsChangeProtectionRequest
{
"type": "object",
"title": "ChangeProtectionRequest",
"properties": {
"delete": {
"type": "boolean",
"example": true,
"description": "If true, prevents the Network from being deleted"
}
}
}
NetworkActionsChangeProtectionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
NetworkActionsDeleteRouteRequest
{
"type": "object",
"title": "AddDeleteRouteRequest",
"required": [
"destination",
"gateway"
],
"properties": {
"gateway": {
"type": "string",
"example": "10.0.1.1",
"description": "Gateway for the route. Cannot be the first IP of the networks ip_range, an IP behind a vSwitch or 172.31.1.1, as this IP is being used as a gateway for the public network interface of Servers."
},
"destination": {
"type": "string",
"example": "10.100.1.0/24",
"description": "Destination network or host of this route. Must not overlap with an existing ip_range in any subnets or with any destinations in other routes or with the first IP of the networks ip_range or with 172.31.1.1. Must be one of the private IPv4 ranges of RFC1918."
}
}
}
NetworkActionsDeleteRouteResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
NetworkActionsDeleteSubnetRequest
{
"type": "object",
"title": "DeleteSubnetRequest",
"required": [
"ip_range"
],
"properties": {
"ip_range": {
"type": "string",
"example": "10.0.1.0/24",
"description": "IP range of subnet to delete"
}
}
}
NetworkActionsDeleteSubnetResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
NetworkActionsGetAction200Response
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
NetworkActionsGetActionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
NetworkActionsGetAllActions200Response
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
NetworkActionsGetAllActionsResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
NetworkID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Network."
}
NetworksCreateNetworkRequest
{
"type": "object",
"title": "CreateNetworkRequest",
"required": [
"name",
"ip_range"
],
"properties": {
"name": {
"type": "string",
"example": "mynet",
"description": "Name of the network"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"routes": {
"type": "array",
"items": {
"type": "object",
"required": [
"destination",
"gateway"
],
"properties": {
"gateway": {
"type": "string",
"example": "10.0.1.1",
"description": "Gateway for the route. Cannot be the first IP of the networks ip_range and also cannot be 172.31.1.1 as this IP is being used as a gateway for the public network interface of Servers."
},
"destination": {
"type": "string",
"example": "10.100.1.0/24",
"description": "Destination network or host of this route. Must not overlap with an existing ip_range in any subnets or with any destinations in other routes or with the first IP of the networks ip_range or with 172.31.1.1. Must be one of the private IPv4 ranges of RFC1918."
}
}
},
"description": "Array of routes set in this network. The destination of the route must be one of the private IPv4 ranges of RFC1918. The gateway must be a subnet/IP of the ip_range of the network object. The destination must not overlap with an existing ip_range in any subnets or with any destinations in other routes or with the first IP of the networks ip_range or with 172.31.1.1. The gateway cannot be the first IP of the networks ip_range and also cannot be 172.31.1.1."
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"network_zone"
],
"properties": {
"type": {
"enum": [
"cloud",
"server",
"vswitch"
],
"type": "string",
"description": "Type of Subnetwork"
},
"ip_range": {
"type": "string",
"example": "10.0.1.0/24",
"description": "Range to allocate IPs from. Must be a Subnet of the ip_range of the parent network object and must not overlap with any other subnets or with any destinations in routes. Minimum Network size is /30. We suggest that you pick a bigger Network with a /24 netmask."
},
"vswitch_id": {
"type": "integer",
"format": "int64",
"example": 1000,
"description": "ID of the robot vSwitch. Must be supplied if the subnet is of type vswitch."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"description": "Name of Network zone. The Location object contains the `network_zone` property each Location belongs to."
}
}
},
"description": "Array of subnets allocated."
},
"ip_range": {
"type": "string",
"example": "10.0.0.0/16",
"description": "IP range of the whole network which must span all included subnets. Must be one of the private IPv4 ranges of RFC1918. Minimum network size is /24. We highly recommend that you pick a larger network with a /16 netmask."
},
"expose_routes_to_vswitch": {
"type": "boolean",
"example": false,
"description": "Indicates if the routes from this network should be exposed to the vSwitch connection. The exposing only takes effect if a vSwitch connection is active."
}
}
}
NetworksCreateNetworkResponse
{
"type": "object",
"properties": {
"network": {
"type": "object",
"required": [
"id",
"name",
"ip_range",
"subnets",
"routes",
"servers",
"protection",
"labels",
"created",
"expose_routes_to_vswitch"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of the Network"
},
"name": {
"type": "string",
"example": "mynet",
"description": "Name of the Network"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"routes": {
"type": "array",
"items": {
"type": "object",
"required": [
"destination",
"gateway"
],
"properties": {
"gateway": {
"type": "string",
"example": "10.0.1.1",
"description": "Gateway for the route. Cannot be the first IP of the networks ip_range and also cannot be 172.31.1.1 as this IP is being used as a gateway for the public network interface of Servers."
},
"destination": {
"type": "string",
"example": "10.100.1.0/24",
"description": "Destination network or host of this route. Must not overlap with an existing ip_range in any subnets or with any destinations in other routes or with the first IP of the networks ip_range or with 172.31.1.1. Must be one of the private IPv4 ranges of RFC1918."
}
}
},
"description": "Array of routes set in this Network"
},
"created": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"description": "Point in time when the Network was created (in ISO-8601 format)"
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers attached to this Network"
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"network_zone",
"gateway"
],
"properties": {
"type": {
"enum": [
"cloud",
"server",
"vswitch"
],
"type": "string",
"description": "Type of Subnetwork"
},
"gateway": {
"type": "string",
"example": "10.0.0.1",
"description": "Gateway for Servers attached to this subnet. For subnets of type Server this is always the first IP of the network IP range."
},
"ip_range": {
"type": "string",
"example": "10.0.1.0/24",
"description": "Range to allocate IPs from. Must be a Subnet of the ip_range of the parent network object and must not overlap with any other subnets or with any destinations in routes. Minimum Network size is /30. We suggest that you pick a bigger Network with a /24 netmask."
},
"vswitch_id": {
"type": "integer",
"format": "int64",
"example": 1000,
"nullable": true,
"description": "ID of the robot vSwitch if the subnet is of type vswitch."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"description": "Name of Network zone. The Location object contains the `network_zone` property each Location belongs to."
}
}
},
"description": "Array subnets allocated in this Network"
},
"ip_range": {
"type": "string",
"example": "10.0.0.0/16",
"description": "IPv4 prefix of the whole Network"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"load_balancers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Load Balancers attached to this Network"
},
"expose_routes_to_vswitch": {
"type": "boolean",
"example": false,
"description": "Indicates if the routes from this network should be exposed to the vSwitch connection."
}
}
}
}
}
NetworksGetAllResponse
{
"type": "object",
"required": [
"networks",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"networks": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"ip_range",
"subnets",
"routes",
"servers",
"protection",
"labels",
"created",
"expose_routes_to_vswitch"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of the Network"
},
"name": {
"type": "string",
"example": "mynet",
"description": "Name of the Network"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"routes": {
"type": "array",
"items": {
"type": "object",
"required": [
"destination",
"gateway"
],
"properties": {
"gateway": {
"type": "string",
"example": "10.0.1.1",
"description": "Gateway for the route. Cannot be the first IP of the networks ip_range and also cannot be 172.31.1.1 as this IP is being used as a gateway for the public network interface of Servers."
},
"destination": {
"type": "string",
"example": "10.100.1.0/24",
"description": "Destination network or host of this route. Must not overlap with an existing ip_range in any subnets or with any destinations in other routes or with the first IP of the networks ip_range or with 172.31.1.1. Must be one of the private IPv4 ranges of RFC1918."
}
}
},
"description": "Array of routes set in this Network"
},
"created": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"description": "Point in time when the Network was created (in ISO-8601 format)"
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers attached to this Network"
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"network_zone",
"gateway"
],
"properties": {
"type": {
"enum": [
"cloud",
"server",
"vswitch"
],
"type": "string",
"description": "Type of Subnetwork"
},
"gateway": {
"type": "string",
"example": "10.0.0.1",
"description": "Gateway for Servers attached to this subnet. For subnets of type Server this is always the first IP of the network IP range."
},
"ip_range": {
"type": "string",
"example": "10.0.1.0/24",
"description": "Range to allocate IPs from. Must be a Subnet of the ip_range of the parent network object and must not overlap with any other subnets or with any destinations in routes. Minimum Network size is /30. We suggest that you pick a bigger Network with a /24 netmask."
},
"vswitch_id": {
"type": "integer",
"format": "int64",
"example": 1000,
"nullable": true,
"description": "ID of the robot vSwitch if the subnet is of type vswitch."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"description": "Name of Network zone. The Location object contains the `network_zone` property each Location belongs to."
}
}
},
"description": "Array subnets allocated in this Network"
},
"ip_range": {
"type": "string",
"example": "10.0.0.0/16",
"description": "IPv4 prefix of the whole Network"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"load_balancers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Load Balancers attached to this Network"
},
"expose_routes_to_vswitch": {
"type": "boolean",
"example": false,
"description": "Indicates if the routes from this network should be exposed to the vSwitch connection."
}
}
}
}
}
}
NetworksGetByIdResponse
{
"type": "object",
"properties": {
"network": {
"type": "object",
"required": [
"id",
"name",
"ip_range",
"subnets",
"routes",
"servers",
"protection",
"labels",
"created",
"expose_routes_to_vswitch"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of the Network"
},
"name": {
"type": "string",
"example": "mynet",
"description": "Name of the Network"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"routes": {
"type": "array",
"items": {
"type": "object",
"required": [
"destination",
"gateway"
],
"properties": {
"gateway": {
"type": "string",
"example": "10.0.1.1",
"description": "Gateway for the route. Cannot be the first IP of the networks ip_range and also cannot be 172.31.1.1 as this IP is being used as a gateway for the public network interface of Servers."
},
"destination": {
"type": "string",
"example": "10.100.1.0/24",
"description": "Destination network or host of this route. Must not overlap with an existing ip_range in any subnets or with any destinations in other routes or with the first IP of the networks ip_range or with 172.31.1.1. Must be one of the private IPv4 ranges of RFC1918."
}
}
},
"description": "Array of routes set in this Network"
},
"created": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"description": "Point in time when the Network was created (in ISO-8601 format)"
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers attached to this Network"
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"network_zone",
"gateway"
],
"properties": {
"type": {
"enum": [
"cloud",
"server",
"vswitch"
],
"type": "string",
"description": "Type of Subnetwork"
},
"gateway": {
"type": "string",
"example": "10.0.0.1",
"description": "Gateway for Servers attached to this subnet. For subnets of type Server this is always the first IP of the network IP range."
},
"ip_range": {
"type": "string",
"example": "10.0.1.0/24",
"description": "Range to allocate IPs from. Must be a Subnet of the ip_range of the parent network object and must not overlap with any other subnets or with any destinations in routes. Minimum Network size is /30. We suggest that you pick a bigger Network with a /24 netmask."
},
"vswitch_id": {
"type": "integer",
"format": "int64",
"example": 1000,
"nullable": true,
"description": "ID of the robot vSwitch if the subnet is of type vswitch."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"description": "Name of Network zone. The Location object contains the `network_zone` property each Location belongs to."
}
}
},
"description": "Array subnets allocated in this Network"
},
"ip_range": {
"type": "string",
"example": "10.0.0.0/16",
"description": "IPv4 prefix of the whole Network"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"load_balancers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Load Balancers attached to this Network"
},
"expose_routes_to_vswitch": {
"type": "boolean",
"example": false,
"description": "Indicates if the routes from this network should be exposed to the vSwitch connection."
}
}
}
}
}
NetworksUpdatePropertiesRequest
{
"type": "object",
"title": "UpdateNetworkRequest",
"properties": {
"name": {
"type": "string",
"example": "new-name",
"description": "New network name"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"expose_routes_to_vswitch": {
"type": "boolean",
"example": false,
"description": "Indicates if the routes from this network should be exposed to the vSwitch connection. The exposing only takes effect if a vSwitch connection is active."
}
}
}
NetworksUpdatePropertiesResponse
{
"type": "object",
"properties": {
"network": {
"type": "object",
"required": [
"id",
"name",
"ip_range",
"subnets",
"routes",
"servers",
"protection",
"labels",
"created",
"expose_routes_to_vswitch"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of the Network"
},
"name": {
"type": "string",
"example": "mynet",
"description": "Name of the Network"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"routes": {
"type": "array",
"items": {
"type": "object",
"required": [
"destination",
"gateway"
],
"properties": {
"gateway": {
"type": "string",
"example": "10.0.1.1",
"description": "Gateway for the route. Cannot be the first IP of the networks ip_range and also cannot be 172.31.1.1 as this IP is being used as a gateway for the public network interface of Servers."
},
"destination": {
"type": "string",
"example": "10.100.1.0/24",
"description": "Destination network or host of this route. Must not overlap with an existing ip_range in any subnets or with any destinations in other routes or with the first IP of the networks ip_range or with 172.31.1.1. Must be one of the private IPv4 ranges of RFC1918."
}
}
},
"description": "Array of routes set in this Network"
},
"created": {
"type": "string",
"example": "2016-01-30T23:50:00+00:00",
"description": "Point in time when the Network was created (in ISO-8601 format)"
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers attached to this Network"
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"network_zone",
"gateway"
],
"properties": {
"type": {
"enum": [
"cloud",
"server",
"vswitch"
],
"type": "string",
"description": "Type of Subnetwork"
},
"gateway": {
"type": "string",
"example": "10.0.0.1",
"description": "Gateway for Servers attached to this subnet. For subnets of type Server this is always the first IP of the network IP range."
},
"ip_range": {
"type": "string",
"example": "10.0.1.0/24",
"description": "Range to allocate IPs from. Must be a Subnet of the ip_range of the parent network object and must not overlap with any other subnets or with any destinations in routes. Minimum Network size is /30. We suggest that you pick a bigger Network with a /24 netmask."
},
"vswitch_id": {
"type": "integer",
"format": "int64",
"example": 1000,
"nullable": true,
"description": "ID of the robot vSwitch if the subnet is of type vswitch."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"description": "Name of Network zone. The Location object contains the `network_zone` property each Location belongs to."
}
}
},
"description": "Array subnets allocated in this Network"
},
"ip_range": {
"type": "string",
"example": "10.0.0.0/16",
"description": "IPv4 prefix of the whole Network"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"load_balancers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Load Balancers attached to this Network"
},
"expose_routes_to_vswitch": {
"type": "boolean",
"example": false,
"description": "Indicates if the routes from this network should be exposed to the vSwitch connection."
}
}
}
}
}
PaginationOffsetPagination
{
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
PlacementGroupID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Placement Group."
}
PlacementGroupsCreateNewGroupRequest
{
"type": "object",
"title": "CreatePlacementGroupRequest",
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string",
"example": "my Placement Group",
"description": "Name of the PlacementGroup"
},
"type": {
"enum": [
"spread"
],
"type": "string",
"example": "spread",
"description": "Define the Placement Group Type."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
}
}
}
PlacementGroupsCreateNewGroupResponse
{
"type": "object",
"title": "CreatePlacementGroupResponse",
"required": [
"placement_group"
],
"properties": {
"action": {
"type": "object",
"title": "ActionNullable",
"nullable": true,
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"placement_group": {
"type": "object",
"title": "PlacementGroup",
"required": [
"id",
"name",
"labels",
"type",
"created",
"servers"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Placement Group."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"spread"
],
"type": "string",
"example": "spread",
"description": "Type of the Placement Group"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers that are part of this Placement Group"
}
}
}
}
}
PlacementGroupsGetAllResponse
{
"type": "object",
"title": "PlacementGroupsResponse",
"required": [
"placement_groups",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"placement_groups": {
"type": "array",
"items": {
"type": "object",
"title": "PlacementGroup",
"required": [
"id",
"name",
"labels",
"type",
"created",
"servers"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Placement Group."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"spread"
],
"type": "string",
"example": "spread",
"description": "Type of the Placement Group"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers that are part of this Placement Group"
}
}
}
}
}
}
PlacementGroupsGetByIdResponse
{
"type": "object",
"title": "PlacementGroupResponse",
"required": [
"placement_group"
],
"properties": {
"placement_group": {
"type": "object",
"title": "PlacementGroup",
"required": [
"id",
"name",
"labels",
"type",
"created",
"servers"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Placement Group."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"spread"
],
"type": "string",
"example": "spread",
"description": "Type of the Placement Group"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers that are part of this Placement Group"
}
}
}
}
}
PlacementGroupsUpdatePropertiesRequest
{
"type": "object",
"title": "UpdatePlacementGroupRequest",
"properties": {
"name": {
"type": "string",
"example": "my Placement Group",
"description": "New PlacementGroup name"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
}
}
}
PlacementGroupsUpdatePropertiesResponse
{
"type": "object",
"title": "PlacementGroupResponse",
"required": [
"placement_group"
],
"properties": {
"placement_group": {
"type": "object",
"title": "PlacementGroup",
"required": [
"id",
"name",
"labels",
"type",
"created",
"servers"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Placement Group."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"spread"
],
"type": "string",
"example": "spread",
"description": "Type of the Placement Group"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers that are part of this Placement Group"
}
}
}
}
}
Prices
{
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for."
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Hourly costs for a Resource in this Location."
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT."
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added."
}
},
"description": "Monthly costs for a Resource in this Location."
}
}
}
PricingGetAllPricesResponse
{
"type": "object",
"required": [
"pricing"
],
"properties": {
"pricing": {
"type": "object",
"required": [
"currency",
"vat_rate",
"image",
"floating_ip",
"floating_ips",
"traffic",
"server_backup",
"volume",
"server_types",
"load_balancer_types",
"primary_ips"
],
"properties": {
"image": {
"type": "object",
"required": [
"price_per_gb_month"
],
"properties": {
"price_per_gb_month": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
}
}
},
"description": "The cost of Image per GB/month"
},
"volume": {
"type": "object",
"required": [
"price_per_gb_month"
],
"properties": {
"price_per_gb_month": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
}
}
},
"description": "The cost of Volume per GB/month"
},
"traffic": {
"type": "object",
"required": [
"price_per_tb"
],
"properties": {
"price_per_tb": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
}
}
},
"description": "The cost of additional traffic per TB"
},
"currency": {
"type": "string",
"example": "EUR",
"description": "Currency the returned prices are expressed in, coded according to ISO 4217"
},
"vat_rate": {
"type": "string",
"format": "decimal",
"example": "19.000000",
"description": "The VAT rate used for calculating prices with VAT"
},
"floating_ip": {
"type": "object",
"required": [
"price_monthly"
],
"properties": {
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
}
}
},
"description": "The cost of one Floating IP per month"
},
"primary_ips": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"prices"
],
"properties": {
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"example": "ipv4",
"description": "The type of the Primary IP"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Hourly costs for a Primary IP type in this Location"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Primary IP type in this Location"
}
}
},
"description": "Primary IP type costs per Location"
}
}
},
"description": "Costs of Primary IPs types per Location"
},
"floating_ips": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"prices"
],
"properties": {
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"example": "ipv4",
"description": "The type of the Floating IP"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Floating IP type in this Location"
}
}
},
"description": "Floating IP type costs per Location"
}
}
},
"description": "Costs of Floating IPs types per Location and type"
},
"server_types": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"prices"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 4,
"description": "ID of the Server type the price is for"
},
"name": {
"type": "string",
"example": "cx11",
"description": "Name of the Server type the price is for"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Hourly costs for a Server type in this Location"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Server type in this Location"
}
}
},
"description": "Server type costs per Location"
}
}
},
"description": "Costs of Server types per Location and type"
},
"server_backup": {
"type": "object",
"required": [
"percentage"
],
"properties": {
"percentage": {
"type": "string",
"format": "decimal",
"example": "20.0000000000",
"description": "Percentage by how much the base price will increase"
}
},
"description": "Will increase base Server costs by specific percentage"
},
"load_balancer_types": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"prices"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Load Balancer type the price is for"
},
"name": {
"type": "string",
"example": "lb11",
"description": "Name of the Load Balancer type the price is for"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Hourly costs for a Load Balancer type in this network zone"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Load Balancer type in this network zone"
}
}
},
"description": "Load Balancer type costs per Location"
}
}
},
"description": "Costs of Load Balancer types per Location and type"
}
}
}
}
}
PrimaryIPID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
}
PrimaryIPsCreateOrUpdateRequest
{
"type": "object",
"title": "CreatePrimaryIPRequest",
"required": [
"name",
"type",
"assignee_type"
],
"properties": {
"name": {
"type": "string",
"example": "my-ip"
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Primary IP type"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"datacenter": {
"type": "string",
"example": "fsn1-dc8",
"description": "ID or name of Datacenter the Primary IP will be bound to. Needs to be omitted if `assignee_id` is passed."
},
"assignee_id": {
"type": "integer",
"format": "int64",
"example": 17,
"description": "ID of the resource the Primary IP should be assigned to. Omitted if it should not be assigned."
},
"auto_delete": {
"type": "boolean",
"default": false,
"example": false,
"description": "Delete the Primary IP when the Server it is assigned to is deleted."
},
"assignee_type": {
"enum": [
"server"
],
"type": "string",
"example": "server",
"description": "Resource type the Primary IP can be assigned to"
}
}
}
PrimaryIPsCreateOrUpdateResponse
{
"type": "object",
"title": "CreatePrimaryIPResponse",
"required": [
"primary_ip"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"primary_ip": {
"type": "object",
"title": "PrimaryIP",
"required": [
"id",
"name",
"labels",
"created",
"blocked",
"datacenter",
"ip",
"dns_ptr",
"protection",
"type",
"auto_delete",
"assignee_type",
"assignee_id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "IP address."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Type of the Primary IP"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"blocked": {
"type": "boolean",
"example": false,
"description": "Whether the IP is blocked"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "Single IPv4 or IPv6 address"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"description": "Array of reverse DNS entries"
},
"datacenter": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
},
"description": "Datacenter this Primary IP is located at"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"assignee_id": {
"type": "integer",
"format": "int64",
"example": 17,
"nullable": true,
"description": "ID of the resource the Primary IP is assigned to, null if it is not assigned at all"
},
"auto_delete": {
"type": "boolean",
"example": true,
"description": "Delete this Primary IP when the resource it is assigned to is deleted"
},
"assignee_type": {
"enum": [
"server"
],
"type": "string",
"description": "Resource type the Primary IP can be assigned to"
}
}
}
}
}
PrimaryIPsGetAllResponse
{
"type": "object",
"title": "PrimaryIPsResponse",
"required": [
"primary_ips",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"primary_ips": {
"type": "array",
"items": {
"type": "object",
"title": "PrimaryIP",
"required": [
"id",
"name",
"labels",
"created",
"blocked",
"datacenter",
"ip",
"dns_ptr",
"protection",
"type",
"auto_delete",
"assignee_type",
"assignee_id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "IP address."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Type of the Primary IP"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"blocked": {
"type": "boolean",
"example": false,
"description": "Whether the IP is blocked"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "Single IPv4 or IPv6 address"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"description": "Array of reverse DNS entries"
},
"datacenter": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
},
"description": "Datacenter this Primary IP is located at"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"assignee_id": {
"type": "integer",
"format": "int64",
"example": 17,
"nullable": true,
"description": "ID of the resource the Primary IP is assigned to, null if it is not assigned at all"
},
"auto_delete": {
"type": "boolean",
"example": true,
"description": "Delete this Primary IP when the resource it is assigned to is deleted"
},
"assignee_type": {
"enum": [
"server"
],
"type": "string",
"description": "Resource type the Primary IP can be assigned to"
}
}
}
}
}
}
PrimaryIPsGetByIdResponse
{
"type": "object",
"title": "PrimaryIPResponse",
"required": [
"primary_ip"
],
"properties": {
"primary_ip": {
"type": "object",
"title": "PrimaryIP",
"required": [
"id",
"name",
"labels",
"created",
"blocked",
"datacenter",
"ip",
"dns_ptr",
"protection",
"type",
"auto_delete",
"assignee_type",
"assignee_id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "IP address."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Type of the Primary IP"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"blocked": {
"type": "boolean",
"example": false,
"description": "Whether the IP is blocked"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "Single IPv4 or IPv6 address"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"description": "Array of reverse DNS entries"
},
"datacenter": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
},
"description": "Datacenter this Primary IP is located at"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"assignee_id": {
"type": "integer",
"format": "int64",
"example": 17,
"nullable": true,
"description": "ID of the resource the Primary IP is assigned to, null if it is not assigned at all"
},
"auto_delete": {
"type": "boolean",
"example": true,
"description": "Delete this Primary IP when the resource it is assigned to is deleted"
},
"assignee_type": {
"enum": [
"server"
],
"type": "string",
"description": "Resource type the Primary IP can be assigned to"
}
}
}
}
}
PrimaryIPsUpdateIpLabelsRequest
{
"type": "object",
"title": "UpdatePrimaryIPRequest",
"properties": {
"name": {
"type": "string",
"example": "my-ip",
"description": "New unique name to set"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"auto_delete": {
"type": "boolean",
"example": true,
"description": "Delete this Primary IP when the resource it is assigned to is deleted"
}
}
}
PrimaryIPsUpdateIpLabelsResponse
{
"type": "object",
"title": "PrimaryIPResponse",
"required": [
"primary_ip"
],
"properties": {
"primary_ip": {
"type": "object",
"title": "PrimaryIP",
"required": [
"id",
"name",
"labels",
"created",
"blocked",
"datacenter",
"ip",
"dns_ptr",
"protection",
"type",
"auto_delete",
"assignee_type",
"assignee_id"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "IP address."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"ipv4",
"ipv6"
],
"type": "string",
"description": "Type of the Primary IP"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"blocked": {
"type": "boolean",
"example": false,
"description": "Whether the IP is blocked"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "131.232.99.1",
"description": "Single IPv4 or IPv6 address"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"description": "Array of reverse DNS entries"
},
"datacenter": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
},
"description": "Datacenter this Primary IP is located at"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"assignee_id": {
"type": "integer",
"format": "int64",
"example": 17,
"nullable": true,
"description": "ID of the resource the Primary IP is assigned to, null if it is not assigned at all"
},
"auto_delete": {
"type": "boolean",
"example": true,
"description": "Delete this Primary IP when the resource it is assigned to is deleted"
},
"assignee_type": {
"enum": [
"server"
],
"type": "string",
"description": "Resource type the Primary IP can be assigned to"
}
}
}
}
}
PrimaryIpActionsAssignPrimaryIpToResourceRequest
{
"type": "object",
"title": "AssignPrimaryIPRequest",
"required": [
"assignee_type",
"assignee_id"
],
"properties": {
"assignee_id": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of a resource of type `assignee_type`"
},
"assignee_type": {
"enum": [
"server"
],
"type": "string",
"example": "server",
"description": "Type of resource assigning the Primary IP to"
}
}
}
PrimaryIpActionsAssignPrimaryIpToResourceResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
PrimaryIpActionsChangeDnsPtrRequest
{
"type": "object",
"title": "ChangeDNSPTRRequest",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "1.2.3.4",
"description": "IP address for which to set the reverse DNS entry"
},
"dns_ptr": {
"type": "string",
"example": "server02.example.com",
"nullable": true,
"description": "Hostname to set as a reverse DNS PTR entry, will reset to original default value if `null`"
}
}
}
PrimaryIpActionsChangeDnsPtrResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
PrimaryIpActionsChangeProtectionPrimaryIpRequest
{
"type": "object",
"title": "ChangeProtectionRequest",
"properties": {
"delete": {
"type": "boolean",
"example": true,
"description": "If true, prevents the Primary IP from being deleted"
}
}
}
PrimaryIpActionsChangeProtectionPrimaryIpResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
PrimaryIpActionsGetActionByIdResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
PrimaryIpActionsGetAllActionsResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
PrimaryIpActionsUnassignPrimaryIpResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
Protection
{
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
}
SSHKeyID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the SSH Key."
}
ServerActionsAddToPlacementGroupRequest
{
"type": "object",
"title": "AddToPlacementGroupRequest",
"required": [
"placement_group"
],
"properties": {
"placement_group": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of Placement Group the Server should be added to"
}
}
}
ServerActionsAddToPlacementGroupResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsAttachIsoToServerRequest
{
"type": "object",
"required": [
"iso"
],
"properties": {
"iso": {
"type": "string",
"example": "FreeBSD-11.0-RELEASE-amd64-dvd1",
"description": "ID or name of ISO to attach to the Server as listed in GET `/isos`"
}
}
}
ServerActionsAttachIsoToServerResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsAttachToNetworkRequest
{
"type": "object",
"title": "AttachToNetworkRequest",
"required": [
"network"
],
"properties": {
"ip": {
"type": "string",
"example": "10.0.1.1",
"description": "IP to request to be assigned to this Server; if you do not provide this then you will be auto assigned an IP address"
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of an existing network to attach the Server to"
},
"alias_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"10.0.1.2"
],
"description": "Additional IPs to be assigned to this Server"
}
}
}
ServerActionsAttachToNetworkResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsChangeAliasIpsRequest
{
"type": "object",
"required": [
"network",
"alias_ips"
],
"properties": {
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of an existing Network already attached to the Server"
},
"alias_ips": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"10.0.1.2"
],
"description": "New alias IPs to set for this Server"
}
}
}
ServerActionsChangeAliasIpsResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsChangeDnsPtrRequest
{
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "1.2.3.4",
"description": "Primary IP address for which the reverse DNS entry should be set"
},
"dns_ptr": {
"type": "string",
"example": "server01.example.com",
"nullable": true,
"description": "Hostname to set as a reverse DNS PTR entry, reset to original value if `null`"
}
}
}
ServerActionsChangeDnsPtrResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsChangeProtectionRequest
{
"type": "object",
"properties": {
"delete": {
"type": "boolean",
"example": true,
"description": "If true, prevents the Server from being deleted (currently delete and rebuild attribute needs to have the same value)"
},
"rebuild": {
"type": "boolean",
"example": true,
"description": "If true, prevents the Server from being rebuilt (currently delete and rebuild attribute needs to have the same value)"
}
}
}
ServerActionsChangeProtectionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsChangeServerTypeRequest
{
"type": "object",
"required": [
"upgrade_disk",
"server_type"
],
"properties": {
"server_type": {
"type": "string",
"example": "cx11",
"description": "ID or name of Server type the Server should migrate to"
},
"upgrade_disk": {
"type": "boolean",
"example": true,
"description": "If false, do not upgrade the disk (this allows downgrading the Server type later)"
}
}
}
ServerActionsChangeServerTypeResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsCreateImageRequest
{
"type": "object",
"title": "CreateImageRequest",
"properties": {
"type": {
"enum": [
"snapshot",
"backup"
],
"type": "string",
"default": "snapshot",
"example": "snapshot",
"description": "Type of Image to create."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"description": {
"type": "string",
"example": "my image",
"description": "Description of the Image, will be auto-generated if not set"
}
}
}
ServerActionsCreateImageResponse
{
"type": "object",
"properties": {
"image": {
"type": "object",
"required": [
"id",
"type",
"status",
"name",
"description",
"image_size",
"disk_size",
"created",
"created_from",
"bound_to",
"os_flavor",
"os_version",
"protection",
"deprecated",
"deleted",
"labels",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Image."
},
"name": {
"type": "string",
"example": "ubuntu-20.04",
"nullable": true,
"description": "Unique identifier of the Image. This value is only set for system Images."
},
"type": {
"enum": [
"system",
"app",
"snapshot",
"backup",
"temporary"
],
"type": "string",
"example": "snapshot",
"description": "Type of the Image"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"enum": [
"available",
"creating",
"unavailable"
],
"type": "string",
"description": "Whether the Image can be used or if it's still being created or unavailable"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"deleted": {
"type": "string",
"example": null,
"nullable": true,
"description": "Point in time where the Image was deleted (in ISO-8601 format)"
},
"bound_to": {
"type": "integer",
"format": "int64",
"example": null,
"nullable": true,
"description": "ID of Server the Image is bound to. Only set for Images of type `backup`."
},
"disk_size": {
"type": "number",
"example": 10,
"description": "Size of the disk contained in the Image in GB"
},
"os_flavor": {
"enum": [
"ubuntu",
"centos",
"debian",
"fedora",
"rocky",
"alma",
"unknown"
],
"type": "string",
"example": "ubuntu",
"description": "Flavor of operating system contained in the Image"
},
"deprecated": {
"type": "string",
"example": "2018-02-28T00:00:00+00:00",
"nullable": true,
"description": "Point in time when the Image is considered to be deprecated (in ISO-8601 format)"
},
"image_size": {
"type": "number",
"example": 2.3,
"nullable": true,
"description": "Size of the Image file in our storage in GB. For snapshot Images this is the value relevant for calculating costs for the Image."
},
"os_version": {
"type": "string",
"example": "20.04",
"nullable": true,
"description": "Operating system version"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "Ubuntu 20.04 Standard 64 bit",
"description": "Description of the Image"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture this image is compatible with."
},
"created_from": {
"type": "object",
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server the Image was created from"
},
"name": {
"type": "string",
"example": "Server",
"description": "Server name at the time the Image was created"
}
},
"description": "Information about the Server the Image was created from"
},
"rapid_deploy": {
"type": "boolean",
"example": false,
"description": "Indicates that rapid deploy of the Image is available"
}
}
},
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsDetachFromNetworkRequest
{
"type": "object",
"title": "DetachFromNetworkRequest",
"required": [
"network"
],
"properties": {
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "ID of an existing network to detach the Server from"
}
}
}
ServerActionsDetachFromNetworkResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsDetachIsoFromServerResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsDisableBackupResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsDisableRescueModeResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsEnableBackupResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsEnableRescueModeRequest
{
"type": "object",
"properties": {
"type": {
"enum": [
"linux64"
],
"type": "string",
"default": "linux64",
"description": "Type of rescue system to boot."
},
"ssh_keys": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
2323
],
"description": "Array of SSH key IDs which should be injected into the rescue system."
}
}
}
ServerActionsEnableRescueModeResponse
{
"type": "object",
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"root_password": {
"type": "string",
"example": "zCWbFhnu950dUTko5f40",
"description": "Password that will be set for this Server once the Action succeeds"
}
}
}
ServerActionsGetActionById200Response
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsGetActionByIdResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsGetAllActionsResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
ServerActionsGetAllResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
ServerActionsGracefulShutdownResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsPowerOffServerResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsPowerOnServerResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsRebuildServerFromImageRequest
{
"type": "object",
"title": "RebuildServerRequest",
"required": [
"image"
],
"properties": {
"image": {
"type": "string",
"example": "ubuntu-20.04",
"description": "ID or name of Image to rebuilt from."
}
}
}
ServerActionsRebuildServerFromImageResponse
{
"type": "object",
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"root_password": {
"type": "string",
"nullable": true,
"description": "New root password when not using SSH keys"
}
}
}
ServerActionsRemoveFromPlacementGroupResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsRequestConsoleResponse
{
"type": "object",
"required": [
"wss_url",
"password",
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"wss_url": {
"type": "string",
"example": "wss://console.hetzner.cloud/?server_id=1&token=3db32d15-af2f-459c-8bf8-dee1fd05f49c",
"description": "URL of websocket proxy to use; this includes a token which is valid for a limited time only"
},
"password": {
"type": "string",
"example": "9MQaTg2VAGI0FIpc10k3UpRXcHj2wQ6x",
"description": "VNC password to use for this connection (this password only works in combination with a wss_url with valid token)"
}
}
}
ServerActionsResetServerPasswordResponse
{
"type": "object",
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"root_password": {
"type": "string",
"example": "zCWbFhnu950dUTko5f40",
"description": "Password that will be set for this Server once the Action succeeds"
}
}
}
ServerActionsResetServerResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerActionsSoftRebootServerResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServerID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
}
ServerTypeID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server Type."
}
ServerTypesGetServerTypeResponse
{
"type": "object",
"required": [
"server_type"
],
"properties": {
"server_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"cores",
"memory",
"disk",
"deprecated",
"prices",
"storage_type",
"cpu_type",
"architecture",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server type"
},
"disk": {
"type": "number",
"example": 24,
"description": "Disk size a Server of this type will have in GB"
},
"name": {
"type": "string",
"example": "cx11",
"description": "Unique identifier of the Server type"
},
"cores": {
"type": "number",
"example": 1,
"description": "Number of cpu cores a Server of this type will have"
},
"memory": {
"type": "number",
"example": 1,
"description": "Memory a Server of this type will have in GB"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Hourly costs for a Server type in this Location"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Server type in this Location"
}
}
},
"description": "Prices in different Locations"
},
"cpu_type": {
"enum": [
"shared",
"dedicated"
],
"type": "string",
"description": "Type of cpu"
},
"deprecated": {
"type": "boolean",
"example": false,
"description": "This field is deprecated. Use the deprecation object instead"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "CX11",
"description": "Description of the Server type"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture"
},
"storage_type": {
"enum": [
"local",
"network"
],
"type": "string",
"description": "Type of Server boot drive. Local has higher speed. Network has better availability."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"description": "Free traffic per month in bytes"
}
}
}
}
}
ServerTypesListAllServerTypesResponse
{
"type": "object",
"required": [
"server_types"
],
"properties": {
"server_types": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"description",
"cores",
"memory",
"disk",
"deprecated",
"prices",
"storage_type",
"cpu_type",
"architecture",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server type"
},
"disk": {
"type": "number",
"example": 24,
"description": "Disk size a Server of this type will have in GB"
},
"name": {
"type": "string",
"example": "cx11",
"description": "Unique identifier of the Server type"
},
"cores": {
"type": "number",
"example": 1,
"description": "Number of cpu cores a Server of this type will have"
},
"memory": {
"type": "number",
"example": 1,
"description": "Memory a Server of this type will have in GB"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Hourly costs for a Server type in this Location"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Server type in this Location"
}
}
},
"description": "Prices in different Locations"
},
"cpu_type": {
"enum": [
"shared",
"dedicated"
],
"type": "string",
"description": "Type of cpu"
},
"deprecated": {
"type": "boolean",
"example": false,
"description": "This field is deprecated. Use the deprecation object instead"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "CX11",
"description": "Description of the Server type"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture"
},
"storage_type": {
"enum": [
"local",
"network"
],
"type": "string",
"description": "Type of Server boot drive. Local has higher speed. Network has better availability."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"description": "Free traffic per month in bytes"
}
}
}
}
}
}
ServersCreateServerActionRequest
{
"type": "object",
"title": "CreateServerRequest",
"required": [
"name",
"server_type",
"image"
],
"properties": {
"name": {
"type": "string",
"example": "my-server",
"description": "Name of the Server to create (must be unique per Project and a valid hostname as per RFC 1123)"
},
"image": {
"type": "string",
"example": "ubuntu-20.04",
"description": "ID or name of the Image the Server is created from"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"volumes": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
123
],
"description": "Volume IDs which should be attached to the Server at the creation time. Volumes must be in the same Location."
},
"location": {
"type": "string",
"example": "nbg1",
"description": "ID or name of Location to create Server in (must not be used together with datacenter)"
},
"networks": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
456
],
"description": "Network IDs which should be attached to the Server private network interface at the creation time"
},
"ssh_keys": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"my-ssh-key"
],
"description": "SSH key IDs (`integer`) or names (`string`) which should be injected into the Server at creation time"
},
"automount": {
"type": "boolean",
"example": false,
"description": "Auto-mount Volumes after attach"
},
"firewalls": {
"type": "array",
"items": {
"type": "object",
"required": [
"firewall"
],
"properties": {
"firewall": {
"type": "integer",
"format": "int64",
"description": "ID of the Firewall"
}
}
},
"example": [
{
"firewall": 38
}
],
"description": "Firewalls which should be applied on the Server's public network interface at creation time"
},
"user_data": {
"type": "string",
"example": "#cloud-config\nruncmd:\n- [touch, /root/cloud-init-worked]\n",
"description": "Cloud-Init user data to use during Server creation. This field is limited to 32KiB."
},
"datacenter": {
"type": "string",
"example": "nbg1-dc3",
"description": "ID or name of Datacenter to create Server in (must not be used together with location)"
},
"public_net": {
"type": "object",
"properties": {
"ipv4": {
"type": "integer",
"nullable": true,
"description": "ID of the ipv4 Primary IP to use. If omitted and enable_ipv4 is true, a new ipv4 Primary IP will automatically be created."
},
"ipv6": {
"type": "integer",
"nullable": true,
"description": "ID of the ipv6 Primary IP to use. If omitted and enable_ipv6 is true, a new ipv6 Primary IP will automatically be created."
},
"enable_ipv4": {
"type": "boolean",
"default": true,
"description": "Attach an IPv4 on the public NIC. If false, no IPv4 address will be attached."
},
"enable_ipv6": {
"type": "boolean",
"default": true,
"description": "Attach an IPv6 on the public NIC. If false, no IPv6 address will be attached."
}
},
"description": "Public Network options"
},
"server_type": {
"type": "string",
"example": "cx11",
"description": "ID or name of the Server type this Server should be created with"
},
"placement_group": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Placement Group the server should be in"
},
"start_after_create": {
"type": "boolean",
"default": true,
"example": true,
"description": "This automatically triggers a [Power on a Server-Server Action](https://docs.hetzner.cloud) after the creation is finished and is returned in the `next_actions` response object."
}
}
}
ServersCreateServerActionResponse
{
"type": "object",
"title": "CreateServerResponse",
"required": [
"server",
"action",
"next_actions",
"root_password"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"server": {
"type": "object",
"required": [
"id",
"name",
"status",
"created",
"public_net",
"private_net",
"server_type",
"datacenter",
"image",
"iso",
"rescue_enabled",
"locked",
"backup_window",
"outgoing_traffic",
"ingoing_traffic",
"included_traffic",
"protection",
"labels",
"primary_disk_size"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
},
"iso": {
"type": "object",
"nullable": true,
"required": [
"id",
"name",
"description",
"type",
"deprecation",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the ISO."
},
"name": {
"type": "string",
"example": "FreeBSD-11.0-RELEASE-amd64-dvd1",
"nullable": true,
"description": "Unique identifier of the ISO. Only set for public ISOs"
},
"type": {
"enum": [
"public",
"private"
],
"type": "string",
"nullable": true,
"description": "Type of the ISO"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "FreeBSD 11.0 x64",
"description": "Description of the ISO"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"nullable": true,
"description": "Type of cpu architecture this iso is compatible with. Null indicates no restriction on the architecture (wildcard)."
}
},
"description": "ISO Image that is attached to this Server. Null if no ISO is attached."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Server (must be unique per Project and a valid hostname as per RFC 1123)"
},
"image": {
"type": "object",
"nullable": true,
"required": [
"id",
"type",
"status",
"name",
"description",
"image_size",
"disk_size",
"created",
"created_from",
"bound_to",
"os_flavor",
"os_version",
"protection",
"deprecated",
"deleted",
"labels",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Image."
},
"name": {
"type": "string",
"example": "ubuntu-20.04",
"nullable": true,
"description": "Unique identifier of the Image. This value is only set for system Images."
},
"type": {
"enum": [
"system",
"app",
"snapshot",
"backup",
"temporary"
],
"type": "string",
"example": "snapshot",
"description": "Type of the Image"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"enum": [
"available",
"creating",
"unavailable"
],
"type": "string",
"description": "Whether the Image can be used or if it's still being created or unavailable"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"deleted": {
"type": "string",
"example": null,
"nullable": true,
"description": "Point in time where the Image was deleted (in ISO-8601 format)"
},
"bound_to": {
"type": "integer",
"format": "int64",
"example": null,
"nullable": true,
"description": "ID of Server the Image is bound to. Only set for Images of type `backup`."
},
"disk_size": {
"type": "number",
"example": 10,
"description": "Size of the disk contained in the Image in GB"
},
"os_flavor": {
"enum": [
"ubuntu",
"centos",
"debian",
"fedora",
"rocky",
"alma",
"unknown"
],
"type": "string",
"example": "ubuntu",
"description": "Flavor of operating system contained in the Image"
},
"deprecated": {
"type": "string",
"example": "2018-02-28T00:00:00+00:00",
"nullable": true,
"description": "Point in time when the Image is considered to be deprecated (in ISO-8601 format)"
},
"image_size": {
"type": "number",
"example": 2.3,
"nullable": true,
"description": "Size of the Image file in our storage in GB. For snapshot Images this is the value relevant for calculating costs for the Image."
},
"os_version": {
"type": "string",
"example": "20.04",
"nullable": true,
"description": "Operating system version"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "Ubuntu 20.04 Standard 64 bit",
"description": "Description of the Image"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture this image is compatible with."
},
"created_from": {
"type": "object",
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server the Image was created from"
},
"name": {
"type": "string",
"example": "Server",
"description": "Server name at the time the Image was created"
}
},
"description": "Information about the Server the Image was created from"
},
"rapid_deploy": {
"type": "boolean",
"example": false,
"description": "Indicates that rapid deploy of the Image is available"
}
},
"description": "Image the server is based on."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"locked": {
"type": "boolean",
"example": false,
"description": "True if Server has been locked and is not available to user"
},
"status": {
"enum": [
"running",
"initializing",
"starting",
"stopping",
"off",
"deleting",
"migrating",
"rebuilding",
"unknown"
],
"type": "string",
"description": "Status of the Server"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"volumes": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "IDs of Volumes assigned to this Server"
},
"datacenter": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
},
"description": "Datacenter this Resource is located at"
},
"protection": {
"type": "object",
"required": [
"delete",
"rebuild"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "If true, prevents the Server from being deleted"
},
"rebuild": {
"type": "boolean",
"example": false,
"description": "If true, prevents the Server from being rebuilt"
}
},
"description": "Protection configuration for the Server"
},
"public_net": {
"type": "object",
"required": [
"ipv4",
"ipv6",
"floating_ips"
],
"properties": {
"ipv4": {
"type": "object",
"nullable": true,
"required": [
"ip",
"blocked",
"dns_ptr"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "1.2.3.4",
"description": "IP address (v4) of this Server"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "If the IP is blocked by our anti abuse dept"
},
"dns_ptr": {
"type": "string",
"example": "server01.example.com",
"description": "Reverse DNS PTR entry for the IPv4 addresses of this Server"
}
},
"description": "IP address (v4) and its reverse DNS entry of this Server"
},
"ipv6": {
"type": "object",
"nullable": true,
"required": [
"ip",
"blocked",
"dns_ptr"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "2001:db8::/64",
"description": "IP address (v6) of this Server"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "If the IP is blocked by our anti abuse dept"
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"description": "Single IPv6 address of this Server for which the reverse DNS entry has been set up"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"nullable": true,
"description": "Reverse DNS PTR entries for the IPv6 addresses of this Server"
}
},
"description": "IPv6 network assigned to this Server and its reverse DNS entry"
},
"firewalls": {
"type": "array",
"items": {
"type": "object",
"title": "ServerPublicNetFirewall",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Firewall."
},
"status": {
"enum": [
"applied",
"pending"
],
"type": "string",
"example": "applied",
"description": "Status of the Firewall on the Server"
}
}
},
"description": "Firewalls applied to the public network interface of this Server"
},
"floating_ips": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
478
],
"description": "IDs of Floating IPs assigned to this Server"
}
},
"description": "Public network information. The Server's IPv4 address can be found in `public_net->ipv4->ip`"
},
"private_net": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "10.0.0.2",
"description": "The server IP address on the network."
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "The Network ID the server is attached to."
},
"alias_ips": {
"type": "array",
"items": {
"type": "string"
},
"description": "Additional IP addresses of the server on the network."
},
"mac_address": {
"type": "string",
"example": "86:00:ff:2a:7d:e1",
"description": "The server MAC address on the network."
}
}
},
"description": "Private networks information"
},
"server_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"cores",
"memory",
"disk",
"deprecated",
"prices",
"storage_type",
"cpu_type",
"architecture",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server type"
},
"disk": {
"type": "number",
"example": 24,
"description": "Disk size a Server of this type will have in GB"
},
"name": {
"type": "string",
"example": "cx11",
"description": "Unique identifier of the Server type"
},
"cores": {
"type": "number",
"example": 1,
"description": "Number of cpu cores a Server of this type will have"
},
"memory": {
"type": "number",
"example": 1,
"description": "Memory a Server of this type will have in GB"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Hourly costs for a Server type in this Location"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Server type in this Location"
}
}
},
"description": "Prices in different Locations"
},
"cpu_type": {
"enum": [
"shared",
"dedicated"
],
"type": "string",
"description": "Type of cpu"
},
"deprecated": {
"type": "boolean",
"example": false,
"description": "This field is deprecated. Use the deprecation object instead"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "CX11",
"description": "Description of the Server type"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture"
},
"storage_type": {
"enum": [
"local",
"network"
],
"type": "string",
"description": "Type of Server boot drive. Local has higher speed. Network has better availability."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"description": "Free traffic per month in bytes"
}
}
},
"backup_window": {
"type": "string",
"example": "22-02",
"nullable": true,
"description": "Time window (UTC) in which the backup will run, or null if the backups are not enabled"
},
"load_balancers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "Load Balancer IDs assigned to the server."
},
"rescue_enabled": {
"type": "boolean",
"example": false,
"description": "True if rescue mode is enabled. Server will then boot into rescue system on next reboot"
},
"ingoing_traffic": {
"type": "integer",
"format": "int64",
"example": 123456,
"nullable": true,
"description": "Inbound Traffic for the current billing period in bytes"
},
"placement_group": {
"type": "object",
"title": "PlacementGroupNullable",
"nullable": true,
"required": [
"id",
"name",
"labels",
"type",
"created",
"servers"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Placement Group."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"spread"
],
"type": "string",
"example": "spread",
"description": "Type of the Placement Group"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers that are part of this Placement Group"
}
},
"description": "The placement group the server is assigned to."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"nullable": true,
"description": "Free Traffic for the current billing period in bytes"
},
"outgoing_traffic": {
"type": "integer",
"format": "int64",
"example": 123456,
"nullable": true,
"description": "Outbound Traffic for the current billing period in bytes"
},
"primary_disk_size": {
"type": "number",
"example": 50,
"description": "Size of the primary Disk"
}
}
},
"next_actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
},
"root_password": {
"type": "string",
"example": "YItygq1v3GYjjMomLaKc",
"nullable": true,
"description": "Root password when no SSH keys have been specified"
}
}
}
ServersDeleteServerResponse
{
"type": "object",
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
ServersGetAllResponse
{
"type": "object",
"required": [
"servers",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"servers": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"status",
"created",
"public_net",
"private_net",
"server_type",
"datacenter",
"image",
"iso",
"rescue_enabled",
"locked",
"backup_window",
"outgoing_traffic",
"ingoing_traffic",
"included_traffic",
"protection",
"labels",
"primary_disk_size"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
},
"iso": {
"type": "object",
"nullable": true,
"required": [
"id",
"name",
"description",
"type",
"deprecation",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the ISO."
},
"name": {
"type": "string",
"example": "FreeBSD-11.0-RELEASE-amd64-dvd1",
"nullable": true,
"description": "Unique identifier of the ISO. Only set for public ISOs"
},
"type": {
"enum": [
"public",
"private"
],
"type": "string",
"nullable": true,
"description": "Type of the ISO"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "FreeBSD 11.0 x64",
"description": "Description of the ISO"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"nullable": true,
"description": "Type of cpu architecture this iso is compatible with. Null indicates no restriction on the architecture (wildcard)."
}
},
"description": "ISO Image that is attached to this Server. Null if no ISO is attached."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Server (must be unique per Project and a valid hostname as per RFC 1123)"
},
"image": {
"type": "object",
"nullable": true,
"required": [
"id",
"type",
"status",
"name",
"description",
"image_size",
"disk_size",
"created",
"created_from",
"bound_to",
"os_flavor",
"os_version",
"protection",
"deprecated",
"deleted",
"labels",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Image."
},
"name": {
"type": "string",
"example": "ubuntu-20.04",
"nullable": true,
"description": "Unique identifier of the Image. This value is only set for system Images."
},
"type": {
"enum": [
"system",
"app",
"snapshot",
"backup",
"temporary"
],
"type": "string",
"example": "snapshot",
"description": "Type of the Image"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"enum": [
"available",
"creating",
"unavailable"
],
"type": "string",
"description": "Whether the Image can be used or if it's still being created or unavailable"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"deleted": {
"type": "string",
"example": null,
"nullable": true,
"description": "Point in time where the Image was deleted (in ISO-8601 format)"
},
"bound_to": {
"type": "integer",
"format": "int64",
"example": null,
"nullable": true,
"description": "ID of Server the Image is bound to. Only set for Images of type `backup`."
},
"disk_size": {
"type": "number",
"example": 10,
"description": "Size of the disk contained in the Image in GB"
},
"os_flavor": {
"enum": [
"ubuntu",
"centos",
"debian",
"fedora",
"rocky",
"alma",
"unknown"
],
"type": "string",
"example": "ubuntu",
"description": "Flavor of operating system contained in the Image"
},
"deprecated": {
"type": "string",
"example": "2018-02-28T00:00:00+00:00",
"nullable": true,
"description": "Point in time when the Image is considered to be deprecated (in ISO-8601 format)"
},
"image_size": {
"type": "number",
"example": 2.3,
"nullable": true,
"description": "Size of the Image file in our storage in GB. For snapshot Images this is the value relevant for calculating costs for the Image."
},
"os_version": {
"type": "string",
"example": "20.04",
"nullable": true,
"description": "Operating system version"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "Ubuntu 20.04 Standard 64 bit",
"description": "Description of the Image"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture this image is compatible with."
},
"created_from": {
"type": "object",
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server the Image was created from"
},
"name": {
"type": "string",
"example": "Server",
"description": "Server name at the time the Image was created"
}
},
"description": "Information about the Server the Image was created from"
},
"rapid_deploy": {
"type": "boolean",
"example": false,
"description": "Indicates that rapid deploy of the Image is available"
}
},
"description": "Image the server is based on."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"locked": {
"type": "boolean",
"example": false,
"description": "True if Server has been locked and is not available to user"
},
"status": {
"enum": [
"running",
"initializing",
"starting",
"stopping",
"off",
"deleting",
"migrating",
"rebuilding",
"unknown"
],
"type": "string",
"description": "Status of the Server"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"volumes": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "IDs of Volumes assigned to this Server"
},
"datacenter": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
},
"description": "Datacenter this Resource is located at"
},
"protection": {
"type": "object",
"required": [
"delete",
"rebuild"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "If true, prevents the Server from being deleted"
},
"rebuild": {
"type": "boolean",
"example": false,
"description": "If true, prevents the Server from being rebuilt"
}
},
"description": "Protection configuration for the Server"
},
"public_net": {
"type": "object",
"required": [
"ipv4",
"ipv6",
"floating_ips"
],
"properties": {
"ipv4": {
"type": "object",
"nullable": true,
"required": [
"ip",
"blocked",
"dns_ptr"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "1.2.3.4",
"description": "IP address (v4) of this Server"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "If the IP is blocked by our anti abuse dept"
},
"dns_ptr": {
"type": "string",
"example": "server01.example.com",
"description": "Reverse DNS PTR entry for the IPv4 addresses of this Server"
}
},
"description": "IP address (v4) and its reverse DNS entry of this Server"
},
"ipv6": {
"type": "object",
"nullable": true,
"required": [
"ip",
"blocked",
"dns_ptr"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "2001:db8::/64",
"description": "IP address (v6) of this Server"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "If the IP is blocked by our anti abuse dept"
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"description": "Single IPv6 address of this Server for which the reverse DNS entry has been set up"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"nullable": true,
"description": "Reverse DNS PTR entries for the IPv6 addresses of this Server"
}
},
"description": "IPv6 network assigned to this Server and its reverse DNS entry"
},
"firewalls": {
"type": "array",
"items": {
"type": "object",
"title": "ServerPublicNetFirewall",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Firewall."
},
"status": {
"enum": [
"applied",
"pending"
],
"type": "string",
"example": "applied",
"description": "Status of the Firewall on the Server"
}
}
},
"description": "Firewalls applied to the public network interface of this Server"
},
"floating_ips": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
478
],
"description": "IDs of Floating IPs assigned to this Server"
}
},
"description": "Public network information. The Server's IPv4 address can be found in `public_net->ipv4->ip`"
},
"private_net": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "10.0.0.2",
"description": "The server IP address on the network."
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "The Network ID the server is attached to."
},
"alias_ips": {
"type": "array",
"items": {
"type": "string"
},
"description": "Additional IP addresses of the server on the network."
},
"mac_address": {
"type": "string",
"example": "86:00:ff:2a:7d:e1",
"description": "The server MAC address on the network."
}
}
},
"description": "Private networks information"
},
"server_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"cores",
"memory",
"disk",
"deprecated",
"prices",
"storage_type",
"cpu_type",
"architecture",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server type"
},
"disk": {
"type": "number",
"example": 24,
"description": "Disk size a Server of this type will have in GB"
},
"name": {
"type": "string",
"example": "cx11",
"description": "Unique identifier of the Server type"
},
"cores": {
"type": "number",
"example": 1,
"description": "Number of cpu cores a Server of this type will have"
},
"memory": {
"type": "number",
"example": 1,
"description": "Memory a Server of this type will have in GB"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Hourly costs for a Server type in this Location"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Server type in this Location"
}
}
},
"description": "Prices in different Locations"
},
"cpu_type": {
"enum": [
"shared",
"dedicated"
],
"type": "string",
"description": "Type of cpu"
},
"deprecated": {
"type": "boolean",
"example": false,
"description": "This field is deprecated. Use the deprecation object instead"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "CX11",
"description": "Description of the Server type"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture"
},
"storage_type": {
"enum": [
"local",
"network"
],
"type": "string",
"description": "Type of Server boot drive. Local has higher speed. Network has better availability."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"description": "Free traffic per month in bytes"
}
}
},
"backup_window": {
"type": "string",
"example": "22-02",
"nullable": true,
"description": "Time window (UTC) in which the backup will run, or null if the backups are not enabled"
},
"load_balancers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "Load Balancer IDs assigned to the server."
},
"rescue_enabled": {
"type": "boolean",
"example": false,
"description": "True if rescue mode is enabled. Server will then boot into rescue system on next reboot"
},
"ingoing_traffic": {
"type": "integer",
"format": "int64",
"example": 123456,
"nullable": true,
"description": "Inbound Traffic for the current billing period in bytes"
},
"placement_group": {
"type": "object",
"title": "PlacementGroupNullable",
"nullable": true,
"required": [
"id",
"name",
"labels",
"type",
"created",
"servers"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Placement Group."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"spread"
],
"type": "string",
"example": "spread",
"description": "Type of the Placement Group"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers that are part of this Placement Group"
}
},
"description": "The placement group the server is assigned to."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"nullable": true,
"description": "Free Traffic for the current billing period in bytes"
},
"outgoing_traffic": {
"type": "integer",
"format": "int64",
"example": 123456,
"nullable": true,
"description": "Outbound Traffic for the current billing period in bytes"
},
"primary_disk_size": {
"type": "number",
"example": 50,
"description": "Size of the primary Disk"
}
}
}
}
}
}
ServersGetMetricsForServerResponse
{
"type": "object",
"required": [
"metrics"
],
"properties": {
"metrics": {
"type": "object",
"required": [
"start",
"end",
"step",
"time_series"
],
"properties": {
"end": {
"type": "string",
"example": "2017-01-01T23:00:00+00:00",
"description": "End of period of metrics reported (in ISO-8601 format)"
},
"step": {
"type": "number",
"example": 60,
"description": "Resolution of results in seconds."
},
"start": {
"type": "string",
"example": "2017-01-01T00:00:00+00:00",
"description": "Start of period of metrics reported (in ISO-8601 format)"
},
"time_series": {
"type": "object",
"example": {
"name_of_timeseries": {
"values": [
[
1435781470.622,
"42"
],
[
1435781471.622,
"43"
]
]
}
},
"description": "Hash with timeseries information, containing the name of timeseries as key",
"additionalProperties": {
"type": "object",
"required": [
"values"
],
"properties": {
"values": {
"type": "array",
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
}
},
"description": "Metrics Timestamps with values"
}
}
}
}
}
}
}
}
ServersGetServerResponse
{
"type": "object",
"properties": {
"server": {
"type": "object",
"required": [
"id",
"name",
"status",
"created",
"public_net",
"private_net",
"server_type",
"datacenter",
"image",
"iso",
"rescue_enabled",
"locked",
"backup_window",
"outgoing_traffic",
"ingoing_traffic",
"included_traffic",
"protection",
"labels",
"primary_disk_size"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
},
"iso": {
"type": "object",
"nullable": true,
"required": [
"id",
"name",
"description",
"type",
"deprecation",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the ISO."
},
"name": {
"type": "string",
"example": "FreeBSD-11.0-RELEASE-amd64-dvd1",
"nullable": true,
"description": "Unique identifier of the ISO. Only set for public ISOs"
},
"type": {
"enum": [
"public",
"private"
],
"type": "string",
"nullable": true,
"description": "Type of the ISO"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "FreeBSD 11.0 x64",
"description": "Description of the ISO"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"nullable": true,
"description": "Type of cpu architecture this iso is compatible with. Null indicates no restriction on the architecture (wildcard)."
}
},
"description": "ISO Image that is attached to this Server. Null if no ISO is attached."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Server (must be unique per Project and a valid hostname as per RFC 1123)"
},
"image": {
"type": "object",
"nullable": true,
"required": [
"id",
"type",
"status",
"name",
"description",
"image_size",
"disk_size",
"created",
"created_from",
"bound_to",
"os_flavor",
"os_version",
"protection",
"deprecated",
"deleted",
"labels",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Image."
},
"name": {
"type": "string",
"example": "ubuntu-20.04",
"nullable": true,
"description": "Unique identifier of the Image. This value is only set for system Images."
},
"type": {
"enum": [
"system",
"app",
"snapshot",
"backup",
"temporary"
],
"type": "string",
"example": "snapshot",
"description": "Type of the Image"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"enum": [
"available",
"creating",
"unavailable"
],
"type": "string",
"description": "Whether the Image can be used or if it's still being created or unavailable"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"deleted": {
"type": "string",
"example": null,
"nullable": true,
"description": "Point in time where the Image was deleted (in ISO-8601 format)"
},
"bound_to": {
"type": "integer",
"format": "int64",
"example": null,
"nullable": true,
"description": "ID of Server the Image is bound to. Only set for Images of type `backup`."
},
"disk_size": {
"type": "number",
"example": 10,
"description": "Size of the disk contained in the Image in GB"
},
"os_flavor": {
"enum": [
"ubuntu",
"centos",
"debian",
"fedora",
"rocky",
"alma",
"unknown"
],
"type": "string",
"example": "ubuntu",
"description": "Flavor of operating system contained in the Image"
},
"deprecated": {
"type": "string",
"example": "2018-02-28T00:00:00+00:00",
"nullable": true,
"description": "Point in time when the Image is considered to be deprecated (in ISO-8601 format)"
},
"image_size": {
"type": "number",
"example": 2.3,
"nullable": true,
"description": "Size of the Image file in our storage in GB. For snapshot Images this is the value relevant for calculating costs for the Image."
},
"os_version": {
"type": "string",
"example": "20.04",
"nullable": true,
"description": "Operating system version"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "Ubuntu 20.04 Standard 64 bit",
"description": "Description of the Image"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture this image is compatible with."
},
"created_from": {
"type": "object",
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server the Image was created from"
},
"name": {
"type": "string",
"example": "Server",
"description": "Server name at the time the Image was created"
}
},
"description": "Information about the Server the Image was created from"
},
"rapid_deploy": {
"type": "boolean",
"example": false,
"description": "Indicates that rapid deploy of the Image is available"
}
},
"description": "Image the server is based on."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"locked": {
"type": "boolean",
"example": false,
"description": "True if Server has been locked and is not available to user"
},
"status": {
"enum": [
"running",
"initializing",
"starting",
"stopping",
"off",
"deleting",
"migrating",
"rebuilding",
"unknown"
],
"type": "string",
"description": "Status of the Server"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"volumes": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "IDs of Volumes assigned to this Server"
},
"datacenter": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
},
"description": "Datacenter this Resource is located at"
},
"protection": {
"type": "object",
"required": [
"delete",
"rebuild"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "If true, prevents the Server from being deleted"
},
"rebuild": {
"type": "boolean",
"example": false,
"description": "If true, prevents the Server from being rebuilt"
}
},
"description": "Protection configuration for the Server"
},
"public_net": {
"type": "object",
"required": [
"ipv4",
"ipv6",
"floating_ips"
],
"properties": {
"ipv4": {
"type": "object",
"nullable": true,
"required": [
"ip",
"blocked",
"dns_ptr"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "1.2.3.4",
"description": "IP address (v4) of this Server"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "If the IP is blocked by our anti abuse dept"
},
"dns_ptr": {
"type": "string",
"example": "server01.example.com",
"description": "Reverse DNS PTR entry for the IPv4 addresses of this Server"
}
},
"description": "IP address (v4) and its reverse DNS entry of this Server"
},
"ipv6": {
"type": "object",
"nullable": true,
"required": [
"ip",
"blocked",
"dns_ptr"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "2001:db8::/64",
"description": "IP address (v6) of this Server"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "If the IP is blocked by our anti abuse dept"
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"description": "Single IPv6 address of this Server for which the reverse DNS entry has been set up"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"nullable": true,
"description": "Reverse DNS PTR entries for the IPv6 addresses of this Server"
}
},
"description": "IPv6 network assigned to this Server and its reverse DNS entry"
},
"firewalls": {
"type": "array",
"items": {
"type": "object",
"title": "ServerPublicNetFirewall",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Firewall."
},
"status": {
"enum": [
"applied",
"pending"
],
"type": "string",
"example": "applied",
"description": "Status of the Firewall on the Server"
}
}
},
"description": "Firewalls applied to the public network interface of this Server"
},
"floating_ips": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
478
],
"description": "IDs of Floating IPs assigned to this Server"
}
},
"description": "Public network information. The Server's IPv4 address can be found in `public_net->ipv4->ip`"
},
"private_net": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "10.0.0.2",
"description": "The server IP address on the network."
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "The Network ID the server is attached to."
},
"alias_ips": {
"type": "array",
"items": {
"type": "string"
},
"description": "Additional IP addresses of the server on the network."
},
"mac_address": {
"type": "string",
"example": "86:00:ff:2a:7d:e1",
"description": "The server MAC address on the network."
}
}
},
"description": "Private networks information"
},
"server_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"cores",
"memory",
"disk",
"deprecated",
"prices",
"storage_type",
"cpu_type",
"architecture",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server type"
},
"disk": {
"type": "number",
"example": 24,
"description": "Disk size a Server of this type will have in GB"
},
"name": {
"type": "string",
"example": "cx11",
"description": "Unique identifier of the Server type"
},
"cores": {
"type": "number",
"example": 1,
"description": "Number of cpu cores a Server of this type will have"
},
"memory": {
"type": "number",
"example": 1,
"description": "Memory a Server of this type will have in GB"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Hourly costs for a Server type in this Location"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Server type in this Location"
}
}
},
"description": "Prices in different Locations"
},
"cpu_type": {
"enum": [
"shared",
"dedicated"
],
"type": "string",
"description": "Type of cpu"
},
"deprecated": {
"type": "boolean",
"example": false,
"description": "This field is deprecated. Use the deprecation object instead"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "CX11",
"description": "Description of the Server type"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture"
},
"storage_type": {
"enum": [
"local",
"network"
],
"type": "string",
"description": "Type of Server boot drive. Local has higher speed. Network has better availability."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"description": "Free traffic per month in bytes"
}
}
},
"backup_window": {
"type": "string",
"example": "22-02",
"nullable": true,
"description": "Time window (UTC) in which the backup will run, or null if the backups are not enabled"
},
"load_balancers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "Load Balancer IDs assigned to the server."
},
"rescue_enabled": {
"type": "boolean",
"example": false,
"description": "True if rescue mode is enabled. Server will then boot into rescue system on next reboot"
},
"ingoing_traffic": {
"type": "integer",
"format": "int64",
"example": 123456,
"nullable": true,
"description": "Inbound Traffic for the current billing period in bytes"
},
"placement_group": {
"type": "object",
"title": "PlacementGroupNullable",
"nullable": true,
"required": [
"id",
"name",
"labels",
"type",
"created",
"servers"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Placement Group."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"spread"
],
"type": "string",
"example": "spread",
"description": "Type of the Placement Group"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers that are part of this Placement Group"
}
},
"description": "The placement group the server is assigned to."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"nullable": true,
"description": "Free Traffic for the current billing period in bytes"
},
"outgoing_traffic": {
"type": "integer",
"format": "int64",
"example": 123456,
"nullable": true,
"description": "Outbound Traffic for the current billing period in bytes"
},
"primary_disk_size": {
"type": "number",
"example": 50,
"description": "Size of the primary Disk"
}
}
}
}
}
ServersUpdateServerRequest
{
"type": "object",
"title": "UpdateServerRequest",
"properties": {
"name": {
"type": "string",
"example": "my-server",
"description": "New name to set"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
}
}
}
ServersUpdateServerResponse
{
"type": "object",
"properties": {
"server": {
"type": "object",
"required": [
"id",
"name",
"status",
"created",
"public_net",
"private_net",
"server_type",
"datacenter",
"image",
"iso",
"rescue_enabled",
"locked",
"backup_window",
"outgoing_traffic",
"ingoing_traffic",
"included_traffic",
"protection",
"labels",
"primary_disk_size"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Server."
},
"iso": {
"type": "object",
"nullable": true,
"required": [
"id",
"name",
"description",
"type",
"deprecation",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the ISO."
},
"name": {
"type": "string",
"example": "FreeBSD-11.0-RELEASE-amd64-dvd1",
"nullable": true,
"description": "Unique identifier of the ISO. Only set for public ISOs"
},
"type": {
"enum": [
"public",
"private"
],
"type": "string",
"nullable": true,
"description": "Type of the ISO"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "FreeBSD 11.0 x64",
"description": "Description of the ISO"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"nullable": true,
"description": "Type of cpu architecture this iso is compatible with. Null indicates no restriction on the architecture (wildcard)."
}
},
"description": "ISO Image that is attached to this Server. Null if no ISO is attached."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Server (must be unique per Project and a valid hostname as per RFC 1123)"
},
"image": {
"type": "object",
"nullable": true,
"required": [
"id",
"type",
"status",
"name",
"description",
"image_size",
"disk_size",
"created",
"created_from",
"bound_to",
"os_flavor",
"os_version",
"protection",
"deprecated",
"deleted",
"labels",
"architecture"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Image."
},
"name": {
"type": "string",
"example": "ubuntu-20.04",
"nullable": true,
"description": "Unique identifier of the Image. This value is only set for system Images."
},
"type": {
"enum": [
"system",
"app",
"snapshot",
"backup",
"temporary"
],
"type": "string",
"example": "snapshot",
"description": "Type of the Image"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"status": {
"enum": [
"available",
"creating",
"unavailable"
],
"type": "string",
"description": "Whether the Image can be used or if it's still being created or unavailable"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"deleted": {
"type": "string",
"example": null,
"nullable": true,
"description": "Point in time where the Image was deleted (in ISO-8601 format)"
},
"bound_to": {
"type": "integer",
"format": "int64",
"example": null,
"nullable": true,
"description": "ID of Server the Image is bound to. Only set for Images of type `backup`."
},
"disk_size": {
"type": "number",
"example": 10,
"description": "Size of the disk contained in the Image in GB"
},
"os_flavor": {
"enum": [
"ubuntu",
"centos",
"debian",
"fedora",
"rocky",
"alma",
"unknown"
],
"type": "string",
"example": "ubuntu",
"description": "Flavor of operating system contained in the Image"
},
"deprecated": {
"type": "string",
"example": "2018-02-28T00:00:00+00:00",
"nullable": true,
"description": "Point in time when the Image is considered to be deprecated (in ISO-8601 format)"
},
"image_size": {
"type": "number",
"example": 2.3,
"nullable": true,
"description": "Size of the Image file in our storage in GB. For snapshot Images this is the value relevant for calculating costs for the Image."
},
"os_version": {
"type": "string",
"example": "20.04",
"nullable": true,
"description": "Operating system version"
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"description": {
"type": "string",
"example": "Ubuntu 20.04 Standard 64 bit",
"description": "Description of the Image"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture this image is compatible with."
},
"created_from": {
"type": "object",
"nullable": true,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server the Image was created from"
},
"name": {
"type": "string",
"example": "Server",
"description": "Server name at the time the Image was created"
}
},
"description": "Information about the Server the Image was created from"
},
"rapid_deploy": {
"type": "boolean",
"example": false,
"description": "Indicates that rapid deploy of the Image is available"
}
},
"description": "Image the server is based on."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"locked": {
"type": "boolean",
"example": false,
"description": "True if Server has been locked and is not available to user"
},
"status": {
"enum": [
"running",
"initializing",
"starting",
"stopping",
"off",
"deleting",
"migrating",
"rebuilding",
"unknown"
],
"type": "string",
"description": "Status of the Server"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"volumes": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "IDs of Volumes assigned to this Server"
},
"datacenter": {
"type": "object",
"required": [
"id",
"name",
"description",
"location",
"server_types"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Datacenter."
},
"name": {
"type": "string",
"example": "fsn1-dc8",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Datacenter."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "The location of the datacenter."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 8",
"description": "Human readable description of the Datacenter."
},
"server_types": {
"type": "object",
"required": [
"supported",
"available",
"available_for_migration"
],
"properties": {
"available": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) currently available in this Datacenter.\n\nThe listed Server Types can currently be purchased. Types that are temporarily unavailable\nbut are supported in this Datacenter are listed as `supported`.\n"
},
"supported": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n\nThose Server Types are generally available in this Datacenter, but might be\ntemporarily out of stock.\n"
},
"available_for_migration": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
1,
2,
3
],
"description": "IDs of the [Server Types](https://docs.hetzner.cloud) that are available to migrate to in this Datacenter.\n\nExisting Servers can be migrated to the Server Types listed here.\n"
}
},
"description": "[Server Types](https://docs.hetzner.cloud) that are supported in this Datacenter.\n"
}
},
"description": "Datacenter this Resource is located at"
},
"protection": {
"type": "object",
"required": [
"delete",
"rebuild"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "If true, prevents the Server from being deleted"
},
"rebuild": {
"type": "boolean",
"example": false,
"description": "If true, prevents the Server from being rebuilt"
}
},
"description": "Protection configuration for the Server"
},
"public_net": {
"type": "object",
"required": [
"ipv4",
"ipv6",
"floating_ips"
],
"properties": {
"ipv4": {
"type": "object",
"nullable": true,
"required": [
"ip",
"blocked",
"dns_ptr"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "1.2.3.4",
"description": "IP address (v4) of this Server"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "If the IP is blocked by our anti abuse dept"
},
"dns_ptr": {
"type": "string",
"example": "server01.example.com",
"description": "Reverse DNS PTR entry for the IPv4 addresses of this Server"
}
},
"description": "IP address (v4) and its reverse DNS entry of this Server"
},
"ipv6": {
"type": "object",
"nullable": true,
"required": [
"ip",
"blocked",
"dns_ptr"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Primary IP."
},
"ip": {
"type": "string",
"example": "2001:db8::/64",
"description": "IP address (v6) of this Server"
},
"blocked": {
"type": "boolean",
"example": false,
"description": "If the IP is blocked by our anti abuse dept"
},
"dns_ptr": {
"type": "array",
"items": {
"type": "object",
"required": [
"ip",
"dns_ptr"
],
"properties": {
"ip": {
"type": "string",
"example": "2001:db8::1",
"description": "Single IPv6 address of this Server for which the reverse DNS entry has been set up"
},
"dns_ptr": {
"type": "string",
"example": "server.example.com",
"description": "DNS pointer for the specific IP address"
}
}
},
"nullable": true,
"description": "Reverse DNS PTR entries for the IPv6 addresses of this Server"
}
},
"description": "IPv6 network assigned to this Server and its reverse DNS entry"
},
"firewalls": {
"type": "array",
"items": {
"type": "object",
"title": "ServerPublicNetFirewall",
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Firewall."
},
"status": {
"enum": [
"applied",
"pending"
],
"type": "string",
"example": "applied",
"description": "Status of the Firewall on the Server"
}
}
},
"description": "Firewalls applied to the public network interface of this Server"
},
"floating_ips": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
478
],
"description": "IDs of Floating IPs assigned to this Server"
}
},
"description": "Public network information. The Server's IPv4 address can be found in `public_net->ipv4->ip`"
},
"private_net": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"example": "10.0.0.2",
"description": "The server IP address on the network."
},
"network": {
"type": "integer",
"format": "int64",
"example": 4711,
"description": "The Network ID the server is attached to."
},
"alias_ips": {
"type": "array",
"items": {
"type": "string"
},
"description": "Additional IP addresses of the server on the network."
},
"mac_address": {
"type": "string",
"example": "86:00:ff:2a:7d:e1",
"description": "The server MAC address on the network."
}
}
},
"description": "Private networks information"
},
"server_type": {
"type": "object",
"required": [
"id",
"name",
"description",
"cores",
"memory",
"disk",
"deprecated",
"prices",
"storage_type",
"cpu_type",
"architecture",
"included_traffic"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 1,
"description": "ID of the Server type"
},
"disk": {
"type": "number",
"example": 24,
"description": "Disk size a Server of this type will have in GB"
},
"name": {
"type": "string",
"example": "cx11",
"description": "Unique identifier of the Server type"
},
"cores": {
"type": "number",
"example": 1,
"description": "Number of cpu cores a Server of this type will have"
},
"memory": {
"type": "number",
"example": 1,
"description": "Memory a Server of this type will have in GB"
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"location",
"price_hourly",
"price_monthly"
],
"properties": {
"location": {
"type": "string",
"example": "fsn1",
"description": "Name of the Location the price is for"
},
"price_hourly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Hourly costs for a Server type in this Location"
},
"price_monthly": {
"type": "object",
"required": [
"net",
"gross"
],
"properties": {
"net": {
"type": "string",
"format": "decimal",
"example": "1.0000000000",
"description": "Price without VAT"
},
"gross": {
"type": "string",
"format": "decimal",
"example": "1.1900000000000000",
"description": "Price with VAT added"
}
},
"description": "Monthly costs for a Server type in this Location"
}
}
},
"description": "Prices in different Locations"
},
"cpu_type": {
"enum": [
"shared",
"dedicated"
],
"type": "string",
"description": "Type of cpu"
},
"deprecated": {
"type": "boolean",
"example": false,
"description": "This field is deprecated. Use the deprecation object instead"
},
"deprecation": {
"type": "object",
"title": "DeprecationInfo",
"nullable": true,
"required": [
"unavailable_after",
"announced"
],
"properties": {
"announced": {
"type": "string",
"format": "iso-8601",
"example": "2023-06-01T00:00:00+00:00",
"description": "Date of the deprecation announcement.\n"
},
"unavailable_after": {
"type": "string",
"format": "iso-8601",
"example": "2023-09-01T00:00:00+00:00",
"description": "Date of the deprecated resource removal.\n\nOnce this date is reached, the resource will not be returned\nby resource type \"list\" endpoint, and the resource can not be\nused to create new resources. For example, if this is an\nimage, you can not create new servers with this image after\nthe mentioned date.\n"
}
},
"description": "Describes if, when and how the resource is deprecated. If this field is\nset to `null` the resource is not deprecated. If a value is set, it is\nconsidered deprecated.\n"
},
"description": {
"type": "string",
"example": "CX11",
"description": "Description of the Server type"
},
"architecture": {
"enum": [
"x86",
"arm"
],
"type": "string",
"example": "x86",
"description": "Type of cpu architecture"
},
"storage_type": {
"enum": [
"local",
"network"
],
"type": "string",
"description": "Type of Server boot drive. Local has higher speed. Network has better availability."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"description": "Free traffic per month in bytes"
}
}
},
"backup_window": {
"type": "string",
"example": "22-02",
"nullable": true,
"description": "Time window (UTC) in which the backup will run, or null if the backups are not enabled"
},
"load_balancers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "Load Balancer IDs assigned to the server."
},
"rescue_enabled": {
"type": "boolean",
"example": false,
"description": "True if rescue mode is enabled. Server will then boot into rescue system on next reboot"
},
"ingoing_traffic": {
"type": "integer",
"format": "int64",
"example": 123456,
"nullable": true,
"description": "Inbound Traffic for the current billing period in bytes"
},
"placement_group": {
"type": "object",
"title": "PlacementGroupNullable",
"nullable": true,
"required": [
"id",
"name",
"labels",
"type",
"created",
"servers"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Placement Group."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"type": {
"enum": [
"spread"
],
"type": "string",
"example": "spread",
"description": "Type of the Placement Group"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"servers": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"example": [
42
],
"description": "Array of IDs of Servers that are part of this Placement Group"
}
},
"description": "The placement group the server is assigned to."
},
"included_traffic": {
"type": "integer",
"format": "int64",
"example": 654321,
"nullable": true,
"description": "Free Traffic for the current billing period in bytes"
},
"outgoing_traffic": {
"type": "integer",
"format": "int64",
"example": 123456,
"nullable": true,
"description": "Outbound Traffic for the current billing period in bytes"
},
"primary_disk_size": {
"type": "number",
"example": 50,
"description": "Size of the primary Disk"
}
}
}
}
}
SshKeysCreateKeyRequest
{
"type": "object",
"required": [
"name",
"public_key"
],
"properties": {
"name": {
"type": "string",
"example": "My ssh key",
"description": "Name of the SSH key"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"public_key": {
"type": "string",
"example": "ssh-rsa AAAjjk76kgf...Xt",
"description": "Public key"
}
}
}
SshKeysCreateKeyResponse
{
"type": "object",
"required": [
"ssh_key"
],
"properties": {
"ssh_key": {
"type": "object",
"required": [
"id",
"name",
"fingerprint",
"public_key",
"labels",
"created"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the SSH Key."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"public_key": {
"type": "string",
"example": "ssh-rsa AAAjjk76kgf...Xt",
"description": "Public key"
},
"fingerprint": {
"type": "string",
"example": "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f",
"description": "Fingerprint of public key"
}
}
}
}
}
SshKeysGetAllSshKeysResponse
{
"type": "object",
"required": [
"ssh_keys",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"ssh_keys": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fingerprint",
"public_key",
"labels",
"created"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the SSH Key."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"public_key": {
"type": "string",
"example": "ssh-rsa AAAjjk76kgf...Xt",
"description": "Public key"
},
"fingerprint": {
"type": "string",
"example": "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f",
"description": "Fingerprint of public key"
}
}
}
}
}
}
SshKeysGetByIdResponse
{
"type": "object",
"required": [
"ssh_key"
],
"properties": {
"ssh_key": {
"type": "object",
"required": [
"id",
"name",
"fingerprint",
"public_key",
"labels",
"created"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the SSH Key."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"public_key": {
"type": "string",
"example": "ssh-rsa AAAjjk76kgf...Xt",
"description": "Public key"
},
"fingerprint": {
"type": "string",
"example": "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f",
"description": "Fingerprint of public key"
}
}
}
}
}
SshKeysUpdateKeyRequest
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "My ssh key",
"description": "New name Name to set"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
}
}
}
SshKeysUpdateKeyResponse
{
"type": "object",
"required": [
"ssh_key"
],
"properties": {
"ssh_key": {
"type": "object",
"required": [
"id",
"name",
"fingerprint",
"public_key",
"labels",
"created"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the SSH Key."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"public_key": {
"type": "string",
"example": "ssh-rsa AAAjjk76kgf...Xt",
"description": "Public key"
},
"fingerprint": {
"type": "string",
"example": "b7:2f:30:a0:2f:6c:58:6c:21:04:58:61:ba:06:3b:2f",
"description": "Fingerprint of public key"
}
}
}
}
}
Timestamp
{
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time (in ISO-8601 format)."
}
TimestampNullable
{
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time (in ISO-8601 format)."
}
VolumeActionsAttachVolumeToServerRequest
{
"type": "object",
"title": "AttachVolumeRequest",
"required": [
"server"
],
"properties": {
"server": {
"type": "integer",
"format": "int64",
"example": 43,
"description": "ID of the Server the Volume will be attached to"
},
"automount": {
"type": "boolean",
"example": false,
"description": "Auto-mount the Volume after attaching it"
}
}
}
VolumeActionsAttachVolumeToServerResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
VolumeActionsChangeProtectionVolumeRequest
{
"type": "object",
"properties": {
"delete": {
"type": "boolean",
"example": true,
"description": "If true, prevents the Volume from being deleted"
}
}
}
VolumeActionsChangeProtectionVolumeResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
VolumeActionsChangeSizeRequest
{
"type": "object",
"required": [
"size"
],
"properties": {
"size": {
"type": "number",
"example": 50,
"description": "New Volume size in GB (must be greater than current size)"
}
}
}
VolumeActionsChangeSizeResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
VolumeActionsDetachVolumeFromServerResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
VolumeActionsGetActionByIdResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
VolumeActionsGetActionResponse
{
"type": "object",
"title": "ActionResponse",
"required": [
"action"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
VolumeActionsGetAllActions200Response
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
VolumeActionsGetAllActionsResponse
{
"type": "object",
"title": "ActionListResponseWithMeta",
"required": [
"actions",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
VolumeID
{
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Volume."
}
VolumesCreateVolumeRequest
{
"type": "object",
"title": "CreateVolumeRequest",
"required": [
"size",
"name"
],
"properties": {
"name": {
"type": "string",
"example": "databases-storage",
"description": "Name of the volume"
},
"size": {
"type": "integer",
"example": 42,
"description": "Size of the Volume in GB"
},
"format": {
"type": "string",
"example": "xfs",
"description": "Format Volume after creation. One of: `xfs`, `ext4`"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"description": "Server to which to attach the Volume once it's created (Volume will be created in the same Location as the server)"
},
"location": {
"type": "string",
"example": "nbg1",
"description": "Location to create the Volume in (can be omitted if Server is specified)"
},
"automount": {
"type": "boolean",
"example": false,
"description": "Auto-mount Volume after attach. `server` must be provided."
}
}
}
VolumesCreateVolumeResponse
{
"type": "object",
"required": [
"volume",
"action",
"next_actions"
],
"properties": {
"action": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
},
"volume": {
"type": "object",
"required": [
"id",
"created",
"name",
"server",
"location",
"size",
"linux_device",
"protection",
"labels",
"status",
"format"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Volume."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"size": {
"type": "number",
"example": 42,
"description": "Size in GB of the Volume"
},
"format": {
"type": "string",
"example": "xfs",
"nullable": true,
"description": "Filesystem of the Volume if formatted on creation, null if not formatted on creation"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"example": 12,
"nullable": true,
"description": "ID of the Server the Volume is attached to, null if it is not attached at all"
},
"status": {
"enum": [
"creating",
"available"
],
"type": "string",
"example": "available",
"description": "Current status of the Volume"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "Location of the Volume. Volume can only be attached to Servers in the same Location."
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"linux_device": {
"type": "string",
"example": "/dev/disk/by-id/scsi-0HC_Volume_4711",
"description": "Device path on the file system for the Volume"
}
}
},
"next_actions": {
"type": "array",
"items": {
"type": "object",
"title": "Action",
"required": [
"id",
"command",
"status",
"progress",
"started",
"finished",
"resources",
"error"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Action."
},
"error": {
"type": "object",
"nullable": true,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"example": "action_failed",
"description": "Fixed error code for machines."
},
"message": {
"type": "string",
"example": "Action failed",
"description": "Error message for humans."
}
},
"description": "Error message for the Action if an error occurred, otherwise null."
},
"status": {
"enum": [
"running",
"success",
"error"
],
"type": "string",
"description": "Status of the Action."
},
"command": {
"type": "string",
"example": "start_resource",
"description": "Command executed in the Action."
},
"started": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Action was started (in ISO-8601 format)."
},
"finished": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"nullable": true,
"description": "Point in time when the Action was finished (in ISO-8601 format). Only set if the Action is finished otherwise null."
},
"progress": {
"type": "integer",
"format": "int32",
"example": 100,
"description": "Progress of the Action in percent."
},
"resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Resource."
},
"type": {
"type": "string",
"example": "server",
"description": "Type of the Resource."
}
}
},
"description": "Resources the Action relates to."
}
}
}
}
}
}
VolumesGetAllResponse
{
"type": "object",
"required": [
"volumes",
"meta"
],
"properties": {
"meta": {
"type": "object",
"title": "ListMeta",
"required": [
"pagination"
],
"properties": {
"pagination": {
"type": "object",
"required": [
"page",
"per_page",
"previous_page",
"next_page",
"last_page",
"total_entries"
],
"properties": {
"page": {
"type": "integer",
"format": "int64",
"example": 3,
"description": "Current page number."
},
"per_page": {
"type": "integer",
"format": "int64",
"example": 25,
"description": "Maximum number of entries returned per page."
},
"last_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the last page available. Can be null if the current page is the last one."
},
"next_page": {
"type": "integer",
"format": "int64",
"example": 4,
"nullable": true,
"description": "Page number of the next page. Can be null if the current page is the last one."
},
"previous_page": {
"type": "integer",
"format": "int64",
"example": 2,
"nullable": true,
"description": "Page number of the previous page. Can be null if the current page is the first one."
},
"total_entries": {
"type": "integer",
"format": "int64",
"example": 100,
"nullable": true,
"description": "Total number of entries that exist for this query. Can be null if unknown."
}
},
"description": "See \"[Pagination](https://docs.hetzner.cloud)\" for more information."
}
}
},
"volumes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"created",
"name",
"server",
"location",
"size",
"linux_device",
"protection",
"labels",
"status",
"format"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Volume."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"size": {
"type": "number",
"example": 42,
"description": "Size in GB of the Volume"
},
"format": {
"type": "string",
"example": "xfs",
"nullable": true,
"description": "Filesystem of the Volume if formatted on creation, null if not formatted on creation"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"example": 12,
"nullable": true,
"description": "ID of the Server the Volume is attached to, null if it is not attached at all"
},
"status": {
"enum": [
"creating",
"available"
],
"type": "string",
"example": "available",
"description": "Current status of the Volume"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "Location of the Volume. Volume can only be attached to Servers in the same Location."
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"linux_device": {
"type": "string",
"example": "/dev/disk/by-id/scsi-0HC_Volume_4711",
"description": "Device path on the file system for the Volume"
}
}
}
}
}
}
VolumesGetByIdResponse
{
"type": "object",
"required": [
"volume"
],
"properties": {
"volume": {
"type": "object",
"required": [
"id",
"created",
"name",
"server",
"location",
"size",
"linux_device",
"protection",
"labels",
"status",
"format"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Volume."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"size": {
"type": "number",
"example": 42,
"description": "Size in GB of the Volume"
},
"format": {
"type": "string",
"example": "xfs",
"nullable": true,
"description": "Filesystem of the Volume if formatted on creation, null if not formatted on creation"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"example": 12,
"nullable": true,
"description": "ID of the Server the Volume is attached to, null if it is not attached at all"
},
"status": {
"enum": [
"creating",
"available"
],
"type": "string",
"example": "available",
"description": "Current status of the Volume"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "Location of the Volume. Volume can only be attached to Servers in the same Location."
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"linux_device": {
"type": "string",
"example": "/dev/disk/by-id/scsi-0HC_Volume_4711",
"description": "Device path on the file system for the Volume"
}
}
}
}
}
VolumesUpdateVolumePropertiesRequest
{
"type": "object",
"title": "UpdateVolumeRequest",
"properties": {
"name": {
"type": "string",
"example": "database-storage",
"description": "New Volume name"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
}
}
}
VolumesUpdateVolumePropertiesResponse
{
"type": "object",
"required": [
"volume"
],
"properties": {
"volume": {
"type": "object",
"required": [
"id",
"created",
"name",
"server",
"location",
"size",
"linux_device",
"protection",
"labels",
"status",
"format"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Volume."
},
"name": {
"type": "string",
"example": "my-resource",
"description": "Name of the Resource. Must be unique per Project."
},
"size": {
"type": "number",
"example": 42,
"description": "Size in GB of the Volume"
},
"format": {
"type": "string",
"example": "xfs",
"nullable": true,
"description": "Filesystem of the Volume if formatted on creation, null if not formatted on creation"
},
"labels": {
"type": "object",
"example": {
"just-a-key": "",
"environment": "prod",
"example.com/my": "label"
},
"description": "User-defined labels (`key/value` pairs) for the Resource.\nFor more information, see \"[Labels](https://docs.hetzner.cloud)\".\n",
"additionalProperties": {
"type": "string"
}
},
"server": {
"type": "integer",
"format": "int64",
"example": 12,
"nullable": true,
"description": "ID of the Server the Volume is attached to, null if it is not attached at all"
},
"status": {
"enum": [
"creating",
"available"
],
"type": "string",
"example": "available",
"description": "Current status of the Volume"
},
"created": {
"type": "string",
"example": "2016-01-30T23:55:00+00:00",
"description": "Point in time when the Resource was created (in ISO-8601 format)."
},
"location": {
"type": "object",
"required": [
"id",
"name",
"description",
"country",
"city",
"latitude",
"longitude",
"network_zone"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"example": 42,
"maximum": 9007199254740991,
"description": "ID of the Location."
},
"city": {
"type": "string",
"example": "Falkenstein",
"description": "Name of the closest city to the Location.\n\nCity name or city name and state in short form. E.g. `Falkenstein` or `Ashburn, VA`.\n"
},
"name": {
"type": "string",
"example": "fsn1",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Unique identifier of the Location."
},
"country": {
"type": "string",
"example": "DE",
"description": "Country the Location resides in.\n\nISO 3166-1 alpha-2 code of the country.\n"
},
"latitude": {
"type": "number",
"format": "double",
"example": 50.47612,
"description": "Latitude of the city closest to the Location."
},
"longitude": {
"type": "number",
"format": "double",
"example": 12.370071,
"description": "Longitude of the city closest to the Location."
},
"description": {
"type": "string",
"example": "Falkenstein DC Park 1",
"description": "Humand readable description of the Location."
},
"network_zone": {
"type": "string",
"example": "eu-central",
"pattern": "^[a-z0-9]+(-?[a-z0-9]*)*$",
"description": "Name of the Network Zone this Location resides in."
}
},
"description": "Location of the Volume. Volume can only be attached to Servers in the same Location."
},
"protection": {
"type": "object",
"required": [
"delete"
],
"properties": {
"delete": {
"type": "boolean",
"example": false,
"description": "Prevent the Resource from being deleted."
}
},
"description": "Protection configuration for the Resource."
},
"linux_device": {
"type": "string",
"example": "/dev/disk/by-id/scsi-0HC_Volume_4711",
"description": "Device path on the file system for the Volume"
}
}
}
}
}