{
  "openapi": "3.1.0",
  "info": {
    "title": "CorePanel reseller API",
    "version": "1",
    "description": "Account-scoped hosting reseller API. Success {data:...}; errors {error:{code,message}}. Unknown JSON properties are rejected on strict bodies. Error responses list the stable code/status contract; not every operation emits every business error. All authenticated responses are no-store."
  },
  "servers": [
    {
      "url": "https://panel.expanse.host/api/reseller/v1"
    }
  ],
  "security": [
    {
      "resellerKey": []
    }
  ],
  "paths": {
    "/account": {
      "get": {
        "operationId": "get_account",
        "summary": "GET /account",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Account"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        }
      }
    },
    "/limits": {
      "get": {
        "operationId": "get_limits",
        "summary": "GET /limits",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Limits"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        }
      }
    },
    "/locations": {
      "get": {
        "operationId": "get_locations",
        "summary": "GET /locations",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Location"
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        }
      }
    },
    "/os-templates": {
      "get": {
        "operationId": "get_os_templates",
        "summary": "GET /os-templates",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/OsTemplate"
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "location",
            "in": "query",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          }
        ]
      }
    },
    "/packages/{key}/os-templates": {
      "get": {
        "operationId": "get_packages__key__os_templates",
        "summary": "GET /packages/{key}/os-templates",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/OsTemplate"
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "query",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          }
        ]
      }
    },
    "/packages": {
      "get": {
        "operationId": "get_packages",
        "summary": "GET /packages",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Package"
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        }
      }
    },
    "/spend": {
      "get": {
        "operationId": "get_spend",
        "summary": "GET /spend",
        "x-required-scope": "reseller.usage.read",
        "description": "Requires reseller.usage.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Spend"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        }
      }
    },
    "/usage": {
      "get": {
        "operationId": "get_usage",
        "summary": "GET /usage",
        "x-required-scope": "reseller.usage.read",
        "description": "Requires reseller.usage.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Usage"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
            },
            "description": "UTC calendar month; required."
          }
        ]
      }
    },
    "/vms/{id}/backups/{backupId}/restore": {
      "post": {
        "operationId": "post_vms__id__backups__backupId__restore",
        "summary": "POST /vms/{id}/backups/{backupId}/restore",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AcceptedTask"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "jobId": {
                              "type": "integer"
                            }
                          },
                          "required": [
                            "jobId"
                          ]
                        }
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "backupId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/vms/{id}/backups": {
      "get": {
        "operationId": "get_vms__id__backups",
        "summary": "GET /vms/{id}/backups",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Backups"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^[1-9][0-9]{0,5}$",
              "default": "1"
            }
          }
        ]
      },
      "post": {
        "operationId": "post_vms__id__backups",
        "summary": "POST /vms/{id}/backups",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AcceptedTask"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "jobId": {
                              "type": "integer"
                            }
                          },
                          "required": [
                            "jobId"
                          ]
                        }
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^[1-9][0-9]{0,5}$",
              "default": "1"
            }
          }
        ]
      }
    },
    "/vms/{id}/initial-password": {
      "get": {
        "operationId": "get_vms__id__initial_password",
        "summary": "GET /vms/{id}/initial-password",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Password"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/vms/{id}/ipv4": {
      "post": {
        "operationId": "post_vms__id__ipv4",
        "summary": "POST /vms/{id}/ipv4",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/AcceptedTask"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "quantity": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 8
                  }
                },
                "required": [
                  "quantity"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/vms/{id}/power": {
      "post": {
        "operationId": "post_vms__id__power",
        "summary": "POST /vms/{id}/power",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/AcceptedTask"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "enum": [
                      "start",
                      "stop",
                      "restart",
                      "poweroff"
                    ]
                  }
                },
                "required": [
                  "action"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/vms/{id}/rdns": {
      "get": {
        "operationId": "get_vms__id__rdns",
        "summary": "GET /vms/{id}/rdns",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Rdns"
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "put": {
        "operationId": "put_vms__id__rdns",
        "summary": "PUT /vms/{id}/rdns",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "ip": {
                          "type": "string"
                        },
                        "hostname": {
                          "type": "string"
                        },
                        "status": {
                          "const": "pending"
                        }
                      },
                      "required": [
                        "ip",
                        "hostname",
                        "status"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ip": {
                    "type": "string",
                    "maxLength": 45,
                    "description": "VM-owned IPv4 or IPv6 address; trimmed."
                  },
                  "hostname": {
                    "type": "string",
                    "maxLength": 253,
                    "description": "FQDN with at least two labels, each 1..63 alphanumeric/hyphen characters, no leading/trailing hyphen. Trimmed, lowercased; optional trailing dot removed."
                  }
                },
                "required": [
                  "ip",
                  "hostname"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/vms/{id}/rebuild": {
      "post": {
        "operationId": "post_vms__id__rebuild",
        "summary": "POST /vms/{id}/rebuild",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/AcceptedTask"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "osTemplateId": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "sshKeys": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^(ssh-ed25519|ssh-rsa|ecdsa-sha2-nistp(256|384|521)) [A-Za-z0-9+/=]+( .*)?$",
                      "description": "Trimmed, deduplicated OpenSSH public keys; at most 8192 UTF-8 bytes per key."
                    },
                    "maxItems": 5
                  }
                },
                "required": [
                  "osTemplateId"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/vms/{id}/rescue": {
      "post": {
        "operationId": "post_vms__id__rescue",
        "summary": "POST /vms/{id}/rescue",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AcceptedTask"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "password": {
                              "type": "string"
                            }
                          },
                          "required": []
                        }
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "delete": {
        "operationId": "delete_vms__id__rescue",
        "summary": "DELETE /vms/{id}/rescue",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/AcceptedTask"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "get": {
        "operationId": "get_vms__id__rescue",
        "summary": "GET /vms/{id}/rescue",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "enabled"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/vms/{id}/reset-password": {
      "post": {
        "operationId": "post_vms__id__reset_password",
        "summary": "POST /vms/{id}/reset-password",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Password"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/vms/{id}/resize": {
      "post": {
        "operationId": "post_vms__id__resize",
        "summary": "POST /vms/{id}/resize",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. At least one resource must change; disk cannot shrink; VM must be active and reconciled.",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AcceptedTask"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "vm": {
                              "$ref": "#/components/schemas/Vm"
                            }
                          },
                          "required": [
                            "vm"
                          ]
                        }
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "vcpu": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 32
                  },
                  "ramMiB": {
                    "type": "integer",
                    "minimum": 1024,
                    "maximum": 262144,
                    "multipleOf": 1024
                  },
                  "diskGiB": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 1024
                  },
                  "restart": {
                    "type": "boolean"
                  }
                },
                "required": [],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/vms/{id}": {
      "get": {
        "operationId": "get_vms__id_",
        "summary": "GET /vms/{id}",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Vm"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "delete": {
        "operationId": "delete_vms__id_",
        "summary": "DELETE /vms/{id}",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Vm"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Vm"
                        }
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/vms/{id}/stats": {
      "get": {
        "operationId": "get_vms__id__stats",
        "summary": "GET /vms/{id}/stats",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Stats"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/vms/{id}/suspend": {
      "post": {
        "operationId": "post_vms__id__suspend",
        "summary": "POST /vms/{id}/suspend",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/AcceptedTask"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/vms/{id}/unsuspend": {
      "post": {
        "operationId": "post_vms__id__unsuspend",
        "summary": "POST /vms/{id}/unsuspend",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "202": {
            "description": "Accepted; poll VM detail. taskId may be null; no public task endpoint.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/AcceptedTask"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/vms": {
      "get": {
        "operationId": "get_vms",
        "summary": "GET /vms",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Vm"
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "endUserRef",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "operationId": "post_vms",
        "summary": "POST /vms",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "201": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Vm"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Vm"
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVm"
              }
            }
          }
        }
      }
    },
    "/webhooks/{id}": {
      "delete": {
        "operationId": "delete_webhooks__id_",
        "summary": "DELETE /webhooks/{id}",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "deleted": {
                          "const": true
                        }
                      },
                      "required": [
                        "deleted"
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/webhooks": {
      "get": {
        "operationId": "get_webhooks",
        "summary": "GET /webhooks",
        "x-required-scope": "reseller.vms.read",
        "description": "Requires reseller.vms.read. ",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Webhook"
                      }
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        }
      },
      "post": {
        "operationId": "post_webhooks",
        "summary": "POST /webhooks",
        "x-required-scope": "reseller.vms.write",
        "description": "Requires reseller.vms.write. ",
        "responses": {
          "201": {
            "description": "Success",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Webhook"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "secret": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "secret"
                          ]
                        }
                      ]
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400"
          },
          "401": {
            "$ref": "#/components/responses/Error401"
          },
          "403": {
            "$ref": "#/components/responses/Error403"
          },
          "404": {
            "$ref": "#/components/responses/Error404"
          },
          "409": {
            "$ref": "#/components/responses/Error409"
          },
          "429": {
            "$ref": "#/components/responses/Error429"
          },
          "500": {
            "$ref": "#/components/responses/Error500"
          },
          "502": {
            "$ref": "#/components/responses/Error502"
          },
          "503": {
            "$ref": "#/components/responses/Error503"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 2048,
                    "description": "Public HTTPS URL; no credentials or fragment; trimmed."
                  },
                  "events": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "account.deletion_scheduled",
                        "vm.created",
                        "vm.active",
                        "vm.failed",
                        "vm.suspended",
                        "vm.unsuspended",
                        "vm.deleted",
                        "vm.rebuilt",
                        "vm.resized",
                        "vm.rescue_enabled",
                        "vm.rescue_disabled"
                      ]
                    },
                    "minItems": 1,
                    "maxItems": 11
                  }
                },
                "required": [
                  "url",
                  "events"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "operationId": "getOpenApi",
        "summary": "Download this OpenAPI contract",
        "security": [],
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 document (not enveloped)",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "const": "public, max-age=300"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "resellerKey": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "rk_...",
        "description": "Dedicated reseller key. Scopes are specified per operation in x-required-scope."
      }
    },
    "schemas": {
      "Vm": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hostname": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "initialPasswordAvailable": {
            "type": "boolean"
          },
          "loginMethod": {
            "enum": [
              "ssh_key",
              "password"
            ]
          },
          "packageKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "vcpu": {
            "type": "integer"
          },
          "ramMiB": {
            "type": "integer"
          },
          "diskGiB": {
            "type": "integer"
          },
          "pendingIpv4": {
            "type": "integer"
          },
          "reconcileNeeded": {
            "type": "boolean"
          },
          "ipv4Count": {
            "type": "integer"
          },
          "status": {
            "type": "string",
            "enum": [
              "creating",
              "building",
              "active",
              "failed",
              "suspended",
              "delete_requested",
              "deleted"
            ]
          },
          "endUserRef": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ips": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ipv6": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "power": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "buildState": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "activeAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "deletedAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "hostname",
          "initialPasswordAvailable",
          "loginMethod",
          "packageKey",
          "location",
          "vcpu",
          "ramMiB",
          "diskGiB",
          "pendingIpv4",
          "reconcileNeeded",
          "ipv4Count",
          "status",
          "endUserRef",
          "ips",
          "ipv6",
          "power",
          "buildState",
          "createdAt",
          "activeAt",
          "deletedAt"
        ]
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "enum": [
                  "internal_error",
                  "api_key_required",
                  "invalid_api_key",
                  "ip_not_allowed",
                  "key_revoked",
                  "insufficient_scope",
                  "not_a_reseller",
                  "reseller_not_configured",
                  "invalid_request",
                  "disk_shrink_not_allowed",
                  "invalid_location",
                  "not_found",
                  "cap_exceeded",
                  "invalid_state",
                  "vm_busy",
                  "not_available",
                  "feature_not_available",
                  "resize_partial",
                  "resize_pending",
                  "provider_error",
                  "rate_limited"
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        },
        "required": [
          "error"
        ]
      },
      "Package": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "vcpu": {
            "type": "integer"
          },
          "ramMiB": {
            "type": "integer"
          },
          "diskGiB": {
            "type": "integer"
          },
          "units": {
            "type": "object",
            "properties": {
              "ram": {
                "const": "MiB"
              },
              "disk": {
                "const": "GiB"
              }
            },
            "required": [
              "ram",
              "disk"
            ]
          }
        },
        "required": [
          "key",
          "vcpu",
          "ramMiB",
          "diskGiB",
          "units"
        ]
      },
      "OsTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "group": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "version",
          "group",
          "label"
        ]
      },
      "Location": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "name"
        ]
      },
      "Limits": {
        "type": "object",
        "properties": {
          "vcpu": {
            "type": "object",
            "properties": {
              "min": {
                "type": "integer"
              },
              "max": {
                "type": "integer"
              }
            },
            "required": [
              "min",
              "max"
            ]
          },
          "ramMiB": {
            "type": "object",
            "properties": {
              "min": {
                "type": "integer"
              },
              "max": {
                "type": "integer"
              },
              "step": {
                "type": "integer"
              }
            },
            "required": [
              "min",
              "max",
              "step"
            ]
          },
          "diskGiB": {
            "type": "object",
            "properties": {
              "min": {
                "type": "integer"
              },
              "max": {
                "type": "integer"
              }
            },
            "required": [
              "min",
              "max"
            ]
          },
          "ipv4": {
            "type": "object",
            "properties": {
              "min": {
                "type": "integer"
              },
              "max": {
                "type": "integer"
              }
            },
            "required": [
              "min",
              "max"
            ]
          },
          "units": {
            "type": "object",
            "properties": {
              "ram": {
                "const": "MiB"
              },
              "disk": {
                "const": "GiB"
              }
            },
            "required": [
              "ram",
              "disk"
            ]
          }
        },
        "required": [
          "vcpu",
          "ramMiB",
          "diskGiB",
          "ipv4",
          "units"
        ]
      },
      "Account": {
        "type": "object",
        "properties": {
          "limits": {
            "type": "object",
            "properties": {
              "maxVms": {
                "type": "integer"
              },
              "maxVcpu": {
                "type": "integer"
              },
              "maxRamMiB": {
                "type": "integer"
              },
              "maxDiskGiB": {
                "type": "integer"
              },
              "maxIpv4": {
                "type": "integer"
              }
            },
            "required": [
              "maxVms",
              "maxVcpu",
              "maxRamMiB",
              "maxDiskGiB",
              "maxIpv4"
            ]
          },
          "used": {
            "type": "object",
            "properties": {
              "vms": {
                "type": "integer"
              },
              "vcpu": {
                "type": "integer"
              },
              "ramMiB": {
                "type": "integer"
              },
              "diskGiB": {
                "type": "integer"
              },
              "ipv4": {
                "type": "integer"
              }
            },
            "required": [
              "vms",
              "vcpu",
              "ramMiB",
              "diskGiB",
              "ipv4"
            ]
          },
          "features": {
            "type": "object",
            "properties": {
              "rescue": {
                "type": "boolean"
              },
              "ipv6": {
                "type": "boolean"
              },
              "backups": {
                "type": "boolean"
              }
            },
            "required": [
              "rescue",
              "ipv6",
              "backups"
            ]
          },
          "units": {
            "type": "object",
            "properties": {
              "ram": {
                "const": "MiB"
              },
              "disk": {
                "const": "GiB"
              }
            },
            "required": [
              "ram",
              "disk"
            ]
          }
        },
        "required": [
          "limits",
          "used",
          "features",
          "units"
        ]
      },
      "Usage": {
        "type": "object",
        "properties": {
          "month": {
            "type": "string"
          },
          "unit": {
            "const": "hour"
          },
          "timezone": {
            "const": "UTC"
          },
          "vms": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "vmId": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "package": {
                  "type": "string"
                },
                "packageKey": {
                  "type": "string"
                },
                "location": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "vcpu": {
                  "type": "integer"
                },
                "ramMiB": {
                  "type": "integer"
                },
                "diskGiB": {
                  "type": "integer"
                },
                "ipv4": {
                  "type": "integer"
                },
                "billableHours": {
                  "type": "integer"
                },
                "hours": {
                  "type": "integer"
                },
                "vcpuHours": {
                  "type": "integer"
                },
                "ramMiBHours": {
                  "type": "integer"
                },
                "diskGiBHours": {
                  "type": "integer"
                },
                "rxBytes": {
                  "type": "string",
                  "pattern": "^[0-9]+$"
                },
                "txBytes": {
                  "type": "string",
                  "pattern": "^[0-9]+$"
                }
              },
              "required": [
                "id",
                "vmId",
                "name",
                "package",
                "packageKey",
                "location",
                "vcpu",
                "ramMiB",
                "diskGiB",
                "ipv4",
                "billableHours",
                "hours",
                "vcpuHours",
                "ramMiBHours",
                "diskGiBHours",
                "rxBytes",
                "txBytes"
              ]
            }
          }
        },
        "required": [
          "month",
          "unit",
          "timezone",
          "vms"
        ]
      },
      "Webhook": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "events": {
            "type": "array",
            "items": {
              "enum": [
                "account.deletion_scheduled",
                "vm.created",
                "vm.active",
                "vm.failed",
                "vm.suspended",
                "vm.unsuspended",
                "vm.deleted",
                "vm.rebuilt",
                "vm.resized",
                "vm.rescue_enabled",
                "vm.rescue_disabled"
              ]
            }
          },
          "enabled": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "deliveries": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "event": {
                  "type": "string"
                },
                "status": {
                  "type": "string"
                },
                "attempts": {
                  "type": "integer"
                },
                "lastStatusCode": {
                  "anyOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "deliveredAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "event",
                "status",
                "attempts",
                "lastStatusCode",
                "createdAt",
                "deliveredAt"
              ]
            }
          }
        },
        "required": [
          "id",
          "url",
          "events",
          "enabled",
          "createdAt",
          "deliveries"
        ]
      },
      "CreateVm": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 63,
            "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?$"
          },
          "hostname": {
            "type": "string",
            "maxLength": 253,
            "pattern": "^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$"
          },
          "location": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "packageKey": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "vcpu": {
            "type": "integer",
            "minimum": 1,
            "maximum": 32
          },
          "ramMiB": {
            "type": "integer",
            "minimum": 1024,
            "maximum": 262144,
            "multipleOf": 1024
          },
          "diskGiB": {
            "type": "integer",
            "minimum": 10,
            "maximum": 1024
          },
          "osTemplateId": {
            "type": "integer",
            "minimum": 1
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 8,
            "maxLength": 128
          },
          "ipv6": {
            "type": "boolean"
          },
          "ipv4": {
            "type": "integer",
            "minimum": 1,
            "maximum": 8,
            "default": 1
          },
          "endUser": {
            "type": "object",
            "properties": {
              "ref": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "email": {
                "type": "string",
                "format": "email",
                "maxLength": 254
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              }
            },
            "required": [
              "ref",
              "email",
              "name"
            ],
            "additionalProperties": false
          },
          "sshKeys": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^(ssh-ed25519|ssh-rsa|ecdsa-sha2-nistp(256|384|521)) [A-Za-z0-9+/=]+( .*)?$",
              "description": "Trimmed, deduplicated OpenSSH public keys; at most 8192 UTF-8 bytes per key."
            },
            "maxItems": 5
          }
        },
        "required": [
          "name",
          "osTemplateId",
          "idempotencyKey",
          "endUser"
        ],
        "additionalProperties": false,
        "oneOf": [
          {
            "required": [
              "packageKey"
            ],
            "not": {
              "anyOf": [
                {
                  "required": [
                    "vcpu"
                  ]
                },
                {
                  "required": [
                    "ramMiB"
                  ]
                },
                {
                  "required": [
                    "diskGiB"
                  ]
                }
              ]
            }
          },
          {
            "required": [
              "vcpu",
              "ramMiB",
              "diskGiB"
            ],
            "not": {
              "required": [
                "packageKey"
              ]
            }
          }
        ],
        "description": "Strings are trimmed except hostname/location; endUser.email is lowercased. Omit ipv6 to use location default. Body idempotencyKey is required; Idempotency-Key header is not supported."
      },
      "AcceptedTask": {
        "type": "object",
        "properties": {
          "accepted": {
            "const": true
          },
          "taskId": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "accepted",
          "taskId"
        ]
      },
      "Password": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string"
          }
        },
        "required": [
          "password"
        ]
      },
      "Rdns": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string"
          },
          "hostname": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "enum": [
              "none",
              "pending",
              "applied"
            ]
          }
        },
        "required": [
          "ip",
          "hostname",
          "status"
        ]
      },
      "Stats": {
        "type": "object",
        "properties": {
          "power": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "cpuPercent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "memory": {
            "type": "object",
            "properties": {
              "totalMiB": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "usedMiB": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "totalMiB",
              "usedMiB"
            ]
          },
          "traffic": {
            "type": "object",
            "properties": {
              "periodStart": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "periodEnd": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "rxBytes": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "txBytes": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "periodStart",
              "periodEnd",
              "rxBytes",
              "txBytes"
            ]
          }
        },
        "required": [
          "power",
          "cpuPercent",
          "memory",
          "traffic"
        ]
      },
      "Backups": {
        "type": "object",
        "properties": {
          "backups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "disk": {
                  "type": "integer"
                },
                "timestamp": {
                  "type": "integer"
                },
                "type": {
                  "type": "string"
                },
                "size": {
                  "type": "number"
                }
              },
              "required": [
                "id",
                "disk",
                "timestamp",
                "type",
                "size"
              ]
            }
          },
          "page": {
            "type": "integer"
          },
          "lastPage": {
            "type": "integer"
          }
        },
        "required": [
          "backups",
          "page",
          "lastPage"
        ]
      },
      "SettlementEstimate": {
        "type": "object",
        "properties": {
          "resourceMicros": {
            "type": "string",
            "pattern": "^[0-9]+$"
          },
          "bandwidthMicros": {
            "type": "string",
            "pattern": "^[0-9]+$"
          },
          "minimumAdjustmentMicros": {
            "type": "string",
            "pattern": "^[0-9]+$"
          },
          "totalMicros": {
            "type": "string",
            "pattern": "^[0-9]+$"
          },
          "rateCardVersion": {
            "type": "integer"
          },
          "lines": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string"
                },
                "lineKind": {
                  "enum": [
                    "reseller_usage",
                    "reseller_minimum"
                  ]
                },
                "cents": {
                  "type": "string",
                  "pattern": "^-?[0-9]+$"
                }
              },
              "required": [
                "description",
                "lineKind",
                "cents"
              ]
            }
          }
        },
        "required": [
          "resourceMicros",
          "bandwidthMicros",
          "minimumAdjustmentMicros",
          "totalMicros",
          "rateCardVersion",
          "lines"
        ]
      },
      "Spend": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "available": {
                "const": false
              },
              "reason": {
                "type": "string"
              }
            },
            "required": [
              "available",
              "reason"
            ]
          },
          {
            "type": "object",
            "properties": {
              "available": {
                "const": true
              },
              "currency": {
                "const": "usd"
              },
              "monthToDate": {
                "$ref": "#/components/schemas/SettlementEstimate"
              },
              "projected": {
                "$ref": "#/components/schemas/SettlementEstimate"
              }
            },
            "required": [
              "available",
              "currency",
              "monthToDate",
              "projected"
            ]
          }
        ]
      }
    },
    "responses": {
      "Error400": {
        "description": "invalid_request; disk_shrink_not_allowed; invalid_location",
        "headers": {
          "Cache-Control": {
            "schema": {
              "const": "no-store"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Error401": {
        "description": "api_key_required; invalid_api_key",
        "headers": {
          "Cache-Control": {
            "schema": {
              "const": "no-store"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Error403": {
        "description": "ip_not_allowed; insufficient_scope; not_a_reseller",
        "headers": {
          "Cache-Control": {
            "schema": {
              "const": "no-store"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Error404": {
        "description": "not_found; not_available",
        "headers": {
          "Cache-Control": {
            "schema": {
              "const": "no-store"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Error409": {
        "description": "key_revoked; cap_exceeded; invalid_state; vm_busy; feature_not_available; resize_partial; resize_pending",
        "headers": {
          "Cache-Control": {
            "schema": {
              "const": "no-store"
            }
          },
          "Retry-After": {
            "description": "Seconds until retry; vm_busy is 30, rate_limited uses limiter delay.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Error429": {
        "description": "rate_limited",
        "headers": {
          "Cache-Control": {
            "schema": {
              "const": "no-store"
            }
          },
          "Retry-After": {
            "description": "Seconds until retry; vm_busy is 30, rate_limited uses limiter delay.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Error500": {
        "description": "internal_error",
        "headers": {
          "Cache-Control": {
            "schema": {
              "const": "no-store"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Error502": {
        "description": "provider_error",
        "headers": {
          "Cache-Control": {
            "schema": {
              "const": "no-store"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Error503": {
        "description": "reseller_not_configured",
        "headers": {
          "Cache-Control": {
            "schema": {
              "const": "no-store"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    }
  },
  "x-error-statuses": {
    "internal_error": 500,
    "api_key_required": 401,
    "invalid_api_key": 401,
    "ip_not_allowed": 403,
    "key_revoked": 409,
    "insufficient_scope": 403,
    "not_a_reseller": 403,
    "reseller_not_configured": 503,
    "invalid_request": 400,
    "disk_shrink_not_allowed": 400,
    "invalid_location": 400,
    "not_found": 404,
    "cap_exceeded": 409,
    "invalid_state": 409,
    "vm_busy": 409,
    "not_available": 404,
    "feature_not_available": 409,
    "resize_partial": 409,
    "resize_pending": 409,
    "provider_error": 502,
    "rate_limited": 429
  }
}
