{
  "title": "Mirror Mapping Version 1.2",
  "type": "object",
  "properties": {
    "version": {
      "title": "Version",
      "description": "Version number of the mirror mapping schema in use",
      "type": "string"
    },
    "mappings": {
      "title": "Mappings",
      "description": "The domain name for the mirror",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/MMMirror"
      }
    },
    "s3_buckets": {
      "title": "S3 Buckets",
      "description": "The names of all S3 buckets used for CloudFront logs",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "version",
    "mappings",
    "s3_buckets"
  ],
  "definitions": {
    "MMMirror": {
      "title": "MMMirror",
      "type": "object",
      "properties": {
        "origin_domain": {
          "title": "Origin Domain",
          "description": "The full origin domain name",
          "type": "string"
        },
        "origin_domain_normalized": {
          "title": "Origin Domain Normalized",
          "description": "The origin_domain with \"www.\" removed, if present",
          "type": "string"
        },
        "origin_domain_root": {
          "title": "Origin Domain Root",
          "description": "The registered domain name of the origin, excluding subdomains",
          "type": "string"
        },
        "valid_from": {
          "title": "Valid From",
          "description": "The date on which the mirror was added to the system",
          "type": "string"
        },
        "valid_to": {
          "title": "Valid To",
          "description": "The date on which the mirror was decommissioned",
          "type": "string"
        },
        "countries": {
          "title": "Countries",
          "description": "A list mapping of risk levels to country",
          "type": "object",
          "additionalProperties": {
            "type": "integer"
          }
        },
        "country": {
          "title": "Country",
          "description": "The country code of the country with the highest risk level where the origin is targeted",
          "type": "string"
        },
        "risk": {
          "title": "Risk",
          "description": "The risk score for the highest risk country",
          "type": "integer"
        }
      },
      "required": [
        "origin_domain",
        "origin_domain_normalized",
        "origin_domain_root",
        "valid_from",
        "countries",
        "risk"
      ]
    }
  }
}