{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/ex2-com/json-schema/ex2-com-migration-schema.json",
  "title": "Migration",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/ex2-com-openapi.json#/components/schemas/Migration",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "lang",
    "free",
    "price",
    "duration",
    "done_by_ex2",
    "what_moves",
    "domain_names",
    "sites",
    "site_online",
    "needs",
    "not_movable",
    "steps",
    "plans_url",
    "request_url",
    "page_url"
  ],
  "properties": {
    "lang": {
      "type": "string"
    },
    "free": {
      "type": "boolean",
      "const": true
    },
    "price": {
      "type": "number",
      "const": 0,
      "description": "What Ex2 charges for the move: nothing (the hosting plan is paid as usual)."
    },
    "duration": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "simple_site_hours",
        "max_hours",
        "note"
      ],
      "properties": {
        "simple_site_hours": {
          "type": "integer",
          "description": "A simple site is moved within this many hours."
        },
        "max_hours": {
          "type": "integer",
          "description": "The most a move takes, for a complex site."
        },
        "note": {
          "type": "string"
        }
      }
    },
    "done_by_ex2": {
      "type": "boolean",
      "const": true,
      "description": "Ex2's team does the move, from the access it is given."
    },
    "what_moves": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "domain_names": {
      "type": "string",
      "description": "How domain names come along: transferred (a domain transfer, at its price) or pointed to Ex2."
    },
    "sites": {
      "type": "string"
    },
    "site_online": {
      "type": "string"
    },
    "needs": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "What Ex2's team needs to do the move."
    },
    "not_movable": {
      "type": "string"
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "plans_url": {
      "type": "string",
      "format": "uri",
      "description": "The hosting plans."
    },
    "request_url": {
      "type": "string",
      "format": "uri",
      "description": "A support ticket in the client area, to ask for the move."
    },
    "page_url": {
      "type": "string",
      "format": "uri",
      "description": "The migration page, for the customer."
    }
  }
}