{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/codecov/main/json-schema/codecov-component-comparison-schema.json",
  "title": "ComponentComparison",
  "x-generated": "2026-10-26",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/codecov-comparison-api-openapi.yml#/components/schemas/ComponentComparison",
  "type": "object",
  "properties": {
    "component_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "base_report_totals": {
      "$ref": "#/$defs/ReportTotals"
    },
    "head_report_totals": {
      "$ref": "#/$defs/ReportTotals"
    },
    "diff_totals": {
      "$ref": "#/$defs/ReportTotals"
    }
  },
  "required": [
    "base_report_totals",
    "component_id",
    "diff_totals",
    "head_report_totals",
    "name"
  ],
  "$defs": {
    "ReportTotals": {
      "type": "object",
      "properties": {
        "files": {
          "type": "integer"
        },
        "lines": {
          "type": "integer"
        },
        "hits": {
          "type": "integer"
        },
        "misses": {
          "type": "integer"
        },
        "partials": {
          "type": "integer"
        },
        "coverage": {
          "type": "number",
          "format": "double",
          "readOnly": true
        },
        "branches": {
          "type": "integer"
        },
        "methods": {
          "type": "integer"
        },
        "messages": {
          "type": "integer"
        },
        "sessions": {
          "type": "integer"
        },
        "complexity": {
          "type": "number",
          "format": "double"
        },
        "complexity_total": {
          "type": "number",
          "format": "double"
        },
        "complexity_ratio": {
          "type": "number",
          "format": "double",
          "readOnly": true
        },
        "diff": {}
      },
      "required": [
        "branches",
        "complexity",
        "complexity_ratio",
        "complexity_total",
        "coverage",
        "diff",
        "files",
        "hits",
        "lines",
        "messages",
        "methods",
        "misses",
        "partials",
        "sessions"
      ]
    }
  }
}