{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:ohrisk:schema:diff-report:3.5.0",
  "title": "Ohrisk diff report",
  "type": "object",
  "required": [
    "$schema",
    "schemaVersion",
    "status",
    "baselineRef",
    "profile",
    "prodOnly",
    "baselineFindingCount",
    "currentFindingCount",
    "newFindingCount",
    "changedFindingCount",
    "resolvedFindingCount",
    "introducedFindingCount",
    "newRisks",
    "changedRisks",
    "resolvedRisks",
    "introducedRisks",
    "lockfileChanges",
    "nextAction",
    "findings",
    "newFindings",
    "changedFindings",
    "resolvedFindings"
  ],
  "properties": {
    "$schema": {
      "const": "urn:ohrisk:schema:diff-report:3.5.0"
    },
    "schemaVersion": {
      "const": "3.5.0"
    },
    "status": {
      "const": "risk_diff_evaluated"
    },
    "baselineRef": {
      "type": "string",
      "minLength": 1
    },
    "profile": {
      "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/usageProfile"
    },
    "prodOnly": {
      "type": "boolean"
    },
    "baselineFindingCount": {
      "type": "integer",
      "minimum": 0
    },
    "currentFindingCount": {
      "type": "integer",
      "minimum": 0
    },
    "newFindingCount": {
      "type": "integer",
      "minimum": 0
    },
    "changedFindingCount": {
      "type": "integer",
      "minimum": 0
    },
    "resolvedFindingCount": {
      "type": "integer",
      "minimum": 0
    },
    "introducedFindingCount": {
      "type": "integer",
      "minimum": 0
    },
    "newRisks": {
      "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/riskCounts"
    },
    "changedRisks": {
      "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/riskCounts"
    },
    "resolvedRisks": {
      "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/riskCounts"
    },
    "introducedRisks": {
      "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/riskCounts"
    },
    "lockfileChanges": {
      "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/lockfileChanges"
    },
    "nextAction": {
      "type": "string",
      "minLength": 1
    },
    "policy": {
      "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/policySummary"
    },
    "failOn": {
      "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/riskSeverity"
    },
    "failed": {
      "type": "boolean"
    },
    "failingFindingCount": {
      "type": "integer",
      "minimum": 0
    },
    "findings": {
      "type": "array",
      "items": {
        "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/riskFinding"
      }
    },
    "newFindings": {
      "type": "array",
      "items": {
        "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/riskFinding"
      }
    },
    "changedFindings": {
      "type": "array",
      "items": {
        "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/riskFinding"
      }
    },
    "resolvedFindings": {
      "type": "array",
      "items": {
        "$ref": "urn:ohrisk:schema:common:3.5.0#/$defs/riskFinding"
      }
    }
  },
  "dependentRequired": {
    "failOn": [
      "failed",
      "failingFindingCount"
    ],
    "failed": [
      "failOn",
      "failingFindingCount"
    ],
    "failingFindingCount": [
      "failOn",
      "failed"
    ]
  },
  "additionalProperties": false
}
