{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "AnalyzeJsonOutput",
  "description": "JSON output for single file analyze",
  "type": "object",
  "properties": {
    "dialect": {
      "type": "string"
    },
    "elapsed_secs": {
      "type": "number"
    },
    "input_file": {
      "type": "string"
    },
    "size_mb": {
      "type": "number"
    },
    "summary": {
      "$ref": "#/$defs/AnalyzeSummary"
    },
    "tables": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/TableAnalysis"
      }
    }
  },
  "required": [
    "input_file",
    "dialect",
    "size_mb",
    "elapsed_secs",
    "summary",
    "tables"
  ],
  "$defs": {
    "AnalyzeSummary": {
      "type": "object",
      "properties": {
        "total_bytes": {
          "type": "integer",
          "minimum": 0
        },
        "total_inserts": {
          "type": "integer",
          "minimum": 0
        },
        "total_tables": {
          "type": "integer",
          "minimum": 0
        }
      },
      "required": ["total_tables", "total_inserts", "total_bytes"]
    },
    "TableAnalysis": {
      "type": "object",
      "properties": {
        "bytes": {
          "type": "integer",
          "minimum": 0
        },
        "creates": {
          "type": "integer",
          "minimum": 0
        },
        "inserts": {
          "type": "integer",
          "minimum": 0
        },
        "name": {
          "type": "string"
        },
        "size_mb": {
          "type": "number"
        },
        "statements": {
          "type": "integer",
          "minimum": 0
        }
      },
      "required": [
        "name",
        "inserts",
        "creates",
        "statements",
        "bytes",
        "size_mb"
      ]
    }
  }
}
