1{
2    "$id": "cper-json",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "description": "JSON Schema for the CPER-JSON format, as described in the CPER-JSON specification document.",
5    "type": "object",
6    "required": ["header", "sectionDescriptors", "sections"],
7    "additionalProperties": false,
8    "properties": {
9        "header": {
10            "$ref": "./cper-json-header.json"
11        },
12        "sectionDescriptors": {
13            "type": "array",
14            "items": {
15                "type": "object",
16                "$ref": "./cper-json-section-descriptor.json"
17            }
18        },
19        "sections": {
20            "type": "array",
21            "items": {
22                "type": "object",
23                "oneOf": [
24                    { "$ref": "./sections/cper-generic-processor.json" },
25                    { "$ref": "./sections/cper-ia32x64-processor.json" },
26                    { "$ref": "./sections/cper-arm-processor.json" },
27                    { "$ref": "./sections/cper-memory.json" },
28                    { "$ref": "./sections/cper-memory2.json" },
29                    { "$ref": "./sections/cper-pcie.json" },
30                    { "$ref": "./sections/cper-pci-bus.json" },
31                    { "$ref": "./sections/cper-pci-component.json" },
32                    { "$ref": "./sections/cper-firmware.json" },
33                    { "$ref": "./sections/cper-generic-dmar.json" },
34                    { "$ref": "./sections/cper-vtd-dmar.json" },
35                    { "$ref": "./sections/cper-iommu-dmar.json" },
36                    { "$ref": "./sections/cper-ccix-per.json" },
37                    { "$ref": "./sections/cper-cxl-protocol.json" },
38                    { "$ref": "./sections/cper-cxl-component.json" },
39                    { "$ref": "./sections/cper-unknown.json" }
40                ]
41            }
42        }
43    }
44}