{
  "components": {
    "responses": {
      "Error": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "Refused; see code."
      }
    },
    "schemas": {
      "CPU": {
        "properties": {
          "boost": {
            "description": "GHz; 0 when none.",
            "type": "number"
          },
          "brand": {
            "type": "string"
          },
          "cores": {
            "description": "Total.",
            "format": "int64",
            "type": "integer"
          },
          "count": {
            "description": "Sockets.",
            "format": "int64",
            "type": "integer"
          },
          "frequency": {
            "description": "GHz.",
            "type": "number"
          },
          "model": {
            "type": "string"
          },
          "threads": {
            "description": "Total.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "brand",
          "model",
          "cores",
          "threads",
          "frequency"
        ],
        "type": "object"
      },
      "Config": {
        "properties": {
          "bandwidth": {
            "type": "string"
          },
          "bandwidth_label_fa": {
            "type": "string"
          },
          "catalog": {
            "description": "Supplier catalog: bm (bare-metal) or eco. The same plan code may be in both at different prices.",
            "enum": [
              "bm",
              "eco"
            ],
            "type": "string"
          },
          "datacenter": {
            "type": "string"
          },
          "datacenter_info": {
            "$ref": "#/components/schemas/DatacenterOption"
          },
          "datacenter_label_fa": {
            "type": "string"
          },
          "hostname": {
            "type": [
              "string",
              "null"
            ]
          },
          "memory": {
            "type": "string"
          },
          "memory_label_fa": {
            "type": "string"
          },
          "options": {
            "description": "Every chosen option with what it costs monthly.",
            "items": {
              "$ref": "#/components/schemas/OrderOption"
            },
            "type": "array"
          },
          "plan_code": {
            "type": "string"
          },
          "storage": {
            "type": "string"
          },
          "storage_label_fa": {
            "type": "string"
          }
        },
        "required": [
          "catalog",
          "plan_code",
          "datacenter",
          "memory",
          "storage",
          "bandwidth"
        ],
        "type": "object"
      },
      "Country": {
        "properties": {
          "code": {
            "description": "ISO 3166-1 alpha-2, lowercase (the flag).",
            "type": "string"
          },
          "name_fa": {
            "type": "string"
          },
          "region_fa": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "name_fa",
          "region_fa"
        ],
        "type": "object"
      },
      "Credentials": {
        "description": "Shown once; later reveals answer 410 already_revealed.",
        "properties": {
          "ip": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        },
        "required": [
          "ip",
          "username",
          "password"
        ],
        "type": "object"
      },
      "DatacenterOption": {
        "properties": {
          "city_fa": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "country_code": {
            "description": "ISO 3166-1 alpha-2, lowercase; empty when unknown.",
            "type": "string"
          },
          "country_fa": {
            "type": "string"
          },
          "delivery": {
            "description": "Never a promise of instant delivery: up_to_72h (1H-*, 24H, 72H at the datacenter), longer (any other orderable estimate), unavailable (disabled).",
            "enum": [
              "up_to_72h",
              "longer",
              "unavailable"
            ],
            "type": "string"
          },
          "label_fa": {
            "type": "string"
          },
          "region_fa": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "country_fa",
          "city_fa",
          "country_code",
          "region_fa",
          "delivery"
        ],
        "type": "object"
      },
      "Error": {
        "properties": {
          "balance": {
            "description": "insufficient_balance only: what the wallet has available.",
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "description": "Stable machine code.",
            "enum": [
              "already_linked",
              "already_revealed",
              "conflict",
              "core_unavailable",
              "credentials_not_ready",
              "demo_server",
              "forbidden",
              "identity_needed",
              "insufficient_balance",
              "internal_error",
              "invalid_input",
              "invalid_transition",
              "method_not_allowed",
              "no_price",
              "not_cancellable",
              "not_found",
              "not_linked",
              "not_ordered_yet",
              "not_renewed_at_supplier",
              "order_cancelled",
              "ovh_order_id_required",
              "plan_not_found",
              "rate_limit_exceeded",
              "reinstall_in_progress",
              "renewal_closed",
              "renewal_not_due",
              "renewal_not_paid",
              "renewal_paid",
              "rules_not_accepted",
              "rules_outdated",
              "server_provisioning",
              "server_suspended",
              "server_terminated",
              "service_gone",
              "service_not_found",
              "service_predates_order",
              "supplier_unavailable",
              "template_unavailable",
              "unauthorized",
              "unavailable",
              "unavailable_combo"
            ],
            "type": "string"
          },
          "error": {
            "description": "English, for people. Branch on code.",
            "type": "string"
          },
          "required": {
            "description": "insufficient_balance only: what the order needs.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "error",
          "code"
        ],
        "type": "object"
      },
      "Family": {
        "description": "Every addon family of a plan, mandatory and optional, in display order. Kind, step and label are data.",
        "properties": {
          "default": {
            "type": [
              "string",
              "null"
            ]
          },
          "exclusive": {
            "description": "At most one option (else 0..n, e.g. licences).",
            "type": "boolean"
          },
          "key": {
            "description": "Supplier family key; send it back in options.",
            "type": "string"
          },
          "kind": {
            "enum": [
              "memory",
              "storage",
              "system_storage",
              "bandwidth",
              "private_network",
              "gpu",
              "os_license",
              "app_license",
              "other"
            ],
            "type": "string"
          },
          "label_fa": {
            "type": "string"
          },
          "mandatory": {
            "description": "A choice is required.",
            "type": "boolean"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/FamilyOption"
            },
            "type": "array"
          },
          "step": {
            "description": "Wizard step that renders it.",
            "enum": [
              "memory",
              "storage",
              "network",
              "extras"
            ],
            "type": "string"
          }
        },
        "required": [
          "key",
          "label_fa",
          "kind",
          "mandatory",
          "exclusive",
          "step",
          "default",
          "options"
        ],
        "type": "object"
      },
      "FamilyOption": {
        "description": "price is the monthly extra: \"0\" when included, null when not priced yet.",
        "properties": {
          "available": {
            "description": "delivery is not unavailable.",
            "type": "boolean"
          },
          "code": {
            "description": "Supplier addon code.",
            "type": "string"
          },
          "delivery": {
            "description": "Never a promise of instant delivery: up_to_72h (1H-*, 24H, 72H at the datacenter), longer (any other orderable estimate), unavailable (disabled).",
            "enum": [
              "up_to_72h",
              "longer",
              "unavailable"
            ],
            "type": "string"
          },
          "is_default": {
            "type": "boolean"
          },
          "label_fa": {
            "type": "string"
          },
          "price": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "code",
          "label_fa",
          "price",
          "delivery",
          "is_default",
          "available"
        ],
        "type": "object"
      },
      "OSTemplate": {
        "properties": {
          "family": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "label_fa": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "family",
          "label_fa"
        ],
        "type": "object"
      },
      "Option": {
        "description": "price is the monthly extra (0 for the included choice).",
        "properties": {
          "code": {
            "description": "Supplier addon code.",
            "type": "string"
          },
          "default": {
            "type": "boolean"
          },
          "delivery": {
            "description": "Never a promise of instant delivery: up_to_72h (1H-*, 24H, 72H at the datacenter), longer (any other orderable estimate), unavailable (disabled).",
            "enum": [
              "up_to_72h",
              "longer",
              "unavailable"
            ],
            "type": "string"
          },
          "label_fa": {
            "type": "string"
          },
          "price": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "code",
          "label_fa",
          "price",
          "delivery"
        ],
        "type": "object"
      },
      "Options": {
        "properties": {
          "bandwidth": {
            "description": "v1.",
            "items": {
              "$ref": "#/components/schemas/Option"
            },
            "type": "array"
          },
          "catalog": {
            "description": "Supplier catalog: bm (bare-metal) or eco. The same plan code may be in both at different prices.",
            "enum": [
              "bm",
              "eco"
            ],
            "type": "string"
          },
          "countries": {
            "items": {
              "$ref": "#/components/schemas/Country"
            },
            "type": "array"
          },
          "currency": {
            "type": "string"
          },
          "datacenters": {
            "items": {
              "$ref": "#/components/schemas/DatacenterOption"
            },
            "type": "array"
          },
          "families": {
            "items": {
              "$ref": "#/components/schemas/Family"
            },
            "type": "array"
          },
          "memory": {
            "description": "v1: the memory family's options.",
            "items": {
              "$ref": "#/components/schemas/Option"
            },
            "type": "array"
          },
          "plan_code": {
            "type": "string"
          },
          "storage": {
            "description": "v1.",
            "items": {
              "$ref": "#/components/schemas/Option"
            },
            "type": "array"
          }
        },
        "required": [
          "datacenters",
          "countries",
          "families",
          "memory",
          "storage",
          "bandwidth"
        ],
        "type": "object"
      },
      "Order": {
        "properties": {
          "cancellable": {
            "type": "boolean"
          },
          "catalog": {
            "description": "Supplier catalog: bm (bare-metal) or eco. The same plan code may be in both at different prices.",
            "enum": [
              "bm",
              "eco"
            ],
            "type": "string"
          },
          "config": {
            "$ref": "#/components/schemas/Config"
          },
          "created_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "datacenter": {
            "type": "string"
          },
          "delivery": {
            "description": "Never a promise of instant delivery: up_to_72h (1H-*, 24H, 72H at the datacenter), longer (any other orderable estimate), unavailable (disabled).",
            "enum": [
              "up_to_72h",
              "longer",
              "unavailable"
            ],
            "type": "string"
          },
          "delivery_label_fa": {
            "type": "string"
          },
          "demo": {
            "description": "A demo record (never bought or billed): the panel shows a demo badge.",
            "type": "boolean"
          },
          "first_payment": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/QuoteLine"
            },
            "type": "array"
          },
          "monthly": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          },
          "plan_code": {
            "type": "string"
          },
          "plan_name": {
            "type": "string"
          },
          "range": {
            "type": "string"
          },
          "rules_version": {
            "type": "string"
          },
          "server_id": {
            "description": "Set once the order is active.",
            "type": [
              "string",
              "null"
            ]
          },
          "setup": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          },
          "stage": {
            "enum": [
              "awaiting_procurement",
              "procuring",
              "ordered_at_datacenter",
              "datacenter_preparing",
              "installing",
              "active",
              "cancelled"
            ],
            "type": "string"
          },
          "stage_label_fa": {
            "type": "string"
          },
          "timeline": {
            "description": "On GET /orders/{id}, POST /orders and cancel.",
            "items": {
              "$ref": "#/components/schemas/TimelineEntry"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "stage",
          "catalog",
          "plan_code",
          "plan_name",
          "datacenter",
          "config",
          "monthly",
          "setup",
          "first_payment",
          "currency",
          "created_at",
          "server_id",
          "cancellable",
          "delivery"
        ],
        "type": "object"
      },
      "OrderOption": {
        "properties": {
          "amount": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "type": "string"
          },
          "family": {
            "type": "string"
          },
          "family_label_fa": {
            "type": "string"
          },
          "kind": {
            "enum": [
              "memory",
              "storage",
              "system_storage",
              "bandwidth",
              "private_network",
              "gpu",
              "os_license",
              "app_license",
              "other"
            ],
            "type": "string"
          },
          "label_fa": {
            "type": "string"
          },
          "step": {
            "enum": [
              "memory",
              "storage",
              "network",
              "extras"
            ],
            "type": "string"
          }
        },
        "required": [
          "family",
          "family_label_fa",
          "kind",
          "step",
          "code",
          "label_fa",
          "amount"
        ],
        "type": "object"
      },
      "Plan": {
        "properties": {
          "available": {
            "description": "Some configuration can be delivered somewhere; an unavailable plan is shown, disabled.",
            "type": "boolean"
          },
          "base_memory": {
            "description": "Persian label of the default memory.",
            "type": "string"
          },
          "base_memory_code": {
            "type": "string"
          },
          "base_memory_gb": {
            "description": "Default memory in GB.",
            "format": "int64",
            "type": "integer"
          },
          "base_storage": {
            "description": "Persian label of the default storage.",
            "type": "string"
          },
          "base_storage_code": {
            "type": "string"
          },
          "base_storage_gb": {
            "description": "Default storage, total GB.",
            "format": "int64",
            "type": "integer"
          },
          "base_storage_types": {
            "description": "Disk kinds of the default storage, fastest first.",
            "items": {
              "enum": [
                "nvme",
                "ssd",
                "hdd"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "catalog": {
            "description": "Supplier catalog: bm (bare-metal) or eco. The same plan code may be in both at different prices.",
            "enum": [
              "bm",
              "eco"
            ],
            "type": "string"
          },
          "countries": {
            "description": "Countries it is sold in, distinct, in datacenter order.",
            "items": {
              "$ref": "#/components/schemas/Country"
            },
            "type": "array"
          },
          "cpu": {
            "$ref": "#/components/schemas/CPU"
          },
          "datacenters": {
            "description": "Datacenter codes it is sold in.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "from_price": {
            "$ref": "#/components/schemas/Price"
          },
          "id": {
            "description": "<catalog>:<plan_code>.",
            "type": "string"
          },
          "locations_fa": {
            "description": "Countries it is sold in (Persian, distinct): tells a model's regional variants apart.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "model_key": {
            "description": "Plan code without its regional suffix; regional variants of a model share it.",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "plan_code": {
            "type": "string"
          },
          "range": {
            "type": "string"
          },
          "supplier": {
            "description": "Supplier key, e.g. ovh.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "catalog",
          "plan_code",
          "name",
          "range",
          "cpu",
          "datacenters",
          "locations_fa",
          "countries",
          "available",
          "from_price"
        ],
        "type": "object"
      },
      "Price": {
        "description": "For display; what is charged is accounting's.",
        "properties": {
          "currency": {
            "description": "ISO 4217 (IRR).",
            "type": "string"
          },
          "monthly": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          },
          "setup": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "monthly",
          "setup",
          "currency"
        ],
        "type": "object"
      },
      "Quote": {
        "properties": {
          "currency": {
            "type": "string"
          },
          "delivery": {
            "description": "Never a promise of instant delivery: up_to_72h (1H-*, 24H, 72H at the datacenter), longer (any other orderable estimate), unavailable (disabled).",
            "enum": [
              "up_to_72h",
              "longer",
              "unavailable"
            ],
            "type": "string"
          },
          "first_payment": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          },
          "lines": {
            "items": {
              "$ref": "#/components/schemas/QuoteLine"
            },
            "type": "array"
          },
          "monthly": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          },
          "setup": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "lines",
          "monthly",
          "setup",
          "first_payment",
          "currency"
        ],
        "type": "object"
      },
      "QuoteLine": {
        "properties": {
          "amount": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          },
          "kind": {
            "enum": [
              "plan",
              "addon",
              "setup"
            ],
            "type": "string"
          },
          "label_fa": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          }
        },
        "required": [
          "sku",
          "kind",
          "label_fa",
          "amount"
        ],
        "type": "object"
      },
      "Range": {
        "properties": {
          "description_fa": {
            "type": "string"
          },
          "from_price": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Price"
              },
              {
                "type": "null"
              }
            ]
          },
          "icon": {
            "description": "Icon key the panel maps to a picture; empty for a generic server icon.",
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "models": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "name_fa": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "name",
          "name_fa",
          "description_fa",
          "icon",
          "models",
          "from_price"
        ],
        "type": "object"
      },
      "Reinstall": {
        "properties": {
          "finished_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "started_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "enum": [
              "idle",
              "pending",
              "running",
              "done",
              "failed"
            ],
            "type": "string"
          },
          "template": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "state"
        ],
        "type": "object"
      },
      "Renewal": {
        "properties": {
          "amount": {
            "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
            "type": [
              "string",
              "null"
            ]
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "deadline_at": {
            "description": "Pay before this, or the server is not renewed.",
            "format": "date-time",
            "type": "string"
          },
          "due_at": {
            "description": "The server expires then.",
            "format": "date-time",
            "type": "string"
          },
          "expires_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "missed_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "paid_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "period_end": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": "string"
          },
          "period_start": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": "string"
          },
          "renewed_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "server_id": {
            "type": "string"
          },
          "state": {
            "enum": [
              "due",
              "paid",
              "renewed",
              "missed",
              "cancelled"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "state",
          "period_start",
          "period_end",
          "due_at",
          "deadline_at",
          "amount",
          "currency",
          "paid_at"
        ],
        "type": "object"
      },
      "Rules": {
        "properties": {
          "items": {
            "items": {
              "properties": {
                "body_fa": {
                  "type": "string"
                },
                "title_fa": {
                  "type": "string"
                }
              },
              "required": [
                "title_fa",
                "body_fa"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "version": {
            "description": "Send it back as rules_version.",
            "type": "string"
          }
        },
        "required": [
          "version",
          "items"
        ],
        "type": "object"
      },
      "Server": {
        "properties": {
          "created_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": "string"
          },
          "credentials_available": {
            "description": "Login details wait to be revealed (once).",
            "type": "boolean"
          },
          "credentials_revealed_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "datacenter": {
            "properties": {
              "city_fa": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "country_code": {
                "description": "ISO 3166-1 alpha-2, lowercase (the flag).",
                "type": [
                  "string",
                  "null"
                ]
              },
              "country_fa": {
                "type": "string"
              },
              "label_fa": {
                "type": "string"
              },
              "region_fa": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "label_fa"
            ],
            "type": "object"
          },
          "demo": {
            "description": "A demo server (never bought or billed): the panel shows a demo badge.",
            "type": "boolean"
          },
          "expires_at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "ip": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "plan": {
            "properties": {
              "catalog": {
                "description": "Supplier catalog: bm (bare-metal) or eco. The same plan code may be in both at different prices.",
                "enum": [
                  "bm",
                  "eco"
                ],
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "plan_code": {
                "type": "string"
              },
              "range": {
                "type": "string"
              }
            },
            "required": [
              "catalog",
              "plan_code",
              "name"
            ],
            "type": "object"
          },
          "renewal": {
            "properties": {
              "amount": {
                "description": "Decimal amount in currency, from core's display prices (already marked up); null when not priced yet.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "currency": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "deadline_at": {
                "description": "RFC 3339 time, UTC.",
                "format": "date-time",
                "type": "string"
              },
              "due_at": {
                "description": "RFC 3339 time, UTC.",
                "format": "date-time",
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "state": {
                "type": "string"
              }
            },
            "required": [
              "state",
              "due_at",
              "deadline_at",
              "amount"
            ],
            "type": [
              "object",
              "null"
            ]
          },
          "state": {
            "enum": [
              "provisioning",
              "active",
              "suspended",
              "terminated"
            ],
            "type": "string"
          },
          "suspension_reason": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "order_id",
          "name",
          "plan",
          "datacenter",
          "ip",
          "state",
          "expires_at",
          "renewal",
          "credentials_available"
        ],
        "type": "object"
      },
      "Supplier": {
        "properties": {
          "countries": {
            "description": "Countries it delivers from, distinct, in datacenter order.",
            "items": {
              "$ref": "#/components/schemas/Country"
            },
            "type": "array"
          },
          "description_fa": {
            "type": "string"
          },
          "from_price": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Price"
              },
              {
                "type": "null"
              }
            ]
          },
          "key": {
            "type": "string"
          },
          "locations_fa": {
            "description": "Countries it delivers from.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "logo_url": {
            "type": "string"
          },
          "models": {
            "description": "Plans it sells now.",
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "name_fa": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "name",
          "name_fa",
          "description_fa",
          "logo_url",
          "models",
          "locations_fa",
          "countries",
          "from_price"
        ],
        "type": "object"
      },
      "TimelineEntry": {
        "properties": {
          "at": {
            "description": "RFC 3339 time, UTC.",
            "format": "date-time",
            "type": "string"
          },
          "label_fa": {
            "type": "string"
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "stage": {
            "enum": [
              "awaiting_procurement",
              "procuring",
              "ordered_at_datacenter",
              "datacenter_preparing",
              "installing",
              "active",
              "cancelled"
            ],
            "type": "string"
          }
        },
        "required": [
          "stage",
          "label_fa",
          "note",
          "at"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "session": {
        "description": "A session from POST /auth/exchange with core's handoff assertion.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Dedicated (bare-metal) servers resold from OVHcloud: the whole catalog, monthly only, delivered without an operating system after manual procurement. Errors carry a stable `code`. Requests are rate limited per caller (RateLimit-* headers, 429 rate_limit_exceeded).",
    "title": "Arianet Dedicated Servers API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/openapi.json": {
      "get": {
        "operationId": "getOpenAPI",
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 document."
          }
        },
        "security": [],
        "summary": "This document"
      }
    },
    "/orders": {
      "get": {
        "description": "Requires the `baremetal:view` permission.",
        "operationId": "listOrders",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Order"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Your orders",
        "x-permission": "baremetal:view"
      },
      "post": {
        "description": "Requires the `baremetal:manage` permission.",
        "operationId": "createOrder",
        "parameters": [
          {
            "description": "A repeat with the same key answers with the first result.",
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "accept_rules": {
                    "const": true
                  },
                  "bandwidth": {
                    "description": "Bandwidth addon code.",
                    "type": "string"
                  },
                  "catalog": {
                    "description": "Supplier catalog: bm (bare-metal) or eco. The same plan code may be in both at different prices.",
                    "enum": [
                      "bm",
                      "eco"
                    ],
                    "type": "string"
                  },
                  "datacenter": {
                    "type": "string"
                  },
                  "hostname": {
                    "description": "Optional RFC 1123 host name.",
                    "maxLength": 253,
                    "type": "string"
                  },
                  "memory": {
                    "description": "Memory addon code.",
                    "type": "string"
                  },
                  "options": {
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "description": "Choices by family key (Options.families[].key): a code, or a list of codes for a non-exclusive family. Overrides memory / storage / bandwidth; a mandatory family left out takes its default.",
                    "properties": {},
                    "type": "object"
                  },
                  "plan_code": {
                    "type": "string"
                  },
                  "rules_version": {
                    "description": "GET /rules version.",
                    "type": "string"
                  },
                  "storage": {
                    "description": "Storage addon code.",
                    "type": "string"
                  }
                },
                "required": [
                  "catalog",
                  "plan_code",
                  "datacenter",
                  "rules_version",
                  "accept_rules"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Order"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "402": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Order a server: every line is held on your wallet; delivery follows manual procurement",
        "x-codes": [
          "insufficient_balance (402)",
          "identity_needed",
          "unavailable_combo",
          "rules_not_accepted",
          "rules_outdated",
          "no_price",
          "core_unavailable"
        ],
        "x-permission": "baremetal:manage"
      }
    },
    "/orders/{id}": {
      "get": {
        "description": "Requires the `baremetal:view` permission.",
        "operationId": "getOrder",
        "parameters": [
          {
            "description": "Server or order id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Order"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "One order with its stage timeline",
        "x-permission": "baremetal:view"
      }
    },
    "/orders/{id}/cancel": {
      "post": {
        "description": "Requires the `baremetal:manage` permission.",
        "operationId": "cancelOrder",
        "parameters": [
          {
            "description": "Server or order id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Order"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Cancel before procurement started; the full amount is released",
        "x-codes": [
          "not_cancellable"
        ],
        "x-permission": "baremetal:manage"
      }
    },
    "/plans": {
      "get": {
        "operationId": "listPlans",
        "parameters": [
          {
            "in": "query",
            "name": "range",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "supplier",
            "schema": {
              "description": "Supplier key; an unknown one has no models.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Plan"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Every server model of both catalogs, available or not"
      }
    },
    "/plans/{catalog}/{plan}/options": {
      "get": {
        "operationId": "getPlanOptions",
        "parameters": [
          {
            "in": "path",
            "name": "catalog",
            "required": true,
            "schema": {
              "description": "Supplier catalog: bm (bare-metal) or eco. The same plan code may be in both at different prices.",
              "enum": [
                "bm",
                "eco"
              ],
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "plan",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "datacenter",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "memory",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "storage",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "system_storage",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "gpu",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Options"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "A model's datacenters and every option family (memory, disks, network, GPU, licences) with prices and delivery for the choices so far"
      }
    },
    "/quote": {
      "post": {
        "operationId": "quote",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "accept_rules": {
                    "type": "boolean"
                  },
                  "bandwidth": {
                    "description": "Bandwidth addon code.",
                    "type": "string"
                  },
                  "catalog": {
                    "description": "Supplier catalog: bm (bare-metal) or eco. The same plan code may be in both at different prices.",
                    "enum": [
                      "bm",
                      "eco"
                    ],
                    "type": "string"
                  },
                  "datacenter": {
                    "type": "string"
                  },
                  "hostname": {
                    "description": "Optional RFC 1123 host name.",
                    "maxLength": 253,
                    "type": "string"
                  },
                  "memory": {
                    "description": "Memory addon code.",
                    "type": "string"
                  },
                  "options": {
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "description": "Choices by family key (Options.families[].key): a code, or a list of codes for a non-exclusive family. Overrides memory / storage / bandwidth; a mandatory family left out takes its default.",
                    "properties": {},
                    "type": "object"
                  },
                  "plan_code": {
                    "type": "string"
                  },
                  "rules_version": {
                    "type": "string"
                  },
                  "storage": {
                    "description": "Storage addon code.",
                    "type": "string"
                  }
                },
                "required": [
                  "catalog",
                  "plan_code",
                  "datacenter"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Quote"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Price a configuration (nothing held)"
      }
    },
    "/ranges": {
      "get": {
        "operationId": "listRanges",
        "parameters": [
          {
            "in": "query",
            "name": "supplier",
            "schema": {
              "description": "Supplier key; an unknown one has no ranges.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Range"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Server families with their cheapest price"
      }
    },
    "/rules": {
      "get": {
        "operationId": "getRules",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Rules"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "The dedicated server rules the order must accept"
      }
    },
    "/servers": {
      "get": {
        "description": "Requires the `baremetal:view` permission.",
        "operationId": "listServers",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Server"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Your servers",
        "x-permission": "baremetal:view"
      }
    },
    "/servers/{id}": {
      "get": {
        "description": "Requires the `baremetal:view` permission.",
        "operationId": "getServer",
        "parameters": [
          {
            "description": "Server or order id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Server"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "One server",
        "x-permission": "baremetal:view"
      }
    },
    "/servers/{id}/credentials/reveal": {
      "post": {
        "description": "Requires the `baremetal:manage` permission.",
        "operationId": "revealCredentials",
        "parameters": [
          {
            "description": "Server or order id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Credentials"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "410": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "The login details, shown once (never cached)",
        "x-codes": [
          "already_revealed (410)",
          "credentials_not_ready"
        ],
        "x-permission": "baremetal:manage"
      }
    },
    "/servers/{id}/os-templates": {
      "get": {
        "description": "Requires the `baremetal:manage` permission.",
        "operationId": "listOSTemplates",
        "parameters": [
          {
            "description": "Server or order id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/OSTemplate"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Operating systems the server can be installed with",
        "x-permission": "baremetal:manage"
      }
    },
    "/servers/{id}/reinstall": {
      "get": {
        "description": "Requires the `baremetal:view` permission.",
        "operationId": "getReinstall",
        "parameters": [
          {
            "description": "Server or order id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Reinstall"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "The last installation's state",
        "x-permission": "baremetal:view"
      },
      "post": {
        "description": "Requires the `baremetal:manage` permission.",
        "operationId": "reinstallServer",
        "parameters": [
          {
            "description": "Server or order id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "hostname": {
                    "maxLength": 253,
                    "type": "string"
                  },
                  "ssh_key": {
                    "description": "One OpenSSH public key.",
                    "maxLength": 8192,
                    "type": "string"
                  },
                  "template": {
                    "description": "OSTemplate id.",
                    "type": "string"
                  }
                },
                "required": [
                  "template"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Reinstall"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Install an operating system: the disks are wiped",
        "x-codes": [
          "reinstall_in_progress",
          "template_unavailable",
          "rate_limit_exceeded",
          "supplier_unavailable"
        ],
        "x-permission": "baremetal:manage"
      }
    },
    "/servers/{id}/renew": {
      "post": {
        "description": "Requires the `baremetal:renew` permission.",
        "operationId": "renewServer",
        "parameters": [
          {
            "description": "Server or order id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A repeat with the same key answers with the first result.",
            "in": "header",
            "name": "Idempotency-Key",
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Renewal"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "402": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Pay the open renewal (the next month); charged at once",
        "x-codes": [
          "insufficient_balance (402)",
          "renewal_not_due",
          "renewal_closed",
          "renewal_paid"
        ],
        "x-permission": "baremetal:renew"
      }
    },
    "/servers/{id}/renewals": {
      "get": {
        "description": "Requires the `baremetal:view` permission.",
        "operationId": "listRenewals",
        "parameters": [
          {
            "description": "Server or order id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Renewal"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "The server's renewals",
        "x-permission": "baremetal:view"
      }
    },
    "/suppliers": {
      "get": {
        "operationId": "listSuppliers",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Supplier"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "OK."
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Companies servers are bought from, with their model count, countries and cheapest price"
      }
    }
  },
  "security": [
    {
      "session": []
    }
  ],
  "servers": [
    {
      "url": "https://api.ariaservice.net/baremetal/v1",
      "description": "API gateway (Arianet-Region header picks a regional install)"
    }
  ]
}
