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

Certificates 1 endpoints

DELETE /certificates/{id}

Deletes a Certificate.

operationId: Certificates_deleteCertificate

Parameters

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

Responses

204 Certificate deleted
DELETE /certificates/{id}

Firewalls 1 endpoints

DELETE /firewalls/{id}

Deletes a Firewall. #### Call specific error codes | Code | Description | |--------------------- |-------------------------------------------| | `resource_in_use` | Firewall must not be in use to be deleted |

operationId: Firewalls_deleteFirewallById

Parameters

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

Responses

204 Firewall deleted
DELETE /firewalls/{id}

Floating ips 1 endpoints

DELETE /floating_ips/{id}

Deletes a Floating IP. If it is currently assigned to a Server it will automatically get unassigned.

operationId: FloatingIPs_deleteIp

Parameters

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

Responses

204 Floating IP deleted
DELETE /floating_ips/{id}

Images 1 endpoints

DELETE /images/{id}

Deletes an Image. Only Images of type `snapshot` and `backup` can be deleted.

operationId: Images_deleteImage

Parameters

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

Responses

204 Image deleted
DELETE /images/{id}

Load balancers 1 endpoints

DELETE /load_balancers/{id}

Deletes a Load Balancer.

operationId: LoadBalancers_deleteLoadBalancer

Parameters

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

Responses

204 Load Balancer deleted
DELETE /load_balancers/{id}

Networks 1 endpoints

DELETE /networks/{id}

Deletes a network. If there are Servers attached they will be detached in the background. Note: if the network object changes during the request, the response will be a “conflict” error.

operationId: Networks_deleteNetwork

Parameters

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

Responses

204 Network deleted
DELETE /networks/{id}

Placement groups 1 endpoints

DELETE /placement_groups/{id}

Deletes a PlacementGroup.

operationId: PlacementGroups_deleteGroup

Parameters

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

Responses

204 PlacementGroup deleted
DELETE /placement_groups/{id}

Primary ips 1 endpoints

DELETE /primary_ips/{id}

Deletes a Primary IP. The Primary IP may be assigned to a Server. In this case it is unassigned automatically. The Server must be powered off (status `off`) in order for this operation to succeed.

operationId: PrimaryIPs_deletePrimaryIp

Parameters

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

Responses

204 Primary IP deleted
DELETE /primary_ips/{id}

Ssh keys 1 endpoints

DELETE /ssh_keys/{id}

Deletes an SSH key. It cannot be used anymore.

operationId: SshKeys_deleteKey

Parameters

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

Responses

204 SSH key deleted
DELETE /ssh_keys/{id}

Servers 1 endpoints

DELETE /servers/{id}

Deletes a Server. This immediately removes the Server from your account, and it is no longer accessible. Any resources attached to the server (like Volumes, Primary IPs, Floating IPs, Firewalls, Placement Groups) are detached while the server is deleted.

operationId: Servers_deleteServer

Parameters

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

Responses

200 The `action` key in the reply contains an Action object with this structure
DELETE /servers/{id}

Volumes 1 endpoints

DELETE /volumes/{id}

Deletes a volume. All Volume data is irreversibly destroyed. The Volume must not be attached to a Server and it must not have delete protection enabled.

operationId: Volumes_deleteVolume

Parameters

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

Responses

204 Volume deleted
DELETE /volumes/{id}

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