{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.decurity.io/data/audits.schema.json",
  "title": "Decurity public audit dataset",
  "type": "object",
  "required": [
    "version",
    "generated",
    "publisher",
    "counts",
    "audits"
  ],
  "properties": {
    "version": {
      "type": "string"
    },
    "generated": {
      "type": "string",
      "format": "date"
    },
    "license": {
      "type": "string",
      "format": "uri"
    },
    "counts": {
      "type": "object"
    },
    "audits": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "customer_slug",
          "customer_name",
          "project_name"
        ],
        "properties": {
          "customer_slug": {
            "type": "string"
          },
          "customer_name": {
            "type": "string"
          },
          "customer_website": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "customer_page": {
            "type": "string",
            "format": "uri"
          },
          "project_name": {
            "type": "string"
          },
          "month": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "retest_month": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^\\d{4}-\\d{2}$"
          },
          "kind": {
            "type": [
              "string",
              "null"
            ]
          },
          "team_size": {
            "type": "integer",
            "minimum": 0
          },
          "critical": {
            "type": "integer",
            "minimum": 0
          },
          "high": {
            "type": "integer",
            "minimum": 0
          },
          "medium": {
            "type": "integer",
            "minimum": 0
          },
          "low": {
            "type": "integer",
            "minimum": 0
          },
          "info": {
            "type": "integer",
            "minimum": 0
          },
          "findings_total": {
            "type": "integer",
            "minimum": 0
          },
          "findings_recorded": {
            "type": "boolean"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "report_urls": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "client_confirmation_urls": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          }
        }
      }
    }
  }
}