Hetzner

Cloud infrastructure and hosting

docs.hetzner.cloud ↗
Version
1.0.0
OpenAPI
3.0.3
Endpoints
162
Schemas
249
Updated
3 days ago
Infrastructure cloud hosting infrastructure
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.hetzner.cloud/v1

Authentication

bearer

Endpoints

Clear filters

Certificate actions 1 endpoints

POST /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 |

operationId: CertificateActions_retryIssuanceOrRenewal

Parameters

Name In Required Type Description
id path required integer ID of the Certificate.

Responses

201 The `action` key contains the resulting Action
POST /certificates/{id}/actions/retry

Certificates 1 endpoints

POST /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.

operationId: Certificates_createNewCertificate

Request Body

{
  "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"
        }
      }
    }
  }
}

Responses

201 The `certificate` key contains the Certificate that was just created. For type `managed` Certificates the `action` key contains the Action that allows for tracking the issuance process. For type `uploaded` Certificates the `action` is always null.
POST /certificates

Firewall actions 3 endpoints

POST /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 |

operationId: FirewallActions_applyToResources

Parameters

Name In Required Type Description
id path required integer ID of the Firewall.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FirewallActionsApplyToResourcesRequest"
      },
      "example": {
        "apply_to": [
          {
            "type": "server",
            "server": {
              "id": 42
            }
          }
        ]
      }
    }
  }
}

Responses

201 The `actions` key contains multiple `apply_firewall` Actions
POST /firewalls/{id}/actions/apply_to_resources
POST /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 |

operationId: FirewallActions_removeFromResources

Parameters

Name In Required Type Description
id path required integer ID of the Firewall.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FirewallActionsRemoveFromResourcesRequest"
      },
      "example": {
        "remove_from": [
          {
            "type": "server",
            "server": {
              "id": 42
            }
          }
        ]
      }
    }
  }
}

Responses

201 The `actions` key contains multiple `remove_firewall` Actions
POST /firewalls/{id}/actions/remove_from_resources
POST /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 |

operationId: FirewallActions_setRules

Parameters

Name In Required Type Description
id path required integer ID of the Firewall.

Request Body

{
  "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"
              }
            ]
          }
        }
      }
    }
  }
}

Responses

201 The `action` key contains one `set_firewall_rules` Action plus one `apply_firewall` Action per resource where the Firewall is active
POST /firewalls/{id}/actions/set_rules

Firewalls 1 endpoints

POST /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 |

operationId: Firewalls_createFirewall

Request Body

{
  "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
                }
              }
            ]
          }
        }
      }
    }
  }
}

Responses

201 The `firewall` key contains the Firewall that was just created
POST /firewalls

Floating ip actions 4 endpoints

POST /floating_ips/{id}/actions/assign

Assigns a Floating IP to a Server.

operationId: FloatingIpActions_assignToServer

Parameters

Name In Required Type Description
id path required integer ID of the Floating IP.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FloatingIpActionsAssignToServerRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `assign` Action
POST /floating_ips/{id}/actions/assign
POST /floating_ips/{id}/actions/change_dns_ptr

Changes the hostname that will appear when getting the hostname belonging to this Floating IP.

operationId: FloatingIpActions_changeDnsPtr

Parameters

Name In Required Type Description
id path required integer ID of the Floating IP.

Request Body

{
  "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"
}

Responses

201 The `action` key contains the `change_dns_ptr` Action
POST /floating_ips/{id}/actions/change_dns_ptr
POST /floating_ips/{id}/actions/change_protection

Changes the protection configuration of the Floating IP.

operationId: FloatingIpActions_changeProtection

Parameters

Name In Required Type Description
id path required integer ID of the Floating IP.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FloatingIpActionsChangeProtectionRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `change_protection` Action
POST /floating_ips/{id}/actions/change_protection
POST /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.

operationId: FloatingIpActions_unassignIp

Parameters

Name In Required Type Description
id path required integer ID of the Floating IP.

Responses

201 The `action` key contains the `unassign` Action
POST /floating_ips/{id}/actions/unassign

Floating ips 1 endpoints

POST /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.

operationId: FloatingIPs_createNewIp

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FloatingIPsCreateNewIpRequest"
      }
    }
  },
  "description": "The `type` argument is required while `home_location` and `server` are mutually exclusive."
}

Responses

201 The `floating_ip` key in the reply contains the object that was just created
POST /floating_ips

Image actions 1 endpoints

POST /images/{id}/actions/change_protection

Changes the protection configuration of the Image. Can only be used on snapshots.

operationId: ImageActions_changeProtection

Parameters

Name In Required Type Description
id path required integer ID of the Image.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ImageActionsChangeProtectionRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `change_protection` Action
POST /images/{id}/actions/change_protection

Load balancer actions 13 endpoints

POST /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 |

operationId: LoadBalancerActions_addService

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsAddServiceRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `add_service` Action
POST /load_balancers/{id}/actions/add_service
POST /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 |

operationId: LoadBalancerActions_addTarget

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsAddTargetRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `add_target` Action
POST /load_balancers/{id}/actions/add_target
POST /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 |

operationId: LoadBalancerActions_attachToNetwork

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsAttachToNetworkRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `attach_to_network` Action
POST /load_balancers/{id}/actions/attach_to_network
POST /load_balancers/{id}/actions/change_algorithm

Change the algorithm that determines to which target new requests are sent.

operationId: LoadBalancerActions_changeAlgorithm

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsChangeAlgorithmRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `change_algorithm` Action
POST /load_balancers/{id}/actions/change_algorithm
POST /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.

operationId: LoadBalancerActions_changeDnsPtr

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "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`."
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /load_balancers/{id}/actions/change_dns_ptr
POST /load_balancers/{id}/actions/change_protection

Changes the protection configuration of a Load Balancer.

operationId: LoadBalancerActions_changeProtection

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsChangeProtectionRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `change_protection` Action
POST /load_balancers/{id}/actions/change_protection
POST /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 |

operationId: LoadBalancerActions_changeType

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsChangeTypeRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `change_load_balancer_type` Action
POST /load_balancers/{id}/actions/change_type
POST /load_balancers/{id}/actions/delete_service

Delete a service of a Load Balancer.

operationId: LoadBalancerActions_deleteService

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsDeleteServiceRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `delete_service` Action
POST /load_balancers/{id}/actions/delete_service
POST /load_balancers/{id}/actions/detach_from_network

Detaches a Load Balancer from a network.

operationId: LoadBalancerActions_detachFromNetwork

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsDetachFromNetworkRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `detach_from_network` Action
POST /load_balancers/{id}/actions/detach_from_network
POST /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 |

operationId: LoadBalancerActions_disablePublicInterface

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Responses

201 The `action` key contains the `disable_public_interface` Action
POST /load_balancers/{id}/actions/disable_public_interface
POST /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.

operationId: LoadBalancerActions_enablePublicInterface

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Responses

201 The `action` key contains the `enable_public_interface` Action
POST /load_balancers/{id}/actions/enable_public_interface
POST /load_balancers/{id}/actions/remove_target

Removes a target from a Load Balancer.

operationId: LoadBalancerActions_removeTarget

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsRemoveTargetRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `remove_target` Action
POST /load_balancers/{id}/actions/remove_target
POST /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 |

operationId: LoadBalancerActions_updateService

Parameters

Name In Required Type Description
id path required integer ID of the Load Balancer.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancerActionsUpdateServiceRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `update_service` Action
POST /load_balancers/{id}/actions/update_service

Load balancers 1 endpoints

POST /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 |

operationId: LoadBalancers_createLoadBalancer

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LoadBalancersCreateLoadBalancerRequest"
      }
    }
  }
}

Responses

201 The `load_balancer` key contains the Load Balancer that was just created
POST /load_balancers

Network actions 6 endpoints

POST /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.

operationId: NetworkActions_addRoute

Parameters

Name In Required Type Description
id path required integer ID of the Network.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/NetworkActionsAddRouteRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `add_route` Action
POST /networks/{id}/actions/add_route
POST /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.

operationId: NetworkActions_addSubnet

Parameters

Name In Required Type Description
id path required integer ID of the Network.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/NetworkActionsAddSubnetRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `add_subnet` Action
POST /networks/{id}/actions/add_subnet
POST /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.

operationId: NetworkActions_changeIpRange

Parameters

Name In Required Type Description
id path required integer ID of the Network.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/NetworkActionsChangeIpRangeRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `change_ip_range` Action
POST /networks/{id}/actions/change_ip_range
POST /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.

operationId: NetworkActions_changeProtection

Parameters

Name In Required Type Description
id path required integer ID of the Network.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/NetworkActionsChangeProtectionRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `change_protection` Action
POST /networks/{id}/actions/change_protection
POST /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.

operationId: NetworkActions_deleteRoute

Parameters

Name In Required Type Description
id path required integer ID of the Network.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/NetworkActionsDeleteRouteRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `delete_route` Action
POST /networks/{id}/actions/delete_route
POST /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.

operationId: NetworkActions_deleteSubnet

Parameters

Name In Required Type Description
id path required integer ID of the Network.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/NetworkActionsDeleteSubnetRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `delete_subnet` Action
POST /networks/{id}/actions/delete_subnet

Networks 1 endpoints

POST /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).

operationId: Networks_createNetwork

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/NetworksCreateNetworkRequest"
      }
    }
  }
}

Responses

201 The `network` key contains the network that was just created
POST /networks

Placement groups 1 endpoints

POST /placement_groups

Creates a new PlacementGroup.

operationId: PlacementGroups_createNewGroup

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PlacementGroupsCreateNewGroupRequest"
      },
      "examples": {
        "spread": {
          "value": {
            "name": "my Placement Group",
            "type": "spread"
          },
          "summary": "Creating a type `spread` Placement Group"
        }
      }
    }
  }
}

Responses

201 The `PlacementGroup` key contains the PlacementGroup that was just created.
POST /placement_groups

Primary ip actions 4 endpoints

POST /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 |

operationId: PrimaryIpActions_assignPrimaryIpToResource

Parameters

Name In Required Type Description
id path required integer ID of the Primary IP.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PrimaryIpActionsAssignPrimaryIpToResourceRequest"
      }
    }
  }
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /primary_ips/{id}/actions/assign
POST /primary_ips/{id}/actions/change_dns_ptr

Changes the hostname that will appear when getting the hostname belonging to this Primary IP.

operationId: PrimaryIpActions_changeDnsPtr

Parameters

Name In Required Type Description
id path required integer ID of the Primary IP.

Request Body

{
  "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"
}

Responses

201 The `action` key contains the `change_dns_ptr` Action
POST /primary_ips/{id}/actions/change_dns_ptr
POST /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`.

operationId: PrimaryIpActions_changeProtectionPrimaryIp

Parameters

Name In Required Type Description
id path required integer ID of the Primary IP.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PrimaryIpActionsChangeProtectionPrimaryIpRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `change_protection` Action
POST /primary_ips/{id}/actions/change_protection
POST /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 |

operationId: PrimaryIpActions_unassignPrimaryIp

Parameters

Name In Required Type Description
id path required integer ID of the Primary IP.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /primary_ips/{id}/actions/unassign

Primary ips 1 endpoints

POST /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 |

operationId: PrimaryIPs_createOrUpdate

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PrimaryIPsCreateOrUpdateRequest"
      }
    }
  },
  "description": "The `type` argument is required while `datacenter` and `assignee_id` are mutually exclusive."
}

Responses

201 The `primary_ip` key contains the Primary IP that was just created
POST /primary_ips

Ssh keys 1 endpoints

POST /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.

operationId: SshKeys_createKey

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SshKeysCreateKeyRequest"
      }
    }
  }
}

Responses

201 The `ssh_key` key in the reply contains the object that was just created
POST /ssh_keys

Server actions 23 endpoints

POST /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 |

operationId: ServerActions_addToPlacementGroup

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ServerActionsAddToPlacementGroupRequest"
      }
    }
  }
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/add_to_placement_group
POST /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.

operationId: ServerActions_attachIsoToServer

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ServerActionsAttachIsoToServerRequest"
      }
    }
  }
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/attach_iso
POST /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 |

operationId: ServerActions_attachToNetwork

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ServerActionsAttachToNetworkRequest"
      }
    }
  }
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/attach_to_network
POST /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.

operationId: ServerActions_changeAliasIps

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ServerActionsChangeAliasIpsRequest"
      }
    }
  }
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/change_alias_ips
POST /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.

operationId: ServerActions_changeDnsPtr

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "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`."
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/change_dns_ptr
POST /servers/{id}/actions/change_protection

Changes the protection configuration of the Server.

operationId: ServerActions_changeProtection

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ServerActionsChangeProtectionRequest"
      }
    }
  }
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/change_protection
POST /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 |

operationId: ServerActions_changeServerType

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ServerActionsChangeServerTypeRequest"
      }
    }
  }
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/change_type
POST /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.

operationId: ServerActions_createImage

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ServerActionsCreateImageRequest"
      }
    }
  }
}

Responses

201 The `image` key in the reply contains an the created Image, which is an object with this structure The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/create_image
POST /servers/{id}/actions/detach_from_network

Detaches a Server from a network. The interface for this network will vanish.

operationId: ServerActions_detachFromNetwork

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ServerActionsDetachFromNetworkRequest"
      }
    }
  }
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/detach_from_network
POST /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`

operationId: ServerActions_detachIsoFromServer

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/detach_iso
POST /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!

operationId: ServerActions_disableBackup

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/disable_backup
POST /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.

operationId: ServerActions_disableRescueMode

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/disable_rescue
POST /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.

operationId: ServerActions_enableBackup

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/enable_backup
POST /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.

operationId: ServerActions_enableRescueMode

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ServerActionsEnableRescueModeRequest"
      }
    }
  }
}

Responses

201 The `root_password` key in the reply contains the root password that can be used to access the booted rescue system. The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/enable_rescue
POST /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.

operationId: ServerActions_powerOffServer

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/poweroff
POST /servers/{id}/actions/poweron

Starts a Server by turning its power on.

operationId: ServerActions_powerOnServer

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/poweron
POST /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.

operationId: ServerActions_softRebootServer

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/reboot
POST /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.

operationId: ServerActions_rebuildServerFromImage

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Request Body

{
  "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."
}

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/rebuild
POST /servers/{id}/actions/remove_from_placement_group

Removes a Server from a Placement Group.

operationId: ServerActions_removeFromPlacementGroup

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/remove_from_placement_group
POST /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.

operationId: ServerActions_requestConsole

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/request_console
POST /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.

operationId: ServerActions_resetServer

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/reset
POST /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.

operationId: ServerActions_resetServerPassword

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `root_password` key in the reply contains the new root password that will be active if the Action succeeds. The `action` key in the reply contains an Action object with this structure:
POST /servers/{id}/actions/reset_password
POST /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

operationId: ServerActions_gracefulShutdown

Parameters

Name In Required Type Description
id path required integer ID of the Server.

Responses

201 The `action` key in the reply contains an Action object with this structure
POST /servers/{id}/actions/shutdown

Servers 1 endpoints

POST /servers

Creates a new Server. Returns preliminary information about the Server as well as an Action that covers progress of creation.

operationId: Servers_createServerAction

Request Body

{
  "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"
}

Responses

201 The `server` key in the reply contains a Server object with this structure
POST /servers

Volume actions 4 endpoints

POST /volumes/{id}/actions/attach

Attaches a Volume to a Server. Works only if the Server is in the same Location as the Volume.

operationId: VolumeActions_attachVolumeToServer

Parameters

Name In Required Type Description
id path required integer ID of the Volume.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/VolumeActionsAttachVolumeToServerRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `attach_volume` Action
POST /volumes/{id}/actions/attach
POST /volumes/{id}/actions/change_protection

Changes the protection configuration of a Volume.

operationId: VolumeActions_changeProtectionVolume

Parameters

Name In Required Type Description
id path required integer ID of the Volume.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/VolumeActionsChangeProtectionVolumeRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `change_protection` Action
POST /volumes/{id}/actions/change_protection
POST /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.

operationId: VolumeActions_detachVolumeFromServer

Parameters

Name In Required Type Description
id path required integer ID of the Volume.

Responses

201 The `action` key contains the `detach_volume` Action
POST /volumes/{id}/actions/detach
POST /volumes/{id}/actions/resize

Changes the size of a Volume. Note that downsizing a Volume is not possible.

operationId: VolumeActions_changeSize

Parameters

Name In Required Type Description
id path required integer ID of the Volume.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/VolumeActionsChangeSizeRequest"
      }
    }
  }
}

Responses

201 The `action` key contains the `resize_volume` Action
POST /volumes/{id}/actions/resize

Volumes 1 endpoints

POST /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 |

operationId: Volumes_createVolume

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/VolumesCreateVolumeRequest"
      },
      "example": {
        "name": "test-database",
        "size": 42,
        "format": "xfs",
        "labels": {
          "labelkey": "value"
        },
        "location": "nbg1",
        "automount": false
      }
    }
  }
}

Responses

201 The `volume` key contains the Volume that was just created The `action` key contains the Action tracking Volume creation
POST /volumes

Schemas

object 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."
    }
  }
}
integer ActionID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Action."
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
integer CertificateID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Certificate."
}
object 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."
    }
  }
}
object 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)"
        }
      }
    }
  }
}
object 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)"
          }
        }
      }
    }
  }
}
object 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)"
        }
      }
    }
  }
}
object 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"
      }
    }
  }
}
object 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)"
        }
      }
    }
  }
}
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)."
}
integer DatacenterID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Datacenter."
}
object 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."
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
}
string Description
{
  "type": "string",
  "example": "This describes my resource",
  "nullable": true,
  "description": "Description of the Resource."
}
object 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"
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
integer FirewallID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Firewall."
}
object 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"
    }
  }
}
object 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."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
object 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."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
object 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."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
object 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"
      }
    }
  }
}
object 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."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
integer FloatingIPID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Floating IP."
}
object 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."
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
}
object 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."
        }
      }
    }
  }
}
object 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`"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object FloatingIpActionsChangeProtectionRequest
{
  "type": "object",
  "title": "ChangeProtectionRequest",
  "properties": {
    "delete": {
      "type": "boolean",
      "example": true,
      "description": "If true, prevents the Floating IP from being deleted"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
integer ID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Resource."
}
string IP
{
  "type": "string",
  "example": "131.232.99.1",
  "description": "IP address."
}
integer ISOID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the ISO."
}
object ImageActionsChangeProtectionRequest
{
  "type": "object",
  "properties": {
    "delete": {
      "type": "boolean",
      "example": true,
      "description": "If true, prevents the snapshot from being deleted"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
integer ImageID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Image."
}
object 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"
          }
        }
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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)."
        }
      }
    }
  }
}
object 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"
  }
}
object 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."
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object LoadBalancerActionsChangeAlgorithmRequest
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "round_robin",
        "least_connections"
      ],
      "type": "string",
      "description": "Algorithm of the Load Balancer"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object LoadBalancerActionsChangeProtectionRequest
{
  "type": "object",
  "properties": {
    "delete": {
      "type": "boolean",
      "example": true,
      "description": "If true, prevents the Load Balancer from being deleted"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object LoadBalancerActionsDeleteServiceRequest
{
  "type": "object",
  "required": [
    "listen_port"
  ],
  "properties": {
    "listen_port": {
      "type": "integer",
      "example": 443,
      "description": "The listen port of the service you want to delete"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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`"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
integer LoadBalancerID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Load Balancer."
}
integer LoadBalancerTypeID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Load Balancer Type."
}
object 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"
          }
        }
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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"
            }
          }
        }
      }
    }
  }
}
object 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"
              }
            }
          }
        }
      }
    }
  }
}
object 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"
            }
          }
        }
      }
    }
  }
}
object 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"
              }
            }
          }
        }
      }
    }
  }
}
object 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"
      }
    }
  }
}
object 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"
            }
          }
        }
      }
    }
  }
}
integer LocationID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Location."
}
object 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."
    }
  }
}
object 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."
        }
      }
    }
  }
}
string Name
{
  "type": "string",
  "example": "my-resource",
  "description": "Name of the Resource. Must be unique per Project."
}
object 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."
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object NetworkActionsChangeProtectionRequest
{
  "type": "object",
  "title": "ChangeProtectionRequest",
  "properties": {
    "delete": {
      "type": "boolean",
      "example": true,
      "description": "If true, prevents the Network from being deleted"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
integer NetworkID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Network."
}
object 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."
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
}
integer PlacementGroupID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Placement Group."
}
object 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"
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
          }
        }
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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."
    }
  }
}
object 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"
        }
      }
    }
  }
}
integer PrimaryIPID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Primary IP."
}
object 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"
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
          }
        }
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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`"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object PrimaryIpActionsChangeProtectionPrimaryIpRequest
{
  "type": "object",
  "title": "ChangeProtectionRequest",
  "properties": {
    "delete": {
      "type": "boolean",
      "example": true,
      "description": "If true, prevents the Primary IP from being deleted"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object Protection
{
  "type": "object",
  "required": [
    "delete"
  ],
  "properties": {
    "delete": {
      "type": "boolean",
      "example": false,
      "description": "Prevent the Resource from being deleted."
    }
  },
  "description": "Protection configuration for the Resource."
}
integer SSHKeyID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the SSH Key."
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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`"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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`"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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)"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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)"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object ServerActionsRebuildServerFromImageRequest
{
  "type": "object",
  "title": "RebuildServerRequest",
  "required": [
    "image"
  ],
  "properties": {
    "image": {
      "type": "string",
      "example": "ubuntu-20.04",
      "description": "ID or name of Image to rebuilt from."
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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)"
    }
  }
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
integer ServerID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Server."
}
integer ServerTypeID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Server Type."
}
object 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"
        }
      }
    }
  }
}
object 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"
          }
        }
      }
    }
  }
}
object 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."
    }
  }
}
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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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"
          }
        }
      }
    }
  }
}
object 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"
              }
            }
          }
        }
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
          }
        }
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
string Timestamp
{
  "type": "string",
  "example": "2016-01-30T23:55:00+00:00",
  "description": "Point in time (in ISO-8601 format)."
}
string TimestampNullable
{
  "type": "string",
  "example": "2016-01-30T23:55:00+00:00",
  "nullable": true,
  "description": "Point in time (in ISO-8601 format)."
}
object 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"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object VolumeActionsChangeProtectionVolumeRequest
{
  "type": "object",
  "properties": {
    "delete": {
      "type": "boolean",
      "example": true,
      "description": "If true, prevents the Volume from being deleted"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object VolumeActionsChangeSizeRequest
{
  "type": "object",
  "required": [
    "size"
  ],
  "properties": {
    "size": {
      "type": "number",
      "example": 50,
      "description": "New Volume size in GB (must be greater than current size)"
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
integer VolumeID
{
  "type": "integer",
  "format": "int64",
  "example": 42,
  "maximum": 9007199254740991,
  "description": "ID of the Volume."
}
object 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."
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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"
          }
        }
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}
object 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"
      }
    }
  }
}
object 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"
        }
      }
    }
  }
}