{
  "openapi": "3.1.0",
  "info": {
    "title": "AdaptGroup Cloud API",
    "version": "1.0.0",
    "description": "Cloud API lets your backend sell and manage VPS, dedicated rentals and additional IPv4 from an integration balance.\n\nBase URL: **https://cloud-api.adaptgroup.pro**. Authenticate every request with `X-Api-Key` and the integration's `api_key_id` in the documented query or JSON body. There is no language parameter; RU and EN describe the same API.\n\nAmounts are decimal strings in USD. Plan prices already include your integration markup; extra VPS traffic and IPv4 use fixed prices. Quote endpoints calculate without charging or reserving capacity.\n\nStart with [Quick start](./quick-start) and [Purchases and lifecycle](./purchase-flow). [Webhooks](./webhooks) describe order results, service events and expiry warnings.\n\n[OpenAPI (English)](/openapi/cloud.json) · [OpenAPI (Russian)](/openapi/cloud.ru.json)"
  },
  "paths": {
    "/balance": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Balance",
        "operationId": "check-balance",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BalanceCheckResponse"
                },
                "example": {
                  "success": true,
                  "api_key_id": 1,
                  "balance": "100.0000",
                  "currency": "USD",
                  "balance_updated_at": null
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Returns the integration balance in USD. Fields are at the top level, without a data wrapper.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/dedicated/rentals/quote": {
      "post": {
        "tags": [
          "Dedicated servers"
        ],
        "summary": "Calculate dedicated server price",
        "operationId": "quote-rental",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RentalCreateRequest"
              },
              "example": {
                "api_key_id": 1,
                "months": 1,
                "api_user_id": "customer-123",
                "plan_id": 1,
                "os_id": 1,
                "disk_layout": "separate",
                "extra_ipv4_count": 0,
                "auto_renew": false,
                "password": "Example-Password-2026!"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermQuoteResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "amount_usd": "5.0000",
                    "balance_usd": "100.0000",
                    "currency": "USD",
                    "months": 1,
                    "discount_percent": "0"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Choose plan_id and a supported disk_layout from the dedicated catalog. The platform chooses the physical server. Supply exactly one password or SSH public key, also for quotes. extra_ipv4_count adds addresses to this rental at a fixed price. A completed purchase order confirms reservation; wait for dedicated.issued / rental status active before handing the server to your customer. The term starts when issued.\n\nThis calculation creates no order, charge or reservation. It can be called with an insufficient balance. Use amount_usd as expected_amount_usd when confirming the purchase.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/dedicated/rentals/{rental_id}/renew/quote": {
      "post": {
        "tags": [
          "Dedicated servers"
        ],
        "summary": "Calculate rental renewal",
        "operationId": "quote-rental-renewal",
        "parameters": [
          {
            "name": "rental_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Rental Id"
            },
            "description": "rental_id parameter.",
            "example": 201
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmRenewBody"
              },
              "example": {
                "api_key_id": 1,
                "months": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermQuoteResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "amount_usd": "5.0000",
                    "balance_usd": "100.0000",
                    "currency": "USD",
                    "months": 1,
                    "discount_percent": "0"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Extends an issued rental at current prices and discounts for the selected term. Additional IPv4 included in the rental are charged at the fixed price. Renewal is possible while active or overdue, before cleanup starts.\n\nThis calculation creates no order, charge or reservation. It can be called with an insufficient balance. Use amount_usd as expected_amount_usd when confirming the purchase.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/dedicated/plans": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "summary": "Dedicated server plans",
        "operationId": "list-dedicated-plans",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 9223372036854775807,
                  "minimum": 1
                },
                {
                  "type": "null"
                }
              ],
              "title": "Location Id"
            },
            "description": "location_id parameter.",
            "example": 1
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "epyc",
                    "ryzen",
                    "xeon",
                    "storage"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Platform"
            },
            "description": "platform parameter.",
            "example": "epyc"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 100,
              "title": "Limit"
            },
            "description": "Maximum number of records in this page.",
            "example": 25
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2147483647,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of records to skip, starting from zero.",
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DedicatedPlansResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "code": "C1",
                      "name": "Example",
                      "platform": "epyc",
                      "cpu_model": "example",
                      "cpu_count": 1,
                      "cpu_cores": 1,
                      "cpu_threads": 1,
                      "ram_gb": 1,
                      "ram_description": null,
                      "disks": [
                        {
                          "count": 1,
                          "size_gb": 1,
                          "type": "example",
                          "model": null
                        }
                      ],
                      "disk_layouts": [
                        "separate"
                      ],
                      "default_disk_layout": "separate",
                      "port_mbps": 1,
                      "traffic_tb": null,
                      "included_ipv4": 1,
                      "ipv6_prefix_length": null,
                      "location_id": 1,
                      "location_name": "Poland",
                      "country_code": "PL",
                      "monthly_price_usd": "5.0000",
                      "extra_ipv4_monthly_price_usd": "5.0000",
                      "extra_traffic_tb_price_usd": "5.0000",
                      "term_discounts": {},
                      "available": 1
                    }
                  ],
                  "total_count": 1,
                  "currency": "USD",
                  "updated_at": null
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Choose plan_id and one of its disk_layouts. Availability does not reserve a server. Server prices include markup; extra IPv4 and traffic prices are fixed. term_discounts contains discounts by rental duration.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/dedicated/rentals": {
      "post": {
        "tags": [
          "Dedicated servers"
        ],
        "summary": "Rent a dedicated server",
        "operationId": "create-rental",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RentalCreateRequest"
              },
              "example": {
                "api_key_id": 1,
                "months": 1,
                "api_user_id": "customer-123",
                "plan_id": 1,
                "os_id": 1,
                "disk_layout": "separate",
                "extra_ipv4_count": 0,
                "auto_renew": false,
                "password": "Example-Password-2026!"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "order_id": 401,
                    "status": "pending",
                    "amount_usd": "5.0000",
                    "currency": "USD",
                    "vm_id": null,
                    "rental_id": null,
                    "error_code": null,
                    "error_message": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Choose plan_id and a supported disk_layout from the dedicated catalog. The platform chooses the physical server. Supply exactly one password or SSH public key, also for quotes. extra_ipv4_count adds addresses to this rental at a fixed price. A completed purchase order confirms reservation; wait for dedicated.issued / rental status active before handing the server to your customer. The term starts when issued.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      },
      "get": {
        "tags": [
          "Dedicated servers"
        ],
        "summary": "List rentals",
        "operationId": "list-rentals",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "api_user_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "pattern": "\\S"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Api User Id"
            },
            "description": "Your customer identifier. Stored as a string; scoped to this integration.",
            "example": "customer-123"
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 9223372036854775807,
                  "minimum": 1
                },
                {
                  "type": "null"
                }
              ],
              "title": "Location Id"
            },
            "description": "location_id parameter.",
            "example": 1
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "epyc",
                    "ryzen",
                    "xeon",
                    "storage"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Platform"
            },
            "description": "platform parameter.",
            "example": "epyc"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "preparing",
                    "active",
                    "overdue",
                    "cleaning",
                    "completed",
                    "cancelled"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            },
            "description": "status parameter.",
            "example": "preparing"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 25,
              "title": "Limit"
            },
            "description": "Maximum number of records in this page.",
            "example": 25
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2147483647,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of records to skip, starting from zero.",
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RentalListResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "api_user_id": "customer-123",
                      "order_id": 401,
                      "status": "preparing",
                      "plan": {
                        "id": 1,
                        "code": "C1",
                        "name": "Example",
                        "platform": "epyc",
                        "cpu_model": "example",
                        "cpu_count": 1,
                        "cpu_cores": 1,
                        "cpu_threads": 1,
                        "ram_gb": 1,
                        "ram_description": null,
                        "disks": [
                          {
                            "count": 1,
                            "size_gb": 1,
                            "type": "example",
                            "model": null
                          }
                        ],
                        "disk_layouts": [
                          "separate"
                        ],
                        "default_disk_layout": "separate",
                        "port_mbps": 1,
                        "traffic_tb": null,
                        "included_ipv4": 1,
                        "ipv6_prefix_length": null
                      },
                      "location_id": 1,
                      "location_name": "Poland",
                      "country_code": "PL",
                      "os": "debian-12",
                      "hostname": null,
                      "disk_layout": "separate",
                      "term_months": 1,
                      "extra_ipv4_count": 1,
                      "auto_renew": false,
                      "issued_at": null,
                      "paid_until": null,
                      "overdue_at": null,
                      "finished_at": null,
                      "created_at": "2026-09-28T12:00:00Z"
                    }
                  ],
                  "total_count": 1
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Lists rentals owned by this integration with customer, location, platform and status filters. Credentials are available only in rental details.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/dedicated/rentals/{rental_id}/renew": {
      "post": {
        "tags": [
          "Dedicated servers"
        ],
        "summary": "Renew rental",
        "operationId": "renew-rental",
        "parameters": [
          {
            "name": "rental_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Rental Id"
            },
            "description": "rental_id parameter.",
            "example": 201
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmRenewBody"
              },
              "example": {
                "api_key_id": 1,
                "months": 1
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "order_id": 401,
                    "status": "pending",
                    "amount_usd": "5.0000",
                    "currency": "USD",
                    "vm_id": null,
                    "rental_id": null,
                    "error_code": null,
                    "error_message": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Extends an issued rental at current prices and discounts for the selected term. Additional IPv4 included in the rental are charged at the fixed price. Renewal is possible while active or overdue, before cleanup starts.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/dedicated/rentals/{rental_id}": {
      "patch": {
        "tags": [
          "Dedicated servers"
        ],
        "summary": "Rental auto-renewal",
        "operationId": "set-rental-auto-renew",
        "parameters": [
          {
            "name": "rental_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Rental Id"
            },
            "description": "rental_id parameter.",
            "example": 201
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoRenewBody"
              },
              "example": {
                "api_key_id": 1,
                "auto_renew": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RentalAutoRenewResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "rental_id": 201,
                    "auto_renew": false
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Changes the auto-renewal setting without charging the balance or extending the paid term. The default is false. See the lifecycle guide for renewal timing, duration and pricing.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      },
      "get": {
        "tags": [
          "Dedicated servers"
        ],
        "summary": "Rental details and credentials",
        "operationId": "get-rental",
        "parameters": [
          {
            "name": "rental_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Rental Id"
            },
            "description": "rental_id parameter.",
            "example": 201
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RentalResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "api_user_id": "customer-123",
                    "order_id": 401,
                    "status": "preparing",
                    "plan": {
                      "id": 1,
                      "code": "C1",
                      "name": "Example",
                      "platform": "epyc",
                      "cpu_model": "example",
                      "cpu_count": 1,
                      "cpu_cores": 1,
                      "cpu_threads": 1,
                      "ram_gb": 1,
                      "ram_description": null,
                      "disks": [
                        {
                          "count": 1,
                          "size_gb": 1,
                          "type": "example",
                          "model": null
                        }
                      ],
                      "disk_layouts": [
                        "separate"
                      ],
                      "default_disk_layout": "separate",
                      "port_mbps": 1,
                      "traffic_tb": null,
                      "included_ipv4": 1,
                      "ipv6_prefix_length": null
                    },
                    "location_id": 1,
                    "location_name": "Poland",
                    "country_code": "PL",
                    "os": "debian-12",
                    "hostname": null,
                    "disk_layout": "separate",
                    "term_months": 1,
                    "extra_ipv4_count": 1,
                    "auto_renew": false,
                    "issued_at": null,
                    "paid_until": null,
                    "overdue_at": null,
                    "finished_at": null,
                    "created_at": "2026-09-28T12:00:00Z",
                    "host": null,
                    "login": "root",
                    "password": null,
                    "ssh_public_key": null,
                    "ips": [
                      {
                        "id": 1,
                        "address": "192.0.2.10",
                        "is_primary": true
                      }
                    ]
                  }
                }
              }
            },
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Returns rental hardware, payment term, status and access credentials. Credentials may be null before issue. Cache-Control: no-store. preparing is preparation; active is issued; overdue is unpaid; cleaning is release/cleanup; completed and cancelled are terminal states.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/plans": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "summary": "VPS plans and availability",
        "operationId": "list-plans",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "cpu_percent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "multipleOf": 20,
              "maximum": 100,
              "minimum": 20,
              "default": 60,
              "title": "Cpu Percent"
            },
            "description": "CPU share: 20, 40, 60, 80 or 100. Creation defaults to 60; resize keeps the current share if omitted.",
            "example": 60
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 9223372036854775807,
                  "minimum": 1
                },
                {
                  "type": "null"
                }
              ],
              "title": "Location Id"
            },
            "description": "location_id parameter.",
            "example": 1
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "epyc",
                    "ryzen",
                    "xeon"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Platform"
            },
            "description": "platform parameter.",
            "example": "epyc"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlansListResponse"
                },
                "example": {
                  "success": true,
                  "api_key_id": 1,
                  "cpu_percent": 60,
                  "currency": "USD",
                  "locations": [
                    {
                      "id": 1,
                      "name": "Example",
                      "country_code": "PL",
                      "platforms": [
                        {
                          "platform": "epyc",
                          "cpu_display_name": null,
                          "availability_updated_at": null,
                          "plans": [
                            {
                              "code": "C1",
                              "name": "Example",
                              "cpu_cores": 1,
                              "ram_mb": 1,
                              "disk_gb": 1,
                              "traffic_tb": "5.0000",
                              "monthly_price_usd": "5.0000",
                              "available": null
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Prices already include your integration markup. cpu_percent defaults to 60; supported values: 20, 40, 60, 80, 100. Availability is a snapshot, not a reservation. available=null means unknown, not zero. cpu_display_name is the customer-facing CPU model.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/reference/os": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "summary": "Operating systems",
        "operationId": "list-os",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OsListResponse"
                },
                "example": {
                  "success": true,
                  "os": [
                    {
                      "id": 1,
                      "code": "C1",
                      "name": "Example"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Use the returned numeric os_id for purchases and reinstalls. code identifies the OS template; name is its display name.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/firewall": {
      "get": {
        "tags": [
          "Firewall"
        ],
        "summary": "Firewall settings",
        "operationId": "get-firewall",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmFirewallResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "vm_id": 101,
                    "revision": 0,
                    "applied": true,
                    "input_policy": "ACCEPT",
                    "output_policy": "ACCEPT",
                    "rules": [
                      {
                        "direction": "IN",
                        "action": "ACCEPT",
                        "protocol": "tcp",
                        "ports": [
                          "443"
                        ],
                        "source": null,
                        "destination": null,
                        "enabled": true,
                        "comment": "HTTPS",
                        "id": 1
                      }
                    ],
                    "smtp_ports": [
                      1
                    ],
                    "smtp_blocked": true
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Read the current revision before any change and send it back. A conflict requires rereading settings before a new command. Rule order matters; reorder must contain every rule ID exactly once. PUT replaces the full rule. position is zero-based. At most 100 rules; ports are strings such as \"443\" or \"8000-8010\" and apply only to TCP/UDP. Source/destination accept an IP or CIDR of matching IP versions. System SMTP restrictions cannot be disabled here.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/firewall/rules": {
      "post": {
        "tags": [
          "Firewall"
        ],
        "summary": "Add rule",
        "operationId": "add-firewall-rule",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirewallAddBody"
              },
              "example": {
                "api_key_id": 1,
                "revision": 0,
                "rule": {
                  "direction": "IN",
                  "action": "ACCEPT",
                  "protocol": "tcp",
                  "ports": [
                    "443"
                  ],
                  "source": null,
                  "destination": null,
                  "enabled": true,
                  "comment": "HTTPS"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Read the current revision before any change and send it back. A conflict requires rereading settings before a new command. Rule order matters; reorder must contain every rule ID exactly once. PUT replaces the full rule. position is zero-based. At most 100 rules; ports are strings such as \"443\" or \"8000-8010\" and apply only to TCP/UDP. Source/destination accept an IP or CIDR of matching IP versions. System SMTP restrictions cannot be disabled here.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/firewall/rules/{rule_id}": {
      "put": {
        "tags": [
          "Firewall"
        ],
        "summary": "Replace rule",
        "operationId": "update-firewall-rule",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "rule_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Rule Id"
            },
            "description": "rule_id parameter.",
            "example": 1
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirewallUpdateBody"
              },
              "example": {
                "api_key_id": 1,
                "revision": 0,
                "rule": {
                  "direction": "IN",
                  "action": "ACCEPT",
                  "protocol": "tcp",
                  "ports": [
                    "443"
                  ],
                  "source": null,
                  "destination": null,
                  "enabled": true,
                  "comment": "HTTPS"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Read the current revision before any change and send it back. A conflict requires rereading settings before a new command. Rule order matters; reorder must contain every rule ID exactly once. PUT replaces the full rule. position is zero-based. At most 100 rules; ports are strings such as \"443\" or \"8000-8010\" and apply only to TCP/UDP. Source/destination accept an IP or CIDR of matching IP versions. System SMTP restrictions cannot be disabled here.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      },
      "delete": {
        "tags": [
          "Firewall"
        ],
        "summary": "Delete rule",
        "operationId": "delete-firewall-rule",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "rule_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Rule Id"
            },
            "description": "rule_id parameter.",
            "example": 1
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "revision",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 0,
              "title": "Revision"
            },
            "description": "Current firewall revision from GET firewall. Reread on conflict.",
            "example": 0
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Read the current revision before any change and send it back. A conflict requires rereading settings before a new command. Rule order matters; reorder must contain every rule ID exactly once. PUT replaces the full rule. position is zero-based. At most 100 rules; ports are strings such as \"443\" or \"8000-8010\" and apply only to TCP/UDP. Source/destination accept an IP or CIDR of matching IP versions. System SMTP restrictions cannot be disabled here.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/firewall/order": {
      "put": {
        "tags": [
          "Firewall"
        ],
        "summary": "Reorder rules",
        "operationId": "reorder-firewall-rules",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirewallReorderBody"
              },
              "example": {
                "api_key_id": 1,
                "revision": 0,
                "rule_ids": [
                  1,
                  2
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Read the current revision before any change and send it back. A conflict requires rereading settings before a new command. Rule order matters; reorder must contain every rule ID exactly once. PUT replaces the full rule. position is zero-based. At most 100 rules; ports are strings such as \"443\" or \"8000-8010\" and apply only to TCP/UDP. Source/destination accept an IP or CIDR of matching IP versions. System SMTP restrictions cannot be disabled here.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/firewall/policies": {
      "patch": {
        "tags": [
          "Firewall"
        ],
        "summary": "Default policies",
        "operationId": "set-firewall-policies",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirewallPoliciesBody"
              },
              "example": {
                "api_key_id": 1,
                "revision": 0,
                "input_policy": "ACCEPT",
                "output_policy": "ACCEPT"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Read the current revision before any change and send it back. A conflict requires rereading settings before a new command. Rule order matters; reorder must contain every rule ID exactly once. PUT replaces the full rule. position is zero-based. At most 100 rules; ports are strings such as \"443\" or \"8000-8010\" and apply only to TCP/UDP. Source/destination accept an IP or CIDR of matching IP versions. System SMTP restrictions cannot be disabled here.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/quote": {
      "post": {
        "tags": [
          "VPS billing"
        ],
        "summary": "Calculate VPS price",
        "operationId": "quote-vm",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmCreateRequest"
              },
              "example": {
                "api_key_id": 1,
                "api_user_id": "customer-123",
                "location_id": 1,
                "platform": "epyc",
                "plan_code": "C1",
                "cpu_percent": 60,
                "os_id": 1,
                "months": 1,
                "auto_renew": false,
                "password": "Example-Password-2026!",
                "cloud_init": {
                  "packages": [
                    "curl"
                  ],
                  "runcmd": [
                    [
                      "sh",
                      "-c",
                      "echo ready > /root/cloud-init-ready"
                    ]
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermQuoteResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "amount_usd": "5.0000",
                    "balance_usd": "100.0000",
                    "currency": "USD",
                    "months": 1,
                    "discount_percent": "0"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Choose a plan, location and OS from the catalog. Supply exactly one of password or ssh_public_key, including in the quote request. The SSH key is a single OpenSSH public-key line (Ed25519, RSA or ECDSA). cpu_percent defaults to 60, months to 1 and auto_renew to false. api_user_id is your own customer identifier.\n\nThis calculation creates no order, charge or reservation. It can be called with an insufficient balance. Use amount_usd as expected_amount_usd when confirming the purchase.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)\n\nOptional cloud-config JSON object, not a YAML string. Maximum 65536 bytes after server JSON serialization (non-ASCII characters are escaped). users, packages, runcmd and write_files must be arrays when present. Networking, hostname and primary access are managed by the platform. Retain the same object when retrying. Its result is reported separately in guest_initialization; cloud_init contents are not returned in orders or webhooks.\n\nLatest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health."
      }
    },
    "/vms/{vm_id}/renew/quote": {
      "post": {
        "tags": [
          "VPS billing"
        ],
        "summary": "Calculate VPS renewal",
        "operationId": "quote-vm-renewal",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmRenewBody"
              },
              "example": {
                "api_key_id": 1,
                "months": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermQuoteResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "amount_usd": "5.0000",
                    "balance_usd": "100.0000",
                    "currency": "USD",
                    "months": 1,
                    "discount_percent": "0"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Adds the selected number of calendar months to the current paid term, or starts from the current time if it has expired. Uses current prices, markup and term discount. Renew before the service is deleted.\n\nThis calculation creates no order, charge or reservation. It can be called with an insufficient balance. Use amount_usd as expected_amount_usd when confirming the purchase.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/resize/quote": {
      "post": {
        "tags": [
          "VPS billing"
        ],
        "summary": "Calculate plan upgrade",
        "operationId": "quote-vm-resize",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmResizeBody"
              },
              "example": {
                "api_key_id": 1,
                "plan_code": "C1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResizeQuoteResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "amount_usd": "5.0000",
                    "balance_usd": "100.0000",
                    "currency": "USD",
                    "vm_id": 101,
                    "new_monthly_price_usd": "10.0000",
                    "paid_until": "2026-09-28T12:00:00Z"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Only upgrades are supported: CPU resources, RAM, disk and included traffic cannot decrease. Omit cpu_percent to keep the current share. The surcharge covers the remaining paid calendar periods at current plan prices with their originally purchased term discounts. paid_until does not change. expected_amount_usd is the maximum accepted surcharge, since it may decrease with time.\n\nThis calculation creates no order, charge or reservation. It can be called with an insufficient balance. Use amount_usd as expected_amount_usd when confirming the purchase.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/traffic/topup/quote": {
      "post": {
        "tags": [
          "VPS billing"
        ],
        "summary": "Calculate extra traffic",
        "operationId": "quote-traffic",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmTrafficTopupBody"
              },
              "example": {
                "api_key_id": 1,
                "traffic_tb": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrafficQuoteResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "amount_usd": "5.0000",
                    "balance_usd": "100.0000",
                    "currency": "USD",
                    "vm_id": 101,
                    "unit_price_usd": "1.0000",
                    "expected_period_id": 601,
                    "period_ends_at": "2026-09-28T12:00:00Z"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "traffic_tb is an integer; one unit is 1099511627776 bytes (1024⁴). Extra traffic has a fixed price without integration markup and applies only to the current traffic period. Copy expected_period_id from the quote into the purchase to detect a period change (409 quote_expired).\n\nThis calculation creates no order, charge or reservation. It can be called with an insufficient balance. Use amount_usd as expected_amount_usd when confirming the purchase.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/ips/quote": {
      "post": {
        "tags": [
          "IP addresses"
        ],
        "summary": "Calculate IPv4 purchase",
        "operationId": "quote-ip",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmIpv4PurchaseBody"
              },
              "example": {
                "api_key_id": 1,
                "auto_renew": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ipv4QuoteResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "amount_usd": "5.0000",
                    "balance_usd": "100.0000",
                    "currency": "USD",
                    "vm_id": 101,
                    "period_days": 30
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Buys one extra IPv4 for 30 days and attaches it to this VPS. Fixed price without integration markup or term discount. Its payment term and auto-renewal are independent of the VPS. A VPS can have at most 10 IPv4 including the primary address.\n\nThis calculation creates no order, charge or reservation. It can be called with an insufficient balance. Use amount_usd as expected_amount_usd when confirming the purchase.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/password/reset": {
      "post": {
        "tags": [
          "VPS management"
        ],
        "summary": "Reset password",
        "operationId": "reset-vm-password",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordResetBody"
              },
              "example": {
                "api_key_id": 1,
                "login": "root",
                "password": "Example-Password-2026!"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Changes the password of an existing OS user (login defaults to root) through the guest agent. A working guest agent is required. A failed or unconfirmed operation does not prove the password remained unchanged: check access before another command.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/reinstall": {
      "post": {
        "tags": [
          "VPS management"
        ],
        "summary": "Reinstall OS",
        "operationId": "reinstall-vm",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReinstallBody"
              },
              "example": {
                "api_key_id": 1,
                "os_id": 1,
                "wipe_extra_disks": false,
                "password": "Example-Password-2026!",
                "cloud_init": {
                  "packages": [
                    "curl"
                  ],
                  "runcmd": [
                    [
                      "sh",
                      "-c",
                      "echo ready > /root/cloud-init-ready"
                    ]
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Recreates the system disk and destroys its data. Extra disks are kept unless wipe_extra_disks=true. Supply either a password or SSH public key; omit both to reuse the installation access settings. Both together are invalid. VPS identity, network and paid term are preserved.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)\n\nOptional cloud-config JSON object, not a YAML string. Maximum 65536 bytes after server JSON serialization (non-ASCII characters are escaped). users, packages, runcmd and write_files must be arrays when present. Networking, hostname and primary access are managed by the platform. Retain the same object when retrying. Its result is reported separately in guest_initialization; cloud_init contents are not returned in orders or webhooks.\n\nLatest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health."
      }
    },
    "/vms/{vm_id}/ips/{ip_id}": {
      "delete": {
        "tags": [
          "IP addresses"
        ],
        "summary": "Detach IPv4",
        "operationId": "detach-ip",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Ip Id"
            },
            "description": "ip_id parameter.",
            "example": 301
          },
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "keep_ip",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean",
              "title": "Keep Ip"
            },
            "description": "Keep the detached IPv4 with continuing billing (true) or release it (false).",
            "example": true
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Detaches an extra IPv4; the primary address cannot be detached. keep_ip is required in query: true keeps the address with continuing separate billing, false releases it. Check guest_configuration_required and adjust guest networking when required. Unused time is not refunded.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      },
      "put": {
        "tags": [
          "IP addresses"
        ],
        "summary": "Attach saved IPv4",
        "operationId": "attach-ip",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Ip Id"
            },
            "description": "ip_id parameter.",
            "example": 301
          },
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Attaches an available, paid saved IPv4 to a compatible VPS without a new purchase or term change. api_key_id is in query; no JSON body. Check guest_configuration_required: network configuration inside the guest may need updating.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}": {
      "delete": {
        "tags": [
          "VPS management"
        ],
        "summary": "Delete VPS",
        "operationId": "delete-vm",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "keep_ips",
            "in": "query",
            "required": true,
            "schema": {
              "type": "boolean",
              "title": "Keep Ips"
            },
            "description": "Explicitly retain IPv4 as separately billed addresses (true) or release them (false).",
            "example": true
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Permanently deletes the VPS. keep_ips is a required query parameter. true retains IPv4 addresses, including the primary address, as separately billed addresses; false releases them. The result contains held_ips. Unused VPS time is not refunded.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      },
      "patch": {
        "tags": [
          "VPS billing"
        ],
        "summary": "VPS auto-renewal",
        "operationId": "set-vm-auto-renew",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoRenewBody"
              },
              "example": {
                "api_key_id": 1,
                "auto_renew": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmAutoRenewResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "vm_id": 101,
                    "auto_renew": false
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Changes the auto-renewal setting without charging the balance or extending the paid term. The default is false. See the lifecycle guide for renewal timing, duration and pricing.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      },
      "get": {
        "tags": [
          "VPS management"
        ],
        "summary": "VPS details",
        "operationId": "get-vm",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmGetResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "name": "Example",
                    "hostname": "customer-vps",
                    "status": "example",
                    "cpu_cores": 1,
                    "cpu_percent": 60,
                    "ram_mb": 1,
                    "disk_gb": 1,
                    "smtp_blocked": true,
                    "paid_until": null,
                    "created_at": "2026-09-28T12:00:00Z",
                    "updated_at": null,
                    "ips": [
                      {
                        "ip_id": 301,
                        "address": "192.0.2.10",
                        "family": 4,
                        "is_rf_blocked": true,
                        "assigned_at": null,
                        "is_primary": true,
                        "paid_until": null,
                        "suspended_at": null,
                        "auto_renew": null
                      }
                    ],
                    "auto_renew": false,
                    "api_user_id": "customer-123",
                    "plan_code": "C1",
                    "platform": "epyc",
                    "cpu_display_name": null,
                    "location_id": 1,
                    "location_name": "Poland",
                    "country_code": "PL",
                    "city": "example",
                    "os": null,
                    "guest_initialization": {
                      "status": "succeeded",
                      "error_code": null
                    },
                    "rescue": {
                      "active": false,
                      "access": null,
                      "requires_review": false,
                      "operation_id": null,
                      "operation_status": null
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Returns resources, location, OS, addresses, payment term and auto-renewal. Original VPS passwords and SSH keys are not returned.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)\n\nLatest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health.\n\nRescue state. active means a saved Rescue context, not guaranteed SSH availability. access is ssh, console or null. requires_review calls for state verification; operation_id and operation_status refer to the Rescue operation. null means no state was returned."
      }
    },
    "/vms": {
      "post": {
        "tags": [
          "VPS billing"
        ],
        "summary": "Buy a VPS",
        "operationId": "create-vm",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmCreateRequest"
              },
              "example": {
                "api_key_id": 1,
                "api_user_id": "customer-123",
                "location_id": 1,
                "platform": "epyc",
                "plan_code": "C1",
                "cpu_percent": 60,
                "os_id": 1,
                "months": 1,
                "auto_renew": false,
                "password": "Example-Password-2026!",
                "cloud_init": {
                  "packages": [
                    "curl"
                  ],
                  "runcmd": [
                    [
                      "sh",
                      "-c",
                      "echo ready > /root/cloud-init-ready"
                    ]
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "order_id": 401,
                    "status": "pending",
                    "amount_usd": "5.0000",
                    "currency": "USD",
                    "vm_id": null,
                    "rental_id": null,
                    "error_code": null,
                    "error_message": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Choose a plan, location and OS from the catalog. Supply exactly one of password or ssh_public_key, including in the quote request. The SSH key is a single OpenSSH public-key line (Ed25519, RSA or ECDSA). cpu_percent defaults to 60, months to 1 and auto_renew to false. api_user_id is your own customer identifier.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)\n\nOptional cloud-config JSON object, not a YAML string. Maximum 65536 bytes after server JSON serialization (non-ASCII characters are escaped). users, packages, runcmd and write_files must be arrays when present. Networking, hostname and primary access are managed by the platform. Retain the same object when retrying. Its result is reported separately in guest_initialization; cloud_init contents are not returned in orders or webhooks.\n\nLatest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health."
      },
      "get": {
        "tags": [
          "VPS management"
        ],
        "summary": "List VPS",
        "operationId": "list-vms",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "api_user_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "pattern": "\\S"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Api User Id"
            },
            "description": "Your customer identifier. Stored as a string; scoped to this integration.",
            "example": "customer-123"
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 9223372036854775807,
                  "minimum": 1
                },
                {
                  "type": "null"
                }
              ],
              "title": "Location Id"
            },
            "description": "location_id parameter.",
            "example": 1
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "epyc",
                    "ryzen",
                    "xeon"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Platform"
            },
            "description": "platform parameter.",
            "example": "epyc"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "creating",
                    "stopped",
                    "running",
                    "migrating",
                    "deleting",
                    "deleted",
                    "error"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            },
            "description": "status parameter.",
            "example": "creating"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 25,
              "title": "Limit"
            },
            "description": "Maximum number of records in this page.",
            "example": 25
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2147483647,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of records to skip, starting from zero.",
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmListResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "api_user_id": "customer-123",
                      "name": "Example",
                      "status": "example",
                      "plan_code": "C1",
                      "cpu_cores": 1,
                      "cpu_percent": 60,
                      "ram_mb": 1,
                      "disk_gb": 1,
                      "location_id": 1,
                      "location_name": "Poland",
                      "country_code": "PL",
                      "platform": "epyc",
                      "ips": [
                        "example"
                      ],
                      "paid_until": null,
                      "auto_renew": false
                    }
                  ],
                  "total_count": 1
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Lists only VPS belonging to this integration. api_user_id filters by your customer identifier. total_count is the full filtered count, before limit/offset.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/renew": {
      "post": {
        "tags": [
          "VPS billing"
        ],
        "summary": "Renew a VPS",
        "operationId": "renew-vm",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmRenewBody"
              },
              "example": {
                "api_key_id": 1,
                "months": 1
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "order_id": 401,
                    "status": "pending",
                    "amount_usd": "5.0000",
                    "currency": "USD",
                    "vm_id": null,
                    "rental_id": null,
                    "error_code": null,
                    "error_message": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Adds the selected number of calendar months to the current paid term, or starts from the current time if it has expired. Uses current prices, markup and term discount. Renew before the service is deleted.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/resize": {
      "post": {
        "tags": [
          "VPS billing"
        ],
        "summary": "Upgrade VPS plan",
        "operationId": "resize-vm",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmResizeBody"
              },
              "example": {
                "api_key_id": 1,
                "plan_code": "C1"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "order_id": 401,
                    "status": "pending",
                    "amount_usd": "5.0000",
                    "currency": "USD",
                    "vm_id": null,
                    "rental_id": null,
                    "error_code": null,
                    "error_message": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Only upgrades are supported: CPU resources, RAM, disk and included traffic cannot decrease. Omit cpu_percent to keep the current share. The surcharge covers the remaining paid calendar periods at current plan prices with their originally purchased term discounts. paid_until does not change. expected_amount_usd is the maximum accepted surcharge, since it may decrease with time.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/ips": {
      "post": {
        "tags": [
          "IP addresses"
        ],
        "summary": "Buy IPv4",
        "operationId": "buy-ip",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmIpv4PurchaseBody"
              },
              "example": {
                "api_key_id": 1,
                "auto_renew": false
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "order_id": 401,
                    "status": "pending",
                    "amount_usd": "5.0000",
                    "currency": "USD",
                    "vm_id": null,
                    "rental_id": null,
                    "error_code": null,
                    "error_message": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Buys one extra IPv4 for 30 days and attaches it to this VPS. Fixed price without integration markup or term discount. Its payment term and auto-renewal are independent of the VPS. A VPS can have at most 10 IPv4 including the primary address.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/status": {
      "get": {
        "tags": [
          "VPS management"
        ],
        "summary": "Power status",
        "operationId": "get-vm-status",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmStatusResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "vm_id": 101,
                    "status": "example",
                    "uptime": 1
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Returns current power status and uptime in seconds.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/console/link": {
      "post": {
        "tags": [
          "VPS management"
        ],
        "summary": "Console link",
        "operationId": "create-console-link",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmConsoleLinkResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "vm_id": 101,
                    "url": "https://console.example.com/session/example",
                    "expires_at": "2026-09-28T12:00:00Z"
                  }
                }
              }
            },
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Creates a one-time console URL valid until expires_at. api_key_id is a query parameter; there is no JSON body or Idempotency-Key. The response uses Cache-Control: no-store.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/metrics": {
      "get": {
        "tags": [
          "VPS management"
        ],
        "summary": "Monitoring",
        "operationId": "get-vm-metrics",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "timeframe",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "hour",
                "day",
                "week",
                "month",
                "year"
              ],
              "type": "string",
              "default": "hour",
              "title": "Timeframe"
            },
            "description": "timeframe parameter.",
            "example": "hour"
          },
          {
            "name": "cf",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "AVERAGE",
                "MAX"
              ],
              "type": "string",
              "default": "AVERAGE",
              "title": "Cf"
            },
            "description": "cf parameter.",
            "example": "AVERAGE"
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmMetricsResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "vm_id": 101,
                    "timeframe": "hour",
                    "cf": "AVERAGE",
                    "points": [
                      {
                        "time": 1790596800,
                        "cpu_percent": null,
                        "memory_used_bytes": null,
                        "memory_total_bytes": null,
                        "network_in_mbps": null,
                        "network_out_mbps": null,
                        "disk_read_bytes_per_second": null,
                        "disk_write_bytes_per_second": null
                      }
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Select the time range and aggregation (AVERAGE or MAX). A null metric means missing data, not zero. Point time is a Unix timestamp; network rates are Mbps, memory is bytes and disk rates are bytes/second.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/traffic": {
      "get": {
        "tags": [
          "VPS management"
        ],
        "summary": "Traffic usage",
        "operationId": "get-vm-traffic",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmTrafficResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "vm_id": 101,
                    "enabled": true,
                    "period": null,
                    "last_sample_at": null,
                    "shaping": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Returns the current traffic period, quota, usage and shaping. Byte counters and timestamps describe the last available sample. A missing period or shaping is represented as null.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/traffic/topup": {
      "post": {
        "tags": [
          "VPS billing"
        ],
        "summary": "Buy extra traffic",
        "operationId": "buy-traffic",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmTrafficTopupBody"
              },
              "example": {
                "api_key_id": 1,
                "traffic_tb": 1
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "order_id": 401,
                    "status": "pending",
                    "amount_usd": "5.0000",
                    "currency": "USD",
                    "vm_id": null,
                    "rental_id": null,
                    "error_code": null,
                    "error_message": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "traffic_tb is an integer; one unit is 1099511627776 bytes (1024⁴). Extra traffic has a fixed price without integration markup and applies only to the current traffic period. Copy expected_period_id from the quote into the purchase to detect a period change (409 quote_expired).\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/power": {
      "post": {
        "tags": [
          "VPS management"
        ],
        "summary": "Power control",
        "operationId": "change-vm-power",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VmPowerBody"
              },
              "example": {
                "api_key_id": 1,
                "action": "start"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "start starts the VPS; shutdown and reboot request a graceful OS shutdown/reboot. stop forces power off; reset forces a restart and can lose unsaved data.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\nHTTP 202 accepts the request; it does not confirm completion. Save the order_id or operation id and check its status.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/operations": {
      "get": {
        "tags": [
          "VPS management"
        ],
        "summary": "Operation history",
        "operationId": "list-vm-operations",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 20,
              "title": "Limit"
            },
            "description": "Maximum number of records in this page.",
            "example": 25
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2147483647,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of records to skip, starting from zero.",
            "example": 0
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationListResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "vm_id": 101,
                      "action": "start",
                      "status": "queued",
                      "created_at": "2026-09-28T12:00:00Z",
                      "started_at": null,
                      "finished_at": null,
                      "attempts": 1,
                      "order_id": null,
                      "power_action": null,
                      "requires_review": null,
                      "error_code": null,
                      "error_message": null
                    }
                  ],
                  "total_count": 1
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Operations and paid orders have different identifiers. Read data.id from a command response as operation_id. queued/running are not completion; succeeded/failed are terminal command results. History may also contain cancelled. result is populated only for successful delete, attach/detach, password reset and reinstall operations; use the status/firewall routes for other current state.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/operations/{operation_id}": {
      "get": {
        "tags": [
          "VPS management"
        ],
        "summary": "Operation result",
        "operationId": "get-vm-operation",
        "parameters": [
          {
            "name": "operation_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Operation Id"
            },
            "description": "operation_id parameter.",
            "example": 501
          },
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "power",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Operations and paid orders have different identifiers. Read data.id from a command response as operation_id. queued/running are not completion; succeeded/failed are terminal command results. History may also contain cancelled. result is populated only for successful delete, attach/detach, password reset and reinstall operations; use the status/firewall routes for other current state.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)\n\nLatest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health.\n\nRescue state. active means a saved Rescue context, not guaranteed SSH availability. access is ssh, console or null. requires_review calls for state verification; operation_id and operation_status refer to the Rescue operation. null means no state was returned."
      }
    },
    "/ips/{ip_id}": {
      "delete": {
        "tags": [
          "IP addresses"
        ],
        "summary": "Release saved IPv4",
        "operationId": "release-ip",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Ip Id"
            },
            "description": "ip_id parameter.",
            "example": 301
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpReleaseResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "operation_id": 501,
                    "ip_id": 301,
                    "address": "192.0.2.10",
                    "family": 4,
                    "status": "released"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Permanently releases an unattached saved IPv4. The address must not be assigned to a VPS. No charge or refund is created. The result contains operation_id; HTTP 200 confirms release.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      },
      "patch": {
        "tags": [
          "IP addresses"
        ],
        "summary": "IPv4 auto-renewal",
        "operationId": "set-ip-auto-renew",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Ip Id"
            },
            "description": "ip_id parameter.",
            "example": 301
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoRenewBody"
              },
              "example": {
                "api_key_id": 1,
                "auto_renew": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpAutoRenewResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "ip_id": 301,
                    "auto_renew": false
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Changes the auto-renewal setting without charging the balance or extending the paid term. The default is false. See the lifecycle guide for renewal timing, duration and pricing.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/ips/{ip_id}/renew": {
      "post": {
        "tags": [
          "IP addresses"
        ],
        "summary": "Renew IPv4",
        "operationId": "renew-ip",
        "parameters": [
          {
            "name": "ip_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Ip Id"
            },
            "description": "ip_id parameter.",
            "example": 301
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiRequest"
              },
              "example": {
                "api_key_id": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpRenewResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "order_id": 401,
                    "status": "completed",
                    "amount_usd": "5.0000",
                    "currency": "USD",
                    "vm_id": null,
                    "rental_id": null,
                    "error_code": null,
                    "error_message": null,
                    "ip_id": 301,
                    "paid_until": "2026-10-28T12:00:00Z"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Renews a separately paid attached or saved IPv4 for 30 days from max(current time, paid_until). Uses the current fixed monthly price, without markup or discount. Included primary IPv4 and IPv6 cannot be renewed separately. Returns HTTP 200 with a completed order and the new paid_until.\n\nSend a unique Idempotency-Key for each intended action. If the response is lost, retry with the same key and unchanged parameters; do not create a new key for the same purchase.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/ips": {
      "get": {
        "tags": [
          "IP addresses"
        ],
        "summary": "List IP addresses",
        "operationId": "list-ips",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "attachment",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "all",
                "attached",
                "unattached"
              ],
              "type": "string",
              "default": "all",
              "title": "Attachment"
            },
            "description": "all includes all addresses; unattached selects saved addresses without a VPS.",
            "example": "all"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 25,
              "title": "Limit"
            },
            "description": "Maximum number of records in this page.",
            "example": 25
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2147483647,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of records to skip, starting from zero.",
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IpListResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "ip_id": 301,
                      "address": "192.0.2.10",
                      "family": 4,
                      "api_user_id": "customer-123",
                      "vm_id": null,
                      "is_primary": true,
                      "location_id": 1,
                      "location_name": "Poland",
                      "country_code": "PL",
                      "paid_until": null,
                      "suspended_at": null,
                      "status": "active",
                      "auto_renew": null,
                      "monthly_price_usd": null,
                      "currency": "USD"
                    }
                  ],
                  "total_count": 1
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Includes attached and saved addresses. attachment=unattached selects saved addresses with vm_id=null. Only separately paid IPv4 have their own renewal price and auto-renewal; included primary IPv4 and IPv6 may have null billing fields. Prices are fixed, without markup.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/orders/{order_id}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Order details",
        "operationId": "get-order",
        "parameters": [
          {
            "name": "order_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Order Id"
            },
            "description": "order_id parameter.",
            "example": 401
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDetailsResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "order_id": 401,
                    "status": "pending",
                    "amount_usd": "5.0000",
                    "currency": "USD",
                    "vm_id": null,
                    "rental_id": null,
                    "error_code": null,
                    "error_message": null,
                    "order_type": "vm_purchase",
                    "api_user_id": "customer-123",
                    "ip_id": null,
                    "created_at": "2026-09-28T12:00:00Z",
                    "updated_at": null,
                    "completed_at": null,
                    "parameters": {}
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Paid orders are separate from VPS operations. Statuses: pending, processing, completed, failed, refunded, review. completed on a dedicated purchase means reserved, not issued. review means an uncertain or partial outcome that needs clarification; do not start a duplicate purchase. Parameters expose only public fields and never passwords or internal costs.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/orders": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "List orders",
        "operationId": "list-orders",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "api_user_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ],
              "title": "Api User Id"
            },
            "description": "Your customer identifier. Stored as a string; scoped to this integration.",
            "example": "customer-123"
          },
          {
            "name": "order_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "vm_purchase",
                    "vm_renewal",
                    "vm_resize",
                    "traffic_purchase",
                    "ipv4_purchase",
                    "ipv4_renewal",
                    "dedicated_purchase",
                    "dedicated_renewal"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Order Type"
            },
            "description": "order_type parameter.",
            "example": "vm_purchase"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "pending",
                    "processing",
                    "completed",
                    "failed",
                    "refunded",
                    "review"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            },
            "description": "status parameter.",
            "example": "pending"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            },
            "description": "Maximum number of records in this page.",
            "example": 25
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2147483647,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of records to skip, starting from zero.",
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderListResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "order_id": 401,
                      "status": "pending",
                      "amount_usd": "5.0000",
                      "currency": "USD",
                      "vm_id": null,
                      "rental_id": null,
                      "error_code": null,
                      "error_message": null,
                      "order_type": "vm_purchase",
                      "api_user_id": "customer-123",
                      "ip_id": null,
                      "created_at": "2026-09-28T12:00:00Z",
                      "updated_at": null,
                      "completed_at": null
                    }
                  ],
                  "total_count": 1
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Paid orders are separate from VPS operations. Statuses: pending, processing, completed, failed, refunded, review. completed on a dedicated purchase means reserved, not issued. review means an uncertain or partial outcome that needs clarification; do not start a duplicate purchase. Parameters expose only public fields and never passwords or internal costs.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/transactions": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Transaction history",
        "operationId": "list-transactions",
        "parameters": [
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "transaction_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "topup",
                    "vm_purchase",
                    "vm_renewal",
                    "vm_resize",
                    "traffic_purchase",
                    "ipv4_purchase",
                    "ipv4_renewal",
                    "dedicated_purchase",
                    "dedicated_renewal",
                    "refund",
                    "adjustment"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Transaction Type"
            },
            "description": "transaction_type parameter.",
            "example": "topup"
          },
          {
            "name": "order_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer",
                  "maximum": 9223372036854775807,
                  "minimum": 1
                },
                {
                  "type": "null"
                }
              ],
              "title": "Order Id"
            },
            "description": "order_id parameter.",
            "example": 401
          },
          {
            "name": "date_from",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Date From"
            },
            "description": "First included UTC date (YYYY-MM-DD).",
            "example": "2026-09-28"
          },
          {
            "name": "date_to",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Date To"
            },
            "description": "Last included UTC date (YYYY-MM-DD).",
            "example": "2026-09-28"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            },
            "description": "Maximum number of records in this page.",
            "example": 25
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 2147483647,
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of records to skip, starting from zero.",
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionListResponse"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "transaction_type": "topup",
                      "amount_usd": "5.0000",
                      "balance_before": "100.0000",
                      "balance_after": "95.0000",
                      "order_id": null,
                      "comment": null,
                      "created_at": "2026-09-28T12:00:00Z"
                    }
                  ],
                  "total_count": 1,
                  "currency": "USD",
                  "limit": 25,
                  "offset": 0
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Returns integration balance movements. amount_usd is signed: negative for a debit, positive for a credit. order_id may be null (for example a top-up). Date filters include the full UTC days. These are integration transactions, not organization transactions.\n\n[Request rules and errors](./quick-start) · [Lifecycle](./purchase-flow) · [Webhooks](./webhooks)"
      }
    },
    "/vms/{vm_id}/rescue": {
      "put": {
        "tags": [
          "VPS management"
        ],
        "summary": "Enable Rescue",
        "operationId": "enable-vm-rescue",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RescueEnableBody"
              },
              "example": {
                "api_key_id": 1,
                "password": "Temporary-Rescue-2026!"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "rescue_enable",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Reboots the VPS into Rescue while preserving disks and networking. Requires at least 2048 MiB RAM and a paid VPS. Supply a temporary password; after success, connect as root to the VPS IP over SSH on port 22. Firewall rules still apply. Plan changes, OS reinstallation and normal OS password resets are unavailable in Rescue. Check the operation and rescue in VPS details. For rescue_not_ready or requires_review=true, verify the state and exit Rescue; retry a lost request with its original Idempotency-Key.\n\nHTTP 202 means acceptance. Poll GET /vms/{vm_id}/operations/{operation_id}; data.id is the operation ID. [Webhooks](./webhooks)."
      },
      "delete": {
        "tags": [
          "VPS management"
        ],
        "summary": "Disable Rescue",
        "operationId": "disable-vm-rescue",
        "parameters": [
          {
            "name": "vm_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Vm Id"
            },
            "description": "vm_id parameter.",
            "example": 101
          },
          {
            "name": "api_key_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "maximum": 9223372036854775807,
              "minimum": 1,
              "title": "Api Key Id"
            },
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key.",
            "example": 1
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "^[!-~]+$",
              "title": "Idempotency-Key"
            },
            "description": "Unique key for this intended action, 1–200 printable ASCII characters without spaces. Retry the same action with the same key and unchanged parameters.",
            "example": "example-action-20260928-001"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VmOperationResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "vm_id": 101,
                    "action": "rescue_disable",
                    "status": "queued",
                    "created_at": "2026-09-28T12:00:00Z",
                    "started_at": null,
                    "finished_at": null,
                    "error_code": null,
                    "error_message": null,
                    "result": null,
                    "requires_review": null
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid request fields or unsupported parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid key, mismatched ID, or inactive integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found in this integration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Business or state conflict; inspect detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable or result unconfirmed; for a mutation retain its idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Exits Rescue and restores normal OS boot. A paid VPS is started; an expired or suspended VPS remains stopped. Exit is also allowed from error when Rescue context is saved. Send api_key_id in the query; no request body or password is needed. Use a separate Idempotency-Key for the exit command.\n\nHTTP 202 means acceptance. Poll GET /vms/{vm_id}/operations/{operation_id}; data.id is the operation ID. [Webhooks](./webhooks)."
      }
    }
  },
  "components": {
    "schemas": {
      "ApiRequest": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id"
        ],
        "title": "ApiRequest",
        "example": {
          "api_key_id": 1
        }
      },
      "AutoRenewBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "auto_renew"
        ],
        "title": "AutoRenewBody",
        "example": {
          "api_key_id": 1,
          "auto_renew": false
        }
      },
      "BalanceCheckResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "api_key_id": {
            "type": "integer",
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "balance": {
            "type": "string",
            "title": "Balance"
          },
          "currency": {
            "type": "string",
            "const": "USD",
            "title": "Currency",
            "default": "USD"
          },
          "balance_updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Balance Updated At"
          }
        },
        "type": "object",
        "required": [
          "success",
          "api_key_id",
          "balance"
        ],
        "title": "BalanceCheckResponse",
        "example": {
          "success": true,
          "api_key_id": 1,
          "balance": "100.0000",
          "currency": "USD",
          "balance_updated_at": null
        }
      },
      "DedicatedDisk": {
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Count"
          },
          "size_gb": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Size Gb"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          }
        },
        "type": "object",
        "required": [
          "count",
          "size_gb",
          "type"
        ],
        "title": "DedicatedDisk"
      },
      "DedicatedHardware": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "code": {
            "type": "string",
            "title": "Code"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "platform": {
            "type": "string",
            "enum": [
              "epyc",
              "ryzen",
              "xeon",
              "storage"
            ],
            "title": "Platform"
          },
          "cpu_model": {
            "type": "string",
            "title": "Cpu Model"
          },
          "cpu_count": {
            "type": "integer",
            "title": "Cpu Count"
          },
          "cpu_cores": {
            "type": "integer",
            "title": "Cpu Cores"
          },
          "cpu_threads": {
            "type": "integer",
            "title": "Cpu Threads"
          },
          "ram_gb": {
            "type": "integer",
            "title": "Ram Gb"
          },
          "ram_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ram Description"
          },
          "disks": {
            "items": {
              "$ref": "#/components/schemas/DedicatedDisk"
            },
            "type": "array",
            "title": "Disks"
          },
          "disk_layouts": {
            "items": {
              "type": "string",
              "enum": [
                "separate",
                "lvm_linear",
                "raid0",
                "raid1"
              ]
            },
            "type": "array",
            "title": "Disk Layouts"
          },
          "default_disk_layout": {
            "type": "string",
            "enum": [
              "separate",
              "lvm_linear",
              "raid0",
              "raid1"
            ],
            "title": "Default Disk Layout"
          },
          "port_mbps": {
            "type": "integer",
            "title": "Port Mbps"
          },
          "traffic_tb": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Traffic Tb",
            "description": "Additional integer traffic units; one unit is 1024⁴ bytes."
          },
          "included_ipv4": {
            "type": "integer",
            "title": "Included Ipv4"
          },
          "ipv6_prefix_length": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ipv6 Prefix Length"
          }
        },
        "type": "object",
        "required": [
          "id",
          "code",
          "name",
          "platform",
          "cpu_model",
          "cpu_count",
          "cpu_cores",
          "cpu_threads",
          "ram_gb",
          "ram_description",
          "disks",
          "disk_layouts",
          "default_disk_layout",
          "port_mbps",
          "traffic_tb",
          "included_ipv4",
          "ipv6_prefix_length"
        ],
        "title": "DedicatedHardware"
      },
      "DedicatedPlan": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "code": {
            "type": "string",
            "title": "Code"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "platform": {
            "type": "string",
            "enum": [
              "epyc",
              "ryzen",
              "xeon",
              "storage"
            ],
            "title": "Platform"
          },
          "cpu_model": {
            "type": "string",
            "title": "Cpu Model"
          },
          "cpu_count": {
            "type": "integer",
            "title": "Cpu Count"
          },
          "cpu_cores": {
            "type": "integer",
            "title": "Cpu Cores"
          },
          "cpu_threads": {
            "type": "integer",
            "title": "Cpu Threads"
          },
          "ram_gb": {
            "type": "integer",
            "title": "Ram Gb"
          },
          "ram_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ram Description"
          },
          "disks": {
            "items": {
              "$ref": "#/components/schemas/DedicatedDisk"
            },
            "type": "array",
            "title": "Disks"
          },
          "disk_layouts": {
            "items": {
              "type": "string",
              "enum": [
                "separate",
                "lvm_linear",
                "raid0",
                "raid1"
              ]
            },
            "type": "array",
            "title": "Disk Layouts"
          },
          "default_disk_layout": {
            "type": "string",
            "enum": [
              "separate",
              "lvm_linear",
              "raid0",
              "raid1"
            ],
            "title": "Default Disk Layout"
          },
          "port_mbps": {
            "type": "integer",
            "title": "Port Mbps"
          },
          "traffic_tb": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Traffic Tb",
            "description": "Additional integer traffic units; one unit is 1024⁴ bytes."
          },
          "included_ipv4": {
            "type": "integer",
            "title": "Included Ipv4"
          },
          "ipv6_prefix_length": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ipv6 Prefix Length"
          },
          "location_id": {
            "type": "integer",
            "title": "Location Id"
          },
          "location_name": {
            "type": "string",
            "title": "Location Name"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code"
          },
          "monthly_price_usd": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Monthly Price Usd"
          },
          "extra_ipv4_monthly_price_usd": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Extra Ipv4 Monthly Price Usd"
          },
          "extra_traffic_tb_price_usd": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Extra Traffic Tb Price Usd"
          },
          "term_discounts": {
            "additionalProperties": {
              "type": "string",
              "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
            },
            "type": "object",
            "title": "Term Discounts"
          },
          "available": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Available",
            "description": "Currently available quantity. A snapshot does not reserve capacity."
          }
        },
        "type": "object",
        "required": [
          "id",
          "code",
          "name",
          "platform",
          "cpu_model",
          "cpu_count",
          "cpu_cores",
          "cpu_threads",
          "ram_gb",
          "ram_description",
          "disks",
          "disk_layouts",
          "default_disk_layout",
          "port_mbps",
          "traffic_tb",
          "included_ipv4",
          "ipv6_prefix_length",
          "location_id",
          "location_name",
          "country_code",
          "monthly_price_usd",
          "extra_ipv4_monthly_price_usd",
          "extra_traffic_tb_price_usd",
          "term_discounts",
          "available"
        ],
        "title": "DedicatedPlan"
      },
      "DedicatedPlansResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/DedicatedPlan"
            },
            "type": "array",
            "title": "Data"
          },
          "total_count": {
            "type": "integer",
            "title": "Total Count",
            "description": "Full matching count before pagination."
          },
          "currency": {
            "type": "string",
            "const": "USD",
            "title": "Currency",
            "default": "USD"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data",
          "total_count",
          "updated_at"
        ],
        "title": "DedicatedPlansResponse",
        "example": {
          "success": true,
          "data": [
            {
              "id": 1,
              "code": "C1",
              "name": "Example",
              "platform": "epyc",
              "cpu_model": "example",
              "cpu_count": 1,
              "cpu_cores": 1,
              "cpu_threads": 1,
              "ram_gb": 1,
              "ram_description": null,
              "disks": [
                {
                  "count": 1,
                  "size_gb": 1,
                  "type": "example",
                  "model": null
                }
              ],
              "disk_layouts": [
                "separate"
              ],
              "default_disk_layout": "separate",
              "port_mbps": 1,
              "traffic_tb": null,
              "included_ipv4": 1,
              "ipv6_prefix_length": null,
              "location_id": 1,
              "location_name": "Poland",
              "country_code": "PL",
              "monthly_price_usd": "5.0000",
              "extra_ipv4_monthly_price_usd": "5.0000",
              "extra_traffic_tb_price_usd": "5.0000",
              "term_discounts": {},
              "available": 1
            }
          ],
          "total_count": 1,
          "currency": "USD",
          "updated_at": null
        }
      },
      "FirewallAddBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "revision": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 0.0,
            "title": "Revision",
            "description": "Current firewall revision from GET firewall. Reread on conflict."
          },
          "rule": {
            "$ref": "#/components/schemas/FirewallRule"
          },
          "position": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 100.0,
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Position"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "revision",
          "rule"
        ],
        "title": "FirewallAddBody",
        "example": {
          "api_key_id": 1,
          "revision": 0,
          "rule": {
            "direction": "IN",
            "action": "ACCEPT",
            "protocol": "tcp",
            "ports": [
              "443"
            ],
            "source": null,
            "destination": null,
            "enabled": true,
            "comment": "HTTPS"
          }
        }
      },
      "FirewallPoliciesBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "revision": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 0.0,
            "title": "Revision",
            "description": "Current firewall revision from GET firewall. Reread on conflict."
          },
          "input_policy": {
            "type": "string",
            "enum": [
              "ACCEPT",
              "DROP"
            ],
            "title": "Input Policy"
          },
          "output_policy": {
            "type": "string",
            "enum": [
              "ACCEPT",
              "DROP"
            ],
            "title": "Output Policy"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "revision",
          "input_policy",
          "output_policy"
        ],
        "title": "FirewallPoliciesBody",
        "example": {
          "api_key_id": 1,
          "revision": 0,
          "input_policy": "ACCEPT",
          "output_policy": "ACCEPT"
        }
      },
      "FirewallReorderBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "revision": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 0.0,
            "title": "Revision",
            "description": "Current firewall revision from GET firewall. Reread on conflict."
          },
          "rule_ids": {
            "items": {
              "type": "integer",
              "maximum": 9.223372036854776e+18,
              "minimum": 1.0
            },
            "type": "array",
            "maxItems": 100,
            "title": "Rule Ids",
            "description": "All existing rule IDs, once each, in the desired order."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "revision",
          "rule_ids"
        ],
        "title": "FirewallReorderBody",
        "example": {
          "api_key_id": 1,
          "revision": 0,
          "rule_ids": [
            1,
            2
          ]
        }
      },
      "FirewallRule": {
        "properties": {
          "direction": {
            "type": "string",
            "enum": [
              "IN",
              "OUT"
            ],
            "title": "Direction"
          },
          "action": {
            "type": "string",
            "enum": [
              "ACCEPT",
              "DROP"
            ],
            "title": "Action"
          },
          "protocol": {
            "type": "string",
            "enum": [
              "tcp",
              "udp",
              "tcp_udp",
              "icmp",
              "icmpv6",
              "any"
            ],
            "title": "Protocol"
          },
          "ports": {
            "items": {
              "type": "string",
              "pattern": "^[0-9]{1,5}(-[0-9]{1,5})?$"
            },
            "type": "array",
            "maxItems": 32,
            "title": "Ports"
          },
          "source": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 49
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          },
          "destination": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 49
              },
              {
                "type": "null"
              }
            ],
            "title": "Destination"
          },
          "enabled": {
            "type": "boolean",
            "title": "Enabled",
            "default": true
          },
          "comment": {
            "type": "string",
            "maxLength": 255,
            "title": "Comment",
            "default": ""
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "direction",
          "action",
          "protocol"
        ],
        "title": "FirewallRule"
      },
      "FirewallRuleItem": {
        "properties": {
          "direction": {
            "type": "string",
            "enum": [
              "IN",
              "OUT"
            ],
            "title": "Direction"
          },
          "action": {
            "type": "string",
            "enum": [
              "ACCEPT",
              "DROP"
            ],
            "title": "Action"
          },
          "protocol": {
            "type": "string",
            "enum": [
              "tcp",
              "udp",
              "tcp_udp",
              "icmp",
              "icmpv6",
              "any"
            ],
            "title": "Protocol"
          },
          "ports": {
            "items": {
              "type": "string",
              "pattern": "^[0-9]{1,5}(-[0-9]{1,5})?$"
            },
            "type": "array",
            "maxItems": 32,
            "title": "Ports"
          },
          "source": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 49
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          },
          "destination": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 49
              },
              {
                "type": "null"
              }
            ],
            "title": "Destination"
          },
          "enabled": {
            "type": "boolean",
            "title": "Enabled",
            "default": true
          },
          "comment": {
            "type": "string",
            "maxLength": 255,
            "title": "Comment",
            "default": ""
          },
          "id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Id"
          }
        },
        "type": "object",
        "required": [
          "direction",
          "action",
          "protocol",
          "id"
        ],
        "title": "FirewallRuleItem"
      },
      "FirewallUpdateBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "revision": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 0.0,
            "title": "Revision",
            "description": "Current firewall revision from GET firewall. Reread on conflict."
          },
          "rule": {
            "$ref": "#/components/schemas/FirewallRule"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "revision",
          "rule"
        ],
        "title": "FirewallUpdateBody",
        "example": {
          "api_key_id": 1,
          "revision": 0,
          "rule": {
            "direction": "IN",
            "action": "ACCEPT",
            "protocol": "tcp",
            "ports": [
              "443"
            ],
            "source": null,
            "destination": null,
            "enabled": true,
            "comment": "HTTPS"
          }
        }
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "HeldIpv4": {
        "properties": {
          "ip_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Ip Id"
          },
          "address": {
            "type": "string",
            "format": "ipv4interface",
            "title": "Address"
          },
          "family": {
            "type": "integer",
            "const": 4,
            "title": "Family"
          },
          "paid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paid Until",
            "description": "End of the paid service term, UTC."
          }
        },
        "type": "object",
        "required": [
          "ip_id",
          "address",
          "family",
          "paid_until"
        ],
        "title": "HeldIpv4"
      },
      "IpAutoRenewData": {
        "properties": {
          "ip_id": {
            "type": "integer",
            "title": "Ip Id"
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          }
        },
        "type": "object",
        "required": [
          "ip_id",
          "auto_renew"
        ],
        "title": "IpAutoRenewData"
      },
      "IpAutoRenewResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/IpAutoRenewData"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "IpAutoRenewResponse",
        "example": {
          "success": true,
          "data": {
            "ip_id": 301,
            "auto_renew": false
          }
        }
      },
      "IpListItem": {
        "properties": {
          "ip_id": {
            "type": "integer",
            "title": "Ip Id"
          },
          "address": {
            "type": "string",
            "title": "Address"
          },
          "family": {
            "type": "integer",
            "enum": [
              4,
              6
            ],
            "title": "Family"
          },
          "api_user_id": {
            "type": "string",
            "title": "Api User Id",
            "description": "Your customer identifier. Stored as a string; scoped to this integration."
          },
          "vm_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vm Id"
          },
          "is_primary": {
            "type": "boolean",
            "title": "Is Primary"
          },
          "location_id": {
            "type": "integer",
            "title": "Location Id"
          },
          "location_name": {
            "type": "string",
            "title": "Location Name"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code"
          },
          "paid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paid Until",
            "description": "End of the paid service term, UTC."
          },
          "suspended_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suspended At"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "expired",
              "suspended",
              "unknown"
            ],
            "title": "Status"
          },
          "auto_renew": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Renew",
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          },
          "monthly_price_usd": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monthly Price Usd"
          },
          "currency": {
            "type": "string",
            "const": "USD",
            "title": "Currency",
            "default": "USD"
          }
        },
        "type": "object",
        "required": [
          "ip_id",
          "address",
          "family",
          "api_user_id",
          "vm_id",
          "is_primary",
          "location_id",
          "location_name",
          "country_code",
          "paid_until",
          "suspended_at",
          "status",
          "auto_renew",
          "monthly_price_usd"
        ],
        "title": "IpListItem"
      },
      "IpListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/IpListItem"
            },
            "type": "array",
            "title": "Data"
          },
          "total_count": {
            "type": "integer",
            "title": "Total Count",
            "description": "Full matching count before pagination."
          }
        },
        "type": "object",
        "required": [
          "success",
          "data",
          "total_count"
        ],
        "title": "IpListResponse",
        "example": {
          "success": true,
          "data": [
            {
              "ip_id": 301,
              "address": "192.0.2.10",
              "family": 4,
              "api_user_id": "customer-123",
              "vm_id": null,
              "is_primary": true,
              "location_id": 1,
              "location_name": "Poland",
              "country_code": "PL",
              "paid_until": null,
              "suspended_at": null,
              "status": "active",
              "auto_renew": null,
              "monthly_price_usd": null,
              "currency": "USD"
            }
          ],
          "total_count": 1
        }
      },
      "IpReleaseResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/IpReleaseResult"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "IpReleaseResponse",
        "example": {
          "success": true,
          "data": {
            "operation_id": 501,
            "ip_id": 301,
            "address": "192.0.2.10",
            "family": 4,
            "status": "released"
          }
        }
      },
      "IpReleaseResult": {
        "properties": {
          "operation_id": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Operation Id"
          },
          "ip_id": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Ip Id"
          },
          "address": {
            "type": "string",
            "title": "Address"
          },
          "family": {
            "type": "integer",
            "const": 4,
            "title": "Family"
          },
          "status": {
            "type": "string",
            "const": "released",
            "title": "Status"
          }
        },
        "type": "object",
        "required": [
          "operation_id",
          "ip_id",
          "address",
          "family",
          "status"
        ],
        "title": "IpReleaseResult"
      },
      "IpRenewData": {
        "properties": {
          "order_id": {
            "type": "integer",
            "title": "Order Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "processing",
              "completed",
              "failed",
              "refunded",
              "review"
            ],
            "title": "Status"
          },
          "amount_usd": {
            "type": "string",
            "title": "Amount Usd",
            "description": "USD decimal string with four fractional digits; transaction amounts retain their sign."
          },
          "currency": {
            "type": "string",
            "const": "USD",
            "title": "Currency",
            "default": "USD"
          },
          "vm_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vm Id"
          },
          "rental_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rental Id"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "ip_id": {
            "type": "integer",
            "title": "Ip Id"
          },
          "paid_until": {
            "type": "string",
            "format": "date-time",
            "title": "Paid Until",
            "description": "End of the paid service term, UTC."
          }
        },
        "type": "object",
        "required": [
          "order_id",
          "status",
          "amount_usd",
          "vm_id",
          "error_code",
          "error_message",
          "ip_id",
          "paid_until"
        ],
        "title": "IpRenewData"
      },
      "IpRenewResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/IpRenewData"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "IpRenewResponse",
        "example": {
          "success": true,
          "data": {
            "order_id": 401,
            "status": "completed",
            "amount_usd": "5.0000",
            "currency": "USD",
            "vm_id": null,
            "rental_id": null,
            "error_code": null,
            "error_message": null,
            "ip_id": 301,
            "paid_until": "2026-10-28T12:00:00Z"
          }
        }
      },
      "LocationItem": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code"
          },
          "platforms": {
            "items": {
              "$ref": "#/components/schemas/PlatformItem"
            },
            "type": "array",
            "title": "Platforms"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "country_code",
          "platforms"
        ],
        "title": "LocationItem"
      },
      "MetricPoint": {
        "properties": {
          "time": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Time"
          },
          "cpu_percent": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Cpu Percent",
            "description": "CPU share: 20, 40, 60, 80 or 100. Creation defaults to 60; resize keeps the current share if omitted."
          },
          "memory_used_bytes": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Memory Used Bytes"
          },
          "memory_total_bytes": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Memory Total Bytes"
          },
          "network_in_mbps": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Network In Mbps"
          },
          "network_out_mbps": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Network Out Mbps"
          },
          "disk_read_bytes_per_second": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Disk Read Bytes Per Second"
          },
          "disk_write_bytes_per_second": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Disk Write Bytes Per Second"
          }
        },
        "type": "object",
        "required": [
          "time"
        ],
        "title": "MetricPoint"
      },
      "OrderData": {
        "properties": {
          "order_id": {
            "type": "integer",
            "title": "Order Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "processing",
              "completed",
              "failed",
              "refunded",
              "review"
            ],
            "title": "Status"
          },
          "amount_usd": {
            "type": "string",
            "title": "Amount Usd",
            "description": "USD decimal string with four fractional digits; transaction amounts retain their sign."
          },
          "currency": {
            "type": "string",
            "const": "USD",
            "title": "Currency",
            "default": "USD"
          },
          "vm_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vm Id"
          },
          "rental_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rental Id"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "guest_initialization": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VmGuestInitialization"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Latest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health."
          }
        },
        "type": "object",
        "required": [
          "order_id",
          "status",
          "amount_usd",
          "vm_id",
          "error_code",
          "error_message"
        ],
        "title": "OrderData"
      },
      "OrderDetails": {
        "properties": {
          "order_id": {
            "type": "integer",
            "title": "Order Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "processing",
              "completed",
              "failed",
              "refunded",
              "review"
            ],
            "title": "Status"
          },
          "amount_usd": {
            "type": "string",
            "title": "Amount Usd",
            "description": "USD decimal string with four fractional digits; transaction amounts retain their sign."
          },
          "currency": {
            "type": "string",
            "const": "USD",
            "title": "Currency",
            "default": "USD"
          },
          "vm_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vm Id"
          },
          "rental_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rental Id"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "order_type": {
            "type": "string",
            "enum": [
              "vm_purchase",
              "vm_renewal",
              "vm_resize",
              "traffic_purchase",
              "ipv4_purchase",
              "ipv4_renewal",
              "dedicated_purchase",
              "dedicated_renewal"
            ],
            "title": "Order Type"
          },
          "api_user_id": {
            "type": "string",
            "title": "Api User Id",
            "description": "Your customer identifier. Stored as a string; scoped to this integration."
          },
          "ip_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ip Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "parameters": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "boolean"
                }
              ]
            },
            "type": "object",
            "title": "Parameters"
          },
          "guest_initialization": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VmGuestInitialization"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Latest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health."
          }
        },
        "type": "object",
        "required": [
          "order_id",
          "status",
          "amount_usd",
          "vm_id",
          "error_code",
          "error_message",
          "order_type",
          "api_user_id",
          "ip_id",
          "created_at",
          "updated_at",
          "completed_at",
          "parameters"
        ],
        "title": "OrderDetails"
      },
      "OrderDetailsResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/OrderDetails"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "OrderDetailsResponse",
        "example": {
          "success": true,
          "data": {
            "order_id": 401,
            "status": "pending",
            "amount_usd": "5.0000",
            "currency": "USD",
            "vm_id": null,
            "rental_id": null,
            "error_code": null,
            "error_message": null,
            "order_type": "vm_purchase",
            "api_user_id": "customer-123",
            "ip_id": null,
            "created_at": "2026-09-28T12:00:00Z",
            "updated_at": null,
            "completed_at": null,
            "parameters": {}
          }
        }
      },
      "OrderListItem": {
        "properties": {
          "order_id": {
            "type": "integer",
            "title": "Order Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "processing",
              "completed",
              "failed",
              "refunded",
              "review"
            ],
            "title": "Status"
          },
          "amount_usd": {
            "type": "string",
            "title": "Amount Usd",
            "description": "USD decimal string with four fractional digits; transaction amounts retain their sign."
          },
          "currency": {
            "type": "string",
            "const": "USD",
            "title": "Currency",
            "default": "USD"
          },
          "vm_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vm Id"
          },
          "rental_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rental Id"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "order_type": {
            "type": "string",
            "enum": [
              "vm_purchase",
              "vm_renewal",
              "vm_resize",
              "traffic_purchase",
              "ipv4_purchase",
              "ipv4_renewal",
              "dedicated_purchase",
              "dedicated_renewal"
            ],
            "title": "Order Type"
          },
          "api_user_id": {
            "type": "string",
            "title": "Api User Id",
            "description": "Your customer identifier. Stored as a string; scoped to this integration."
          },
          "ip_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ip Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "guest_initialization": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VmGuestInitialization"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Latest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health."
          }
        },
        "type": "object",
        "required": [
          "order_id",
          "status",
          "amount_usd",
          "vm_id",
          "error_code",
          "error_message",
          "order_type",
          "api_user_id",
          "ip_id",
          "created_at",
          "updated_at",
          "completed_at"
        ],
        "title": "OrderListItem"
      },
      "OrderListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/OrderListItem"
            },
            "type": "array",
            "title": "Data"
          },
          "total_count": {
            "type": "integer",
            "title": "Total Count",
            "description": "Full matching count before pagination."
          }
        },
        "type": "object",
        "required": [
          "success",
          "data",
          "total_count"
        ],
        "title": "OrderListResponse",
        "example": {
          "success": true,
          "data": [
            {
              "order_id": 401,
              "status": "pending",
              "amount_usd": "5.0000",
              "currency": "USD",
              "vm_id": null,
              "rental_id": null,
              "error_code": null,
              "error_message": null,
              "order_type": "vm_purchase",
              "api_user_id": "customer-123",
              "ip_id": null,
              "created_at": "2026-09-28T12:00:00Z",
              "updated_at": null,
              "completed_at": null
            }
          ],
          "total_count": 1
        }
      },
      "OrderResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/OrderData"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "OrderResponse",
        "example": {
          "success": true,
          "data": {
            "order_id": 401,
            "status": "pending",
            "amount_usd": "5.0000",
            "currency": "USD",
            "vm_id": null,
            "rental_id": null,
            "error_code": null,
            "error_message": null
          }
        }
      },
      "OsItem": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "code": {
            "type": "string",
            "title": "Code"
          },
          "name": {
            "type": "string",
            "title": "Name"
          }
        },
        "type": "object",
        "required": [
          "id",
          "code",
          "name"
        ],
        "title": "OsItem"
      },
      "OsListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "os": {
            "items": {
              "$ref": "#/components/schemas/OsItem"
            },
            "type": "array",
            "title": "Os"
          }
        },
        "type": "object",
        "required": [
          "success",
          "os"
        ],
        "title": "OsListResponse",
        "example": {
          "success": true,
          "os": [
            {
              "id": 1,
              "code": "C1",
              "name": "Example"
            }
          ]
        }
      },
      "PasswordResetBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "login": {
            "type": "string",
            "maxLength": 32,
            "minLength": 1,
            "pattern": "^[a-z_][a-z0-9_-]*$",
            "title": "Login",
            "default": "root"
          },
          "password": {
            "type": "string",
            "maxLength": 1024,
            "minLength": 5,
            "title": "Password",
            "description": "Access password. Never send together with ssh_public_key.",
            "writeOnly": true
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "password"
        ],
        "title": "PasswordResetBody",
        "example": {
          "api_key_id": 1,
          "login": "root",
          "password": "Example-Password-2026!"
        }
      },
      "PasswordResetResult": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "title": "Vm Id"
          },
          "status": {
            "type": "string",
            "const": "running",
            "title": "Status"
          },
          "login": {
            "type": "string",
            "title": "Login"
          },
          "password_changed": {
            "type": "boolean",
            "const": true,
            "title": "Password Changed"
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "status",
          "login",
          "password_changed"
        ],
        "title": "PasswordResetResult"
      },
      "PlanItem": {
        "properties": {
          "code": {
            "type": "string",
            "title": "Code"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "cpu_cores": {
            "type": "integer",
            "title": "Cpu Cores"
          },
          "ram_mb": {
            "type": "integer",
            "title": "Ram Mb"
          },
          "disk_gb": {
            "type": "integer",
            "title": "Disk Gb"
          },
          "traffic_tb": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Traffic Tb",
            "description": "Additional integer traffic units; one unit is 1024⁴ bytes."
          },
          "monthly_price_usd": {
            "type": "string",
            "title": "Monthly Price Usd"
          },
          "available": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Available",
            "description": "Currently available quantity. A snapshot does not reserve capacity."
          }
        },
        "type": "object",
        "required": [
          "code",
          "name",
          "cpu_cores",
          "ram_mb",
          "disk_gb",
          "traffic_tb",
          "monthly_price_usd",
          "available"
        ],
        "title": "PlanItem"
      },
      "PlansListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "api_key_id": {
            "type": "integer",
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "cpu_percent": {
            "type": "integer",
            "enum": [
              20,
              40,
              60,
              80,
              100
            ],
            "title": "Cpu Percent",
            "description": "CPU share: 20, 40, 60, 80 or 100. Creation defaults to 60; resize keeps the current share if omitted."
          },
          "currency": {
            "type": "string",
            "const": "USD",
            "title": "Currency",
            "default": "USD"
          },
          "locations": {
            "items": {
              "$ref": "#/components/schemas/LocationItem"
            },
            "type": "array",
            "title": "Locations"
          }
        },
        "type": "object",
        "required": [
          "success",
          "api_key_id",
          "cpu_percent",
          "locations"
        ],
        "title": "PlansListResponse",
        "example": {
          "success": true,
          "api_key_id": 1,
          "cpu_percent": 60,
          "currency": "USD",
          "locations": [
            {
              "id": 1,
              "name": "Example",
              "country_code": "PL",
              "platforms": [
                {
                  "platform": "epyc",
                  "cpu_display_name": null,
                  "availability_updated_at": null,
                  "plans": [
                    {
                      "code": "C1",
                      "name": "Example",
                      "cpu_cores": 1,
                      "ram_mb": 1,
                      "disk_gb": 1,
                      "traffic_tb": "5.0000",
                      "monthly_price_usd": "5.0000",
                      "available": null
                    }
                  ]
                }
              ]
            }
          ]
        }
      },
      "PlatformItem": {
        "properties": {
          "platform": {
            "type": "string",
            "enum": [
              "epyc",
              "ryzen",
              "xeon"
            ],
            "title": "Platform"
          },
          "cpu_display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cpu Display Name"
          },
          "availability_updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Availability Updated At"
          },
          "plans": {
            "items": {
              "$ref": "#/components/schemas/PlanItem"
            },
            "type": "array",
            "title": "Plans"
          }
        },
        "type": "object",
        "required": [
          "platform",
          "cpu_display_name",
          "availability_updated_at",
          "plans"
        ],
        "title": "PlatformItem"
      },
      "ReinstallBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "os_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Os Id",
            "description": "Operating system ID from GET /reference/os."
          },
          "wipe_extra_disks": {
            "type": "boolean",
            "title": "Wipe Extra Disks",
            "default": false
          },
          "password": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1024,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Password",
            "description": "Access password. Never send together with ssh_public_key.",
            "writeOnly": true
          },
          "ssh_public_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 8192,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh Public Key",
            "description": "One OpenSSH public-key line: Ed25519, RSA or ECDSA. Send the key itself, not a saved key ID."
          },
          "cloud_init": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Cloud Init",
            "description": "Optional cloud-config JSON object, not a YAML string. Maximum 65536 bytes after server JSON serialization (non-ASCII characters are escaped). users, packages, runcmd and write_files must be arrays when present. Networking, hostname and primary access are managed by the platform. Retain the same object when retrying. Its result is reported separately in guest_initialization; cloud_init contents are not returned in orders or webhooks."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "os_id"
        ],
        "title": "ReinstallBody",
        "example": {
          "api_key_id": 1,
          "os_id": 1,
          "wipe_extra_disks": false,
          "password": "Example-Password-2026!",
          "cloud_init": {
            "packages": [
              "curl"
            ],
            "runcmd": [
              [
                "sh",
                "-c",
                "echo ready > /root/cloud-init-ready"
              ]
            ]
          }
        }
      },
      "ReinstallResult": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "title": "Vm Id"
          },
          "os": {
            "type": "string",
            "title": "Os"
          },
          "hostname": {
            "type": "string",
            "title": "Hostname"
          },
          "wipe_extra_disks": {
            "type": "boolean",
            "title": "Wipe Extra Disks"
          },
          "status": {
            "type": "string",
            "const": "running",
            "title": "Status"
          },
          "guest_initialization": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VmGuestInitialization"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Latest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health."
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "os",
          "hostname",
          "wipe_extra_disks",
          "status"
        ],
        "title": "ReinstallResult"
      },
      "RentalCreateRequest": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "months": {
            "type": "integer",
            "enum": [
              1,
              3,
              6,
              12,
              24,
              36
            ],
            "title": "Months",
            "default": 1,
            "description": "Calendar months: 1, 3, 6, 12, 24 or 36. JSON integer."
          },
          "expected_amount_usd": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{1,11}\\.\\d{4}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Amount Usd",
            "description": "Optional confirmed price in USD, exactly four decimal places. A changed price returns 409 price_changed before charging. For a resize this is the maximum accepted price."
          },
          "api_user_id": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "\\S",
            "title": "Api User Id",
            "description": "Your customer identifier. Stored as a string; scoped to this integration."
          },
          "plan_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Plan Id",
            "description": "Dedicated plan ID from GET /dedicated/plans."
          },
          "os_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Os Id",
            "description": "Operating system ID from GET /reference/os."
          },
          "disk_layout": {
            "type": "string",
            "enum": [
              "separate",
              "lvm_linear",
              "raid0",
              "raid1"
            ],
            "title": "Disk Layout"
          },
          "hostname": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 63,
                "minLength": 1,
                "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hostname"
          },
          "password": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1024,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Password",
            "description": "Access password. Never send together with ssh_public_key.",
            "writeOnly": true
          },
          "ssh_public_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 8192,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh Public Key",
            "description": "One OpenSSH public-key line: Ed25519, RSA or ECDSA. Send the key itself, not a saved key ID."
          },
          "extra_ipv4_count": {
            "type": "integer",
            "maximum": 65536.0,
            "minimum": 0.0,
            "title": "Extra Ipv4 Count",
            "default": 0
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "default": false,
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "api_user_id",
          "plan_id",
          "os_id",
          "disk_layout"
        ],
        "title": "RentalCreateRequest",
        "example": {
          "api_key_id": 1,
          "months": 1,
          "api_user_id": "customer-123",
          "plan_id": 1,
          "os_id": 1,
          "disk_layout": "separate",
          "extra_ipv4_count": 0,
          "auto_renew": false,
          "password": "Example-Password-2026!"
        }
      },
      "RentalDetails": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "api_user_id": {
            "type": "string",
            "title": "Api User Id",
            "description": "Your customer identifier. Stored as a string; scoped to this integration."
          },
          "order_id": {
            "type": "integer",
            "title": "Order Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "preparing",
              "active",
              "overdue",
              "cleaning",
              "completed",
              "cancelled"
            ],
            "title": "Status"
          },
          "plan": {
            "$ref": "#/components/schemas/DedicatedHardware"
          },
          "location_id": {
            "type": "integer",
            "title": "Location Id"
          },
          "location_name": {
            "type": "string",
            "title": "Location Name"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code"
          },
          "os": {
            "type": "string",
            "title": "Os"
          },
          "hostname": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hostname"
          },
          "disk_layout": {
            "type": "string",
            "enum": [
              "separate",
              "lvm_linear",
              "raid0",
              "raid1"
            ],
            "title": "Disk Layout"
          },
          "term_months": {
            "type": "integer",
            "title": "Term Months"
          },
          "extra_ipv4_count": {
            "type": "integer",
            "title": "Extra Ipv4 Count"
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          },
          "issued_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issued At"
          },
          "paid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paid Until",
            "description": "End of the paid service term, UTC."
          },
          "overdue_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Overdue At"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "host": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Host"
          },
          "login": {
            "type": "string",
            "title": "Login"
          },
          "password": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password",
            "description": "Access password. Never send together with ssh_public_key."
          },
          "ssh_public_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh Public Key",
            "description": "One OpenSSH public-key line: Ed25519, RSA or ECDSA. Send the key itself, not a saved key ID."
          },
          "ips": {
            "items": {
              "$ref": "#/components/schemas/RentalIp"
            },
            "type": "array",
            "title": "Ips"
          }
        },
        "type": "object",
        "required": [
          "id",
          "api_user_id",
          "order_id",
          "status",
          "plan",
          "location_id",
          "location_name",
          "country_code",
          "os",
          "hostname",
          "disk_layout",
          "term_months",
          "extra_ipv4_count",
          "auto_renew",
          "issued_at",
          "paid_until",
          "overdue_at",
          "finished_at",
          "created_at",
          "host",
          "login",
          "password",
          "ssh_public_key",
          "ips"
        ],
        "title": "RentalDetails"
      },
      "RentalIp": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "address": {
            "type": "string",
            "title": "Address"
          },
          "is_primary": {
            "type": "boolean",
            "title": "Is Primary"
          }
        },
        "type": "object",
        "required": [
          "id",
          "address",
          "is_primary"
        ],
        "title": "RentalIp"
      },
      "RentalItem": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "api_user_id": {
            "type": "string",
            "title": "Api User Id",
            "description": "Your customer identifier. Stored as a string; scoped to this integration."
          },
          "order_id": {
            "type": "integer",
            "title": "Order Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "preparing",
              "active",
              "overdue",
              "cleaning",
              "completed",
              "cancelled"
            ],
            "title": "Status"
          },
          "plan": {
            "$ref": "#/components/schemas/DedicatedHardware"
          },
          "location_id": {
            "type": "integer",
            "title": "Location Id"
          },
          "location_name": {
            "type": "string",
            "title": "Location Name"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code"
          },
          "os": {
            "type": "string",
            "title": "Os"
          },
          "hostname": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hostname"
          },
          "disk_layout": {
            "type": "string",
            "enum": [
              "separate",
              "lvm_linear",
              "raid0",
              "raid1"
            ],
            "title": "Disk Layout"
          },
          "term_months": {
            "type": "integer",
            "title": "Term Months"
          },
          "extra_ipv4_count": {
            "type": "integer",
            "title": "Extra Ipv4 Count"
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          },
          "issued_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issued At"
          },
          "paid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paid Until",
            "description": "End of the paid service term, UTC."
          },
          "overdue_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Overdue At"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "api_user_id",
          "order_id",
          "status",
          "plan",
          "location_id",
          "location_name",
          "country_code",
          "os",
          "hostname",
          "disk_layout",
          "term_months",
          "extra_ipv4_count",
          "auto_renew",
          "issued_at",
          "paid_until",
          "overdue_at",
          "finished_at",
          "created_at"
        ],
        "title": "RentalItem"
      },
      "RentalListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/RentalItem"
            },
            "type": "array",
            "title": "Data"
          },
          "total_count": {
            "type": "integer",
            "title": "Total Count",
            "description": "Full matching count before pagination."
          }
        },
        "type": "object",
        "required": [
          "success",
          "data",
          "total_count"
        ],
        "title": "RentalListResponse",
        "example": {
          "success": true,
          "data": [
            {
              "id": 1,
              "api_user_id": "customer-123",
              "order_id": 401,
              "status": "preparing",
              "plan": {
                "id": 1,
                "code": "C1",
                "name": "Example",
                "platform": "epyc",
                "cpu_model": "example",
                "cpu_count": 1,
                "cpu_cores": 1,
                "cpu_threads": 1,
                "ram_gb": 1,
                "ram_description": null,
                "disks": [
                  {
                    "count": 1,
                    "size_gb": 1,
                    "type": "example",
                    "model": null
                  }
                ],
                "disk_layouts": [
                  "separate"
                ],
                "default_disk_layout": "separate",
                "port_mbps": 1,
                "traffic_tb": null,
                "included_ipv4": 1,
                "ipv6_prefix_length": null
              },
              "location_id": 1,
              "location_name": "Poland",
              "country_code": "PL",
              "os": "debian-12",
              "hostname": null,
              "disk_layout": "separate",
              "term_months": 1,
              "extra_ipv4_count": 1,
              "auto_renew": false,
              "issued_at": null,
              "paid_until": null,
              "overdue_at": null,
              "finished_at": null,
              "created_at": "2026-09-28T12:00:00Z"
            }
          ],
          "total_count": 1
        }
      },
      "RentalResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/RentalDetails"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "RentalResponse",
        "example": {
          "success": true,
          "data": {
            "id": 1,
            "api_user_id": "customer-123",
            "order_id": 401,
            "status": "preparing",
            "plan": {
              "id": 1,
              "code": "C1",
              "name": "Example",
              "platform": "epyc",
              "cpu_model": "example",
              "cpu_count": 1,
              "cpu_cores": 1,
              "cpu_threads": 1,
              "ram_gb": 1,
              "ram_description": null,
              "disks": [
                {
                  "count": 1,
                  "size_gb": 1,
                  "type": "example",
                  "model": null
                }
              ],
              "disk_layouts": [
                "separate"
              ],
              "default_disk_layout": "separate",
              "port_mbps": 1,
              "traffic_tb": null,
              "included_ipv4": 1,
              "ipv6_prefix_length": null
            },
            "location_id": 1,
            "location_name": "Poland",
            "country_code": "PL",
            "os": "debian-12",
            "hostname": null,
            "disk_layout": "separate",
            "term_months": 1,
            "extra_ipv4_count": 1,
            "auto_renew": false,
            "issued_at": null,
            "paid_until": null,
            "overdue_at": null,
            "finished_at": null,
            "created_at": "2026-09-28T12:00:00Z",
            "host": null,
            "login": "root",
            "password": null,
            "ssh_public_key": null,
            "ips": [
              {
                "id": 1,
                "address": "192.0.2.10",
                "is_primary": true
              }
            ]
          }
        }
      },
      "TrafficPeriod": {
        "properties": {
          "starts_at": {
            "type": "string",
            "format": "date-time",
            "title": "Starts At"
          },
          "ends_at": {
            "type": "string",
            "format": "date-time",
            "title": "Ends At"
          },
          "included_bytes": {
            "type": "integer",
            "title": "Included Bytes"
          },
          "additional_bytes": {
            "type": "integer",
            "title": "Additional Bytes"
          },
          "incoming_bytes": {
            "type": "integer",
            "title": "Incoming Bytes"
          },
          "outgoing_bytes": {
            "type": "integer",
            "title": "Outgoing Bytes"
          },
          "overage_bytes": {
            "type": "integer",
            "title": "Overage Bytes"
          },
          "remaining_bytes": {
            "type": "integer",
            "title": "Remaining Bytes"
          }
        },
        "type": "object",
        "required": [
          "starts_at",
          "ends_at",
          "included_bytes",
          "additional_bytes",
          "incoming_bytes",
          "outgoing_bytes",
          "overage_bytes",
          "remaining_bytes"
        ],
        "title": "TrafficPeriod"
      },
      "TrafficShaping": {
        "properties": {
          "limit_mbps": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Limit Mbps"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "traffic",
                  "bandwidth"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "bandwidth_limited_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bandwidth Limited Until"
          }
        },
        "type": "object",
        "required": [
          "limit_mbps",
          "reason",
          "bandwidth_limited_until"
        ],
        "title": "TrafficShaping"
      },
      "TransactionItem": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "transaction_type": {
            "type": "string",
            "enum": [
              "topup",
              "vm_purchase",
              "vm_renewal",
              "vm_resize",
              "traffic_purchase",
              "ipv4_purchase",
              "ipv4_renewal",
              "dedicated_purchase",
              "dedicated_renewal",
              "refund",
              "adjustment"
            ],
            "title": "Transaction Type"
          },
          "amount_usd": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Amount Usd",
            "description": "USD decimal string with four fractional digits; transaction amounts retain their sign."
          },
          "balance_before": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Balance Before"
          },
          "balance_after": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Balance After"
          },
          "order_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Order Id"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "transaction_type",
          "amount_usd",
          "balance_before",
          "balance_after",
          "order_id",
          "comment",
          "created_at"
        ],
        "title": "TransactionItem"
      },
      "TransactionListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/TransactionItem"
            },
            "type": "array",
            "title": "Data"
          },
          "total_count": {
            "type": "integer",
            "title": "Total Count",
            "description": "Full matching count before pagination."
          },
          "currency": {
            "type": "string",
            "const": "USD",
            "title": "Currency",
            "default": "USD"
          },
          "limit": {
            "type": "integer",
            "title": "Limit",
            "description": "Maximum number of records in this page."
          },
          "offset": {
            "type": "integer",
            "title": "Offset",
            "description": "Number of records to skip, starting from zero."
          }
        },
        "type": "object",
        "required": [
          "success",
          "data",
          "total_count",
          "limit",
          "offset"
        ],
        "title": "TransactionListResponse",
        "example": {
          "success": true,
          "data": [
            {
              "id": 1,
              "transaction_type": "topup",
              "amount_usd": "5.0000",
              "balance_before": "100.0000",
              "balance_after": "95.0000",
              "order_id": null,
              "comment": null,
              "created_at": "2026-09-28T12:00:00Z"
            }
          ],
          "total_count": 1,
          "currency": "USD",
          "limit": 25,
          "offset": 0
        }
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "VmAutoRenewData": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "title": "Vm Id"
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "auto_renew"
        ],
        "title": "VmAutoRenewData"
      },
      "VmAutoRenewResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/VmAutoRenewData"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "VmAutoRenewResponse",
        "example": {
          "success": true,
          "data": {
            "vm_id": 101,
            "auto_renew": false
          }
        }
      },
      "VmConsoleLink": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "title": "Vm Id"
          },
          "url": {
            "type": "string",
            "title": "Url"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "title": "Expires At"
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "url",
          "expires_at"
        ],
        "title": "VmConsoleLink"
      },
      "VmConsoleLinkResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/VmConsoleLink"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "VmConsoleLinkResponse",
        "example": {
          "success": true,
          "data": {
            "vm_id": 101,
            "url": "https://console.example.com/session/example",
            "expires_at": "2026-09-28T12:00:00Z"
          }
        }
      },
      "VmCreateRequest": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "api_user_id": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "\\S",
            "title": "Api User Id",
            "description": "Your customer identifier. Stored as a string; scoped to this integration."
          },
          "location_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Location Id"
          },
          "platform": {
            "type": "string",
            "enum": [
              "epyc",
              "ryzen",
              "xeon"
            ],
            "title": "Platform"
          },
          "plan_code": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
            "title": "Plan Code",
            "description": "VPS plan code from GET /plans."
          },
          "cpu_percent": {
            "type": "integer",
            "enum": [
              20,
              40,
              60,
              80,
              100
            ],
            "title": "Cpu Percent",
            "default": 60,
            "description": "CPU share: 20, 40, 60, 80 or 100. Creation defaults to 60; resize keeps the current share if omitted."
          },
          "os_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Os Id",
            "description": "Operating system ID from GET /reference/os."
          },
          "months": {
            "type": "integer",
            "enum": [
              1,
              3,
              6,
              12,
              24,
              36
            ],
            "title": "Months",
            "default": 1,
            "description": "Calendar months: 1, 3, 6, 12, 24 or 36. JSON integer."
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "default": false,
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          },
          "expected_amount_usd": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{1,11}\\.\\d{4}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Amount Usd",
            "description": "Optional confirmed price in USD, exactly four decimal places. A changed price returns 409 price_changed before charging. For a resize this is the maximum accepted price."
          },
          "hostname": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 63,
                "minLength": 1,
                "pattern": "^[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hostname"
          },
          "password": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1024,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Password",
            "description": "Access password. Never send together with ssh_public_key.",
            "writeOnly": true
          },
          "ssh_public_key": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 8192,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Ssh Public Key",
            "description": "One OpenSSH public-key line: Ed25519, RSA or ECDSA. Send the key itself, not a saved key ID."
          },
          "cloud_init": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Cloud Init",
            "description": "Optional cloud-config JSON object, not a YAML string. Maximum 65536 bytes after server JSON serialization (non-ASCII characters are escaped). users, packages, runcmd and write_files must be arrays when present. Networking, hostname and primary access are managed by the platform. Retain the same object when retrying. Its result is reported separately in guest_initialization; cloud_init contents are not returned in orders or webhooks."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "api_user_id",
          "location_id",
          "platform",
          "plan_code",
          "os_id"
        ],
        "title": "VmCreateRequest",
        "example": {
          "api_key_id": 1,
          "api_user_id": "customer-123",
          "location_id": 1,
          "platform": "epyc",
          "plan_code": "C1",
          "cpu_percent": 60,
          "os_id": 1,
          "months": 1,
          "auto_renew": false,
          "password": "Example-Password-2026!",
          "cloud_init": {
            "packages": [
              "curl"
            ],
            "runcmd": [
              [
                "sh",
                "-c",
                "echo ready > /root/cloud-init-ready"
              ]
            ]
          }
        }
      },
      "VmDeleteResult": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Vm Id"
          },
          "status": {
            "type": "string",
            "const": "deleted",
            "title": "Status"
          },
          "keep_ips": {
            "type": "boolean",
            "title": "Keep Ips",
            "description": "Explicitly retain IPv4 as separately billed addresses (true) or release them (false)."
          },
          "held_ips": {
            "items": {
              "$ref": "#/components/schemas/HeldIpv4"
            },
            "type": "array",
            "title": "Held Ips"
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "status",
          "keep_ips",
          "held_ips"
        ],
        "title": "VmDeleteResult"
      },
      "VmFirewall": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "title": "Vm Id"
          },
          "revision": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Revision",
            "description": "Current firewall revision from GET firewall. Reread on conflict."
          },
          "applied": {
            "type": "boolean",
            "title": "Applied"
          },
          "input_policy": {
            "type": "string",
            "enum": [
              "ACCEPT",
              "DROP"
            ],
            "title": "Input Policy"
          },
          "output_policy": {
            "type": "string",
            "enum": [
              "ACCEPT",
              "DROP"
            ],
            "title": "Output Policy"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/FirewallRuleItem"
            },
            "type": "array",
            "title": "Rules"
          },
          "smtp_ports": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Smtp Ports"
          },
          "smtp_blocked": {
            "type": "boolean",
            "title": "Smtp Blocked"
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "revision",
          "applied",
          "input_policy",
          "output_policy",
          "rules",
          "smtp_ports",
          "smtp_blocked"
        ],
        "title": "VmFirewall"
      },
      "VmFirewallResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/VmFirewall"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "VmFirewallResponse",
        "example": {
          "success": true,
          "data": {
            "vm_id": 101,
            "revision": 0,
            "applied": true,
            "input_policy": "ACCEPT",
            "output_policy": "ACCEPT",
            "rules": [
              {
                "direction": "IN",
                "action": "ACCEPT",
                "protocol": "tcp",
                "ports": [
                  "443"
                ],
                "source": null,
                "destination": null,
                "enabled": true,
                "comment": "HTTPS",
                "id": 1
              }
            ],
            "smtp_ports": [
              1
            ],
            "smtp_blocked": true
          }
        }
      },
      "VmGetResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/VmItem"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "VmGetResponse",
        "example": {
          "success": true,
          "data": {
            "id": 1,
            "name": "Example",
            "hostname": "customer-vps",
            "status": "example",
            "cpu_cores": 1,
            "cpu_percent": 60,
            "ram_mb": 1,
            "disk_gb": 1,
            "smtp_blocked": true,
            "paid_until": null,
            "created_at": "2026-09-28T12:00:00Z",
            "updated_at": null,
            "ips": [
              {
                "ip_id": 301,
                "address": "192.0.2.10",
                "family": 4,
                "is_rf_blocked": true,
                "assigned_at": null,
                "is_primary": true,
                "paid_until": null,
                "suspended_at": null,
                "auto_renew": null
              }
            ],
            "auto_renew": false,
            "api_user_id": "customer-123",
            "plan_code": "C1",
            "platform": "epyc",
            "cpu_display_name": null,
            "location_id": 1,
            "location_name": "Poland",
            "country_code": "PL",
            "city": "example",
            "os": null,
            "guest_initialization": {
              "status": "succeeded",
              "error_code": null
            },
            "rescue": {
              "active": false,
              "access": null,
              "requires_review": false,
              "operation_id": null,
              "operation_status": null
            }
          }
        }
      },
      "VmIp": {
        "properties": {
          "ip_id": {
            "type": "integer",
            "title": "Ip Id"
          },
          "address": {
            "type": "string",
            "title": "Address"
          },
          "family": {
            "type": "integer",
            "enum": [
              4,
              6
            ],
            "title": "Family"
          },
          "is_rf_blocked": {
            "type": "boolean",
            "title": "Is Rf Blocked"
          },
          "assigned_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assigned At"
          },
          "is_primary": {
            "type": "boolean",
            "title": "Is Primary"
          },
          "paid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paid Until",
            "description": "End of the paid service term, UTC."
          },
          "suspended_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suspended At"
          },
          "auto_renew": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Auto Renew",
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          }
        },
        "type": "object",
        "required": [
          "ip_id",
          "address",
          "family",
          "is_rf_blocked",
          "assigned_at",
          "is_primary",
          "paid_until",
          "suspended_at"
        ],
        "title": "VmIp"
      },
      "VmIpAttachResult": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Vm Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "running",
              "stopped"
            ],
            "title": "Status"
          },
          "ip_id": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Ip Id"
          },
          "paid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paid Until",
            "description": "End of the paid service term, UTC."
          },
          "addresses": {
            "items": {
              "type": "string",
              "format": "ipvanyinterface"
            },
            "type": "array",
            "title": "Addresses"
          },
          "guest_configuration_required": {
            "type": "boolean",
            "const": true,
            "title": "Guest Configuration Required",
            "description": "If true, update IP configuration inside the guest OS."
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "status",
          "ip_id",
          "paid_until",
          "addresses",
          "guest_configuration_required"
        ],
        "title": "VmIpAttachResult"
      },
      "VmIpDetachResult": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Vm Id"
          },
          "status": {
            "type": "string",
            "enum": [
              "running",
              "stopped"
            ],
            "title": "Status"
          },
          "detached_ip_id": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Detached Ip Id"
          },
          "keep_ip": {
            "type": "boolean",
            "title": "Keep Ip",
            "description": "Keep the detached IPv4 with continuing billing (true) or release it (false)."
          },
          "addresses": {
            "items": {
              "type": "string",
              "format": "ipvanyinterface"
            },
            "type": "array",
            "title": "Addresses"
          },
          "guest_configuration_required": {
            "type": "boolean",
            "const": true,
            "title": "Guest Configuration Required",
            "description": "If true, update IP configuration inside the guest OS."
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "status",
          "detached_ip_id",
          "keep_ip",
          "addresses",
          "guest_configuration_required"
        ],
        "title": "VmIpDetachResult"
      },
      "VmIpv4PurchaseBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "expected_amount_usd": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{1,11}\\.\\d{4}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Amount Usd",
            "description": "Optional confirmed price in USD, exactly four decimal places. A changed price returns 409 price_changed before charging. For a resize this is the maximum accepted price."
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "default": false,
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id"
        ],
        "title": "VmIpv4PurchaseBody",
        "example": {
          "api_key_id": 1,
          "auto_renew": false
        }
      },
      "VmItem": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "hostname": {
            "type": "string",
            "title": "Hostname"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "cpu_cores": {
            "type": "integer",
            "title": "Cpu Cores"
          },
          "cpu_percent": {
            "type": "number",
            "title": "Cpu Percent",
            "description": "CPU share: 20, 40, 60, 80 or 100. Creation defaults to 60; resize keeps the current share if omitted."
          },
          "ram_mb": {
            "type": "integer",
            "title": "Ram Mb"
          },
          "disk_gb": {
            "type": "integer",
            "title": "Disk Gb"
          },
          "smtp_blocked": {
            "type": "boolean",
            "title": "Smtp Blocked"
          },
          "paid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paid Until",
            "description": "End of the paid service term, UTC."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          },
          "ips": {
            "items": {
              "$ref": "#/components/schemas/VmIp"
            },
            "type": "array",
            "title": "Ips"
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          },
          "api_user_id": {
            "type": "string",
            "title": "Api User Id",
            "description": "Your customer identifier. Stored as a string; scoped to this integration."
          },
          "plan_code": {
            "type": "string",
            "title": "Plan Code",
            "description": "VPS plan code from GET /plans."
          },
          "platform": {
            "type": "string",
            "enum": [
              "epyc",
              "ryzen",
              "xeon"
            ],
            "title": "Platform"
          },
          "cpu_display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cpu Display Name"
          },
          "location_id": {
            "type": "integer",
            "title": "Location Id"
          },
          "location_name": {
            "type": "string",
            "title": "Location Name"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code"
          },
          "city": {
            "type": "string",
            "title": "City"
          },
          "os": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VmOs"
              },
              {
                "type": "null"
              }
            ]
          },
          "rescue": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VmRescueState"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Rescue state. active means a saved Rescue context, not guaranteed SSH availability. access is ssh, console or null. requires_review calls for state verification; operation_id and operation_status refer to the Rescue operation. null means no state was returned."
          },
          "guest_initialization": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VmGuestInitialization"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Latest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health."
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "hostname",
          "status",
          "cpu_cores",
          "cpu_percent",
          "ram_mb",
          "disk_gb",
          "smtp_blocked",
          "paid_until",
          "created_at",
          "updated_at",
          "ips",
          "auto_renew",
          "api_user_id",
          "plan_code",
          "platform",
          "cpu_display_name",
          "location_id",
          "location_name",
          "country_code",
          "city",
          "os"
        ],
        "title": "VmItem"
      },
      "VmListItem": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "api_user_id": {
            "type": "string",
            "title": "Api User Id",
            "description": "Your customer identifier. Stored as a string; scoped to this integration."
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "plan_code": {
            "type": "string",
            "title": "Plan Code",
            "description": "VPS plan code from GET /plans."
          },
          "cpu_cores": {
            "type": "integer",
            "title": "Cpu Cores"
          },
          "cpu_percent": {
            "type": "number",
            "title": "Cpu Percent",
            "description": "CPU share: 20, 40, 60, 80 or 100. Creation defaults to 60; resize keeps the current share if omitted."
          },
          "ram_mb": {
            "type": "integer",
            "title": "Ram Mb"
          },
          "disk_gb": {
            "type": "integer",
            "title": "Disk Gb"
          },
          "location_id": {
            "type": "integer",
            "title": "Location Id"
          },
          "location_name": {
            "type": "string",
            "title": "Location Name"
          },
          "country_code": {
            "type": "string",
            "title": "Country Code"
          },
          "platform": {
            "type": "string",
            "enum": [
              "epyc",
              "ryzen",
              "xeon"
            ],
            "title": "Platform"
          },
          "ips": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Ips"
          },
          "paid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paid Until",
            "description": "End of the paid service term, UTC."
          },
          "auto_renew": {
            "type": "boolean",
            "title": "Auto Renew",
            "description": "Automatic renewal from the integration balance. Changing this flag does not extend the service immediately."
          }
        },
        "type": "object",
        "required": [
          "id",
          "api_user_id",
          "name",
          "status",
          "plan_code",
          "cpu_cores",
          "cpu_percent",
          "ram_mb",
          "disk_gb",
          "location_id",
          "location_name",
          "country_code",
          "platform",
          "ips",
          "paid_until",
          "auto_renew"
        ],
        "title": "VmListItem"
      },
      "VmListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/VmListItem"
            },
            "type": "array",
            "title": "Data"
          },
          "total_count": {
            "type": "integer",
            "title": "Total Count",
            "description": "Full matching count before pagination."
          }
        },
        "type": "object",
        "required": [
          "success",
          "data",
          "total_count"
        ],
        "title": "VmListResponse",
        "example": {
          "success": true,
          "data": [
            {
              "id": 1,
              "api_user_id": "customer-123",
              "name": "Example",
              "status": "example",
              "plan_code": "C1",
              "cpu_cores": 1,
              "cpu_percent": 60,
              "ram_mb": 1,
              "disk_gb": 1,
              "location_id": 1,
              "location_name": "Poland",
              "country_code": "PL",
              "platform": "epyc",
              "ips": [
                "example"
              ],
              "paid_until": null,
              "auto_renew": false
            }
          ],
          "total_count": 1
        }
      },
      "VmMetrics": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "title": "Vm Id"
          },
          "timeframe": {
            "type": "string",
            "enum": [
              "hour",
              "day",
              "week",
              "month",
              "year"
            ],
            "title": "Timeframe"
          },
          "cf": {
            "type": "string",
            "enum": [
              "AVERAGE",
              "MAX"
            ],
            "title": "Cf"
          },
          "points": {
            "items": {
              "$ref": "#/components/schemas/MetricPoint"
            },
            "type": "array",
            "title": "Points"
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "timeframe",
          "cf",
          "points"
        ],
        "title": "VmMetrics"
      },
      "VmMetricsResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/VmMetrics"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "VmMetricsResponse",
        "example": {
          "success": true,
          "data": {
            "vm_id": 101,
            "timeframe": "hour",
            "cf": "AVERAGE",
            "points": [
              {
                "time": 1790596800,
                "cpu_percent": null,
                "memory_used_bytes": null,
                "memory_total_bytes": null,
                "network_in_mbps": null,
                "network_out_mbps": null,
                "disk_read_bytes_per_second": null,
                "disk_write_bytes_per_second": null
              }
            ]
          }
        }
      },
      "VmOperation": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id"
          },
          "vm_id": {
            "type": "integer",
            "title": "Vm Id"
          },
          "action": {
            "enum": [
              "power",
              "delete",
              "ip_attach",
              "ip_detach",
              "firewall_add",
              "firewall_update",
              "firewall_delete",
              "firewall_reorder",
              "firewall_policies",
              "password_reset",
              "reinstall",
              "rescue_enable",
              "rescue_disable"
            ],
            "title": "Action",
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "running",
              "succeeded",
              "failed"
            ],
            "title": "Status"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "result": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VmDeleteResult"
              },
              {
                "$ref": "#/components/schemas/VmIpAttachResult"
              },
              {
                "$ref": "#/components/schemas/VmIpDetachResult"
              },
              {
                "$ref": "#/components/schemas/PasswordResetResult"
              },
              {
                "$ref": "#/components/schemas/ReinstallResult"
              },
              {
                "$ref": "#/components/schemas/RescueResult"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Result"
          },
          "requires_review": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requires Review",
            "description": "The operation outcome needs clarification before another destructive action."
          }
        },
        "type": "object",
        "required": [
          "id",
          "vm_id",
          "action",
          "status",
          "created_at",
          "started_at",
          "finished_at"
        ],
        "title": "VmOperation"
      },
      "VmOperationHistoryItem": {
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Id"
          },
          "vm_id": {
            "type": "integer",
            "minimum": 1.0,
            "title": "Vm Id"
          },
          "action": {
            "type": "string",
            "title": "Action"
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "running",
              "succeeded",
              "failed",
              "cancelled"
            ],
            "title": "Status"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "started_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "attempts": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Attempts"
          },
          "order_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Order Id"
          },
          "power_action": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "start",
                  "shutdown",
                  "reboot",
                  "stop",
                  "reset"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Power Action"
          },
          "requires_review": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requires Review",
            "description": "The operation outcome needs clarification before another destructive action."
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          }
        },
        "type": "object",
        "required": [
          "id",
          "vm_id",
          "action",
          "status",
          "created_at",
          "started_at",
          "finished_at",
          "attempts"
        ],
        "title": "VmOperationHistoryItem"
      },
      "VmOperationListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/VmOperationHistoryItem"
            },
            "type": "array",
            "title": "Data"
          },
          "total_count": {
            "type": "integer",
            "title": "Total Count",
            "description": "Full matching count before pagination."
          }
        },
        "type": "object",
        "required": [
          "success",
          "data",
          "total_count"
        ],
        "title": "VmOperationListResponse",
        "example": {
          "success": true,
          "data": [
            {
              "id": 1,
              "vm_id": 101,
              "action": "start",
              "status": "queued",
              "created_at": "2026-09-28T12:00:00Z",
              "started_at": null,
              "finished_at": null,
              "attempts": 1,
              "order_id": null,
              "power_action": null,
              "requires_review": null,
              "error_code": null,
              "error_message": null
            }
          ],
          "total_count": 1
        }
      },
      "VmOperationResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/VmOperation"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "VmOperationResponse",
        "example": {
          "success": true,
          "data": {
            "id": 1,
            "vm_id": 101,
            "action": "power",
            "status": "queued",
            "created_at": "2026-09-28T12:00:00Z",
            "started_at": null,
            "finished_at": null,
            "error_code": null,
            "error_message": null,
            "result": null,
            "requires_review": null
          }
        }
      },
      "VmOs": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id"
          },
          "code": {
            "type": "string",
            "title": "Code"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "type": "object",
        "required": [
          "id",
          "code",
          "name"
        ],
        "title": "VmOs"
      },
      "VmPowerBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "action": {
            "type": "string",
            "enum": [
              "start",
              "shutdown",
              "reboot",
              "stop",
              "reset"
            ],
            "title": "Action"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "action"
        ],
        "title": "VmPowerBody",
        "example": {
          "api_key_id": 1,
          "action": "start"
        }
      },
      "VmRenewBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "months": {
            "type": "integer",
            "enum": [
              1,
              3,
              6,
              12,
              24,
              36
            ],
            "title": "Months",
            "default": 1,
            "description": "Calendar months: 1, 3, 6, 12, 24 or 36. JSON integer."
          },
          "expected_amount_usd": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{1,11}\\.\\d{4}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Amount Usd",
            "description": "Optional confirmed price in USD, exactly four decimal places. A changed price returns 409 price_changed before charging. For a resize this is the maximum accepted price."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id"
        ],
        "title": "VmRenewBody",
        "example": {
          "api_key_id": 1,
          "months": 1
        }
      },
      "VmResizeBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "expected_amount_usd": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{1,11}\\.\\d{4}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Amount Usd",
            "description": "Optional confirmed price in USD, exactly four decimal places. A changed price returns 409 price_changed before charging. For a resize this is the maximum accepted price."
          },
          "plan_code": {
            "type": "string",
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
            "title": "Plan Code",
            "description": "VPS plan code from GET /plans."
          },
          "cpu_percent": {
            "anyOf": [
              {
                "type": "integer",
                "enum": [
                  20,
                  40,
                  60,
                  80,
                  100
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Cpu Percent",
            "description": "CPU share: 20, 40, 60, 80 or 100. Creation defaults to 60; resize keeps the current share if omitted."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "plan_code"
        ],
        "title": "VmResizeBody",
        "example": {
          "api_key_id": 1,
          "plan_code": "C1"
        }
      },
      "VmStatus": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "title": "Vm Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "uptime": {
            "type": "integer",
            "title": "Uptime"
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "status",
          "uptime"
        ],
        "title": "VmStatus"
      },
      "VmStatusResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/VmStatus"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "VmStatusResponse",
        "example": {
          "success": true,
          "data": {
            "vm_id": 101,
            "status": "example",
            "uptime": 1
          }
        }
      },
      "VmTraffic": {
        "properties": {
          "vm_id": {
            "type": "integer",
            "title": "Vm Id"
          },
          "enabled": {
            "type": "boolean",
            "title": "Enabled"
          },
          "period": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TrafficPeriod"
              },
              {
                "type": "null"
              }
            ]
          },
          "last_sample_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Sample At"
          },
          "shaping": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TrafficShaping"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "vm_id",
          "enabled",
          "period",
          "last_sample_at"
        ],
        "title": "VmTraffic"
      },
      "VmTrafficResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "data": {
            "$ref": "#/components/schemas/VmTraffic"
          }
        },
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "title": "VmTrafficResponse",
        "example": {
          "success": true,
          "data": {
            "vm_id": 101,
            "enabled": true,
            "period": null,
            "last_sample_at": null,
            "shaping": null
          }
        }
      },
      "VmTrafficTopupBody": {
        "properties": {
          "api_key_id": {
            "type": "integer",
            "maximum": 9.223372036854776e+18,
            "minimum": 1.0,
            "title": "Api Key Id",
            "description": "Numeric integration ID from the dashboard; must match X-Api-Key."
          },
          "expected_amount_usd": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{1,11}\\.\\d{4}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Amount Usd",
            "description": "Optional confirmed price in USD, exactly four decimal places. A changed price returns 409 price_changed before charging. For a resize this is the maximum accepted price."
          },
          "expected_period_id": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9.223372036854776e+18,
                "minimum": 1.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Period Id",
            "description": "Traffic period ID from the quote. A changed period returns 409 quote_expired."
          },
          "traffic_tb": {
            "type": "integer",
            "maximum": 8388607.0,
            "minimum": 1.0,
            "title": "Traffic Tb",
            "description": "Additional integer traffic units; one unit is 1024⁴ bytes."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "api_key_id",
          "traffic_tb"
        ],
        "title": "VmTrafficTopupBody",
        "example": {
          "api_key_id": 1,
          "traffic_tb": 1
        }
      },
      "TermQuoteResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "required": [
              "amount_usd",
              "balance_usd",
              "currency",
              "months",
              "discount_percent"
            ],
            "properties": {
              "amount_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "balance_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "currency": {
                "type": "string",
                "const": "USD"
              },
              "months": {
                "type": "integer"
              },
              "discount_percent": {
                "type": "string"
              }
            }
          }
        },
        "example": {
          "success": true,
          "data": {
            "amount_usd": "5.0000",
            "balance_usd": "100.0000",
            "currency": "USD",
            "months": 1,
            "discount_percent": "0"
          }
        }
      },
      "ResizeQuoteResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "required": [
              "amount_usd",
              "balance_usd",
              "currency",
              "vm_id",
              "new_monthly_price_usd",
              "paid_until"
            ],
            "properties": {
              "amount_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "balance_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "currency": {
                "type": "string",
                "const": "USD"
              },
              "vm_id": {
                "type": "integer"
              },
              "new_monthly_price_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "paid_until": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        },
        "example": {
          "success": true,
          "data": {
            "amount_usd": "5.0000",
            "balance_usd": "100.0000",
            "currency": "USD",
            "vm_id": 101,
            "new_monthly_price_usd": "10.0000",
            "paid_until": "2026-09-28T12:00:00Z"
          }
        }
      },
      "TrafficQuoteResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "required": [
              "amount_usd",
              "balance_usd",
              "currency",
              "vm_id",
              "unit_price_usd",
              "expected_period_id",
              "period_ends_at"
            ],
            "properties": {
              "amount_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "balance_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "currency": {
                "type": "string",
                "const": "USD"
              },
              "vm_id": {
                "type": "integer"
              },
              "unit_price_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "expected_period_id": {
                "type": "integer"
              },
              "period_ends_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        },
        "example": {
          "success": true,
          "data": {
            "amount_usd": "5.0000",
            "balance_usd": "100.0000",
            "currency": "USD",
            "vm_id": 101,
            "unit_price_usd": "1.0000",
            "expected_period_id": 601,
            "period_ends_at": "2026-09-28T12:00:00Z"
          }
        }
      },
      "Ipv4QuoteResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "required": [
              "amount_usd",
              "balance_usd",
              "currency",
              "vm_id",
              "period_days"
            ],
            "properties": {
              "amount_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "balance_usd": {
                "type": "string",
                "pattern": "^\\d+\\.\\d{4}$"
              },
              "currency": {
                "type": "string",
                "const": "USD"
              },
              "vm_id": {
                "type": "integer"
              },
              "period_days": {
                "type": "integer",
                "const": 30
              }
            }
          }
        },
        "example": {
          "success": true,
          "data": {
            "amount_usd": "5.0000",
            "balance_usd": "100.0000",
            "currency": "USD",
            "vm_id": 101,
            "period_days": 30
          }
        }
      },
      "RentalAutoRenewResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "required": [
              "rental_id",
              "auto_renew"
            ],
            "properties": {
              "rental_id": {
                "type": "integer"
              },
              "auto_renew": {
                "type": "boolean"
              }
            }
          }
        },
        "example": {
          "success": true,
          "data": {
            "rental_id": 201,
            "auto_renew": false
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "required": [
          "detail"
        ],
        "properties": {
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            ]
          }
        }
      },
      "VmGuestInitialization": {
        "properties": {
          "status": {
            "enum": [
              "succeeded",
              "failed",
              "unknown"
            ],
            "title": "Status",
            "type": "string"
          },
          "error_code": {
            "anyOf": [
              {
                "enum": [
                  "cloud_init_failed",
                  "guest_initialization_timeout"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Error Code"
          }
        },
        "required": [
          "status"
        ],
        "title": "VmGuestInitialization",
        "type": "object",
        "description": "Latest installation result: succeeded means cloud-init finished; failed / cloud_init_failed means custom configuration failed; unknown / guest_initialization_timeout means the result was not confirmed within 15 minutes. failed and unknown do not mean a running VPS was not created: its order may be completed and reinstallation succeeded. null means no result is available. Does not confirm application health.",
        "example": {
          "status": "succeeded",
          "error_code": null
        }
      },
      "VmRescueState": {
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "access": {
            "anyOf": [
              {
                "enum": [
                  "console",
                  "ssh"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Access"
          },
          "requires_review": {
            "title": "Requires Review",
            "type": "boolean"
          },
          "operation_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Operation Id"
          },
          "operation_status": {
            "anyOf": [
              {
                "enum": [
                  "queued",
                  "running",
                  "succeeded",
                  "failed",
                  "cancelled"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Operation Status"
          }
        },
        "required": [
          "active",
          "requires_review"
        ],
        "title": "VmRescueState",
        "type": "object",
        "description": "Rescue state. active means a saved Rescue context, not guaranteed SSH availability. access is ssh, console or null. requires_review calls for state verification; operation_id and operation_status refer to the Rescue operation. null means no state was returned.",
        "example": {
          "active": true,
          "access": "ssh",
          "requires_review": false,
          "operation_id": 501,
          "operation_status": "succeeded"
        }
      },
      "RescueEnableBody": {
        "additionalProperties": false,
        "properties": {
          "api_key_id": {
            "maximum": 9223372036854775807,
            "minimum": 1,
            "title": "Api Key Id",
            "type": "integer"
          },
          "password": {
            "maxLength": 128,
            "minLength": 5,
            "pattern": "^[^\\r\\n\\x00]+$",
            "title": "Password",
            "type": "string",
            "description": "Temporary root SSH password for Rescue: 5–128 characters, without CR, LF or NUL. Supplied by the client."
          }
        },
        "required": [
          "api_key_id",
          "password"
        ],
        "title": "RescueEnableBody",
        "type": "object",
        "example": {
          "api_key_id": 1,
          "password": "Temporary-Rescue-2026!"
        }
      },
      "RescueResult": {
        "properties": {
          "vm_id": {
            "title": "Vm Id",
            "type": "integer"
          },
          "status": {
            "enum": [
              "running",
              "stopped"
            ],
            "title": "Status",
            "type": "string"
          },
          "rescue": {
            "$ref": "#/components/schemas/VmRescueState"
          }
        },
        "required": [
          "vm_id",
          "status",
          "rescue"
        ],
        "title": "RescueResult",
        "type": "object",
        "example": {
          "vm_id": 101,
          "status": "running",
          "rescue": {
            "active": true,
            "access": "ssh",
            "requires_review": false,
            "operation_id": 501,
            "operation_status": "succeeded"
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Api-Key",
        "description": "Secret integration key from the dashboard."
      }
    }
  },
  "servers": [
    {
      "url": "https://cloud-api.adaptgroup.pro"
    }
  ],
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "tags": [
    {
      "name": "Catalog",
      "x-displayName": "Catalog",
      "description": "Catalog endpoints for your Cloud API integration."
    },
    {
      "name": "VPS billing",
      "x-displayName": "VPS billing",
      "description": "VPS billing endpoints for your Cloud API integration."
    },
    {
      "name": "VPS management",
      "x-displayName": "VPS management",
      "description": "VPS management endpoints for your Cloud API integration."
    },
    {
      "name": "Firewall",
      "x-displayName": "Firewall",
      "description": "Firewall endpoints for your Cloud API integration."
    },
    {
      "name": "IP addresses",
      "x-displayName": "IP addresses",
      "description": "IP addresses endpoints for your Cloud API integration."
    },
    {
      "name": "Dedicated servers",
      "x-displayName": "Dedicated servers",
      "description": "Dedicated servers endpoints for your Cloud API integration."
    },
    {
      "name": "Orders",
      "x-displayName": "Orders",
      "description": "Orders endpoints for your Cloud API integration."
    },
    {
      "name": "Balance",
      "x-displayName": "Balance",
      "description": "Balance endpoints for your Cloud API integration."
    }
  ]
}
