{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/Site",
  "title": "Site",
  "type": "object",
  "description": "A site definition in the Optimizely CMS instance",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the site"
    },
    "contentRoots": {
      "type": "object",
      "description": "Root content references for the site",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Content ID"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "URL to the content"
          }
        }
      }
    },
    "languages": {
      "type": "array",
      "description": "Languages configured for the site",
      "items": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "Display name of the language"
          },
          "name": {
            "type": "string",
            "description": "Language code"
          },
          "isMasterLanguage": {
            "type": "boolean",
            "description": "Whether this is the master language"
          },
          "urlSegment": {
            "type": "string",
            "description": "URL segment for the language"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Language-specific site URL"
          }
        }
      }
    },
    "hosts": {
      "type": "array",
      "description": "Host names configured for the site",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Host name"
          },
          "type": {
            "type": "string",
            "description": "Host type"
          }
        }
      }
    }
  }
}