{
  "$id": "https://verifiedserviceschema.org/schemas/v0.1/verification-report.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "attestation": {
      "type": "string"
    },
    "disclaimer": {
      "type": "string"
    },
    "endpoint_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "report_generated_at": {
      "format": "date-time",
      "type": "string"
    },
    "report_url": {
      "format": "uri",
      "type": "string"
    },
    "sample": {
      "type": "boolean"
    },
    "verification": {
      "oneOf": [
        {
          "properties": {
            "level": {
              "const": 0
            },
            "status": {
              "enum": [
                "unverified",
                "suspended"
              ]
            }
          }
        },
        {
          "properties": {
            "level": {
              "const": 1
            },
            "status": {
              "const": "self_asserted"
            }
          }
        },
        {
          "properties": {
            "checks": {
              "minItems": 1
            },
            "last_verified_at": {
              "type": "string"
            },
            "level": {
              "const": 2
            },
            "status": {
              "const": "probed"
            }
          },
          "required": [
            "checks"
          ]
        },
        {
          "properties": {
            "checks": {
              "minItems": 1
            },
            "last_verified_at": {
              "type": "string"
            },
            "level": {
              "enum": [
                3,
                4
              ]
            },
            "status": {
              "const": "verified"
            }
          },
          "required": [
            "checks"
          ]
        }
      ],
      "properties": {
        "checks": {
          "items": {
            "$ref": "https://verifiedserviceschema.org/schemas/v0.1/verification-check.json"
          },
          "type": "array"
        },
        "last_verified_at": {
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "level": {
          "maximum": 4,
          "minimum": 0,
          "type": "integer"
        },
        "status": {
          "enum": [
            "unverified",
            "self_asserted",
            "probed",
            "verified",
            "suspended"
          ]
        },
        "suspended_at": {
          "format": "date-time",
          "type": "string"
        },
        "suspension_reason": {
          "type": "string"
        }
      },
      "required": [
        "level",
        "status",
        "checks",
        "last_verified_at"
      ],
      "type": "object"
    }
  },
  "required": [
    "endpoint_id",
    "name",
    "verification",
    "report_generated_at",
    "report_url"
  ],
  "title": "Verification Report v0.1",
  "type": "object"
}