1{
2    "$id": "cper-json-full-log",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "type": "object",
5    "description": "A Common Platform Error Record as defined in UEFI Specification Appendix N represented as JSON.",
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                    {
25                        "$id": "cper-json-generic-processor-section",
26                        "type": "object",
27                        "required": ["GenericProcessor"],
28                        "properties": {
29                            "GenericProcessor": {
30                                "$ref": "./sections/cper-generic-processor.json"
31                            }
32                        }
33                    },
34                    {
35                        "$id": "cper-json-ia32x64-processor-section",
36                        "type": "object",
37                        "required": ["Ia32x64Processor"],
38                        "properties": {
39                            "Ia32x64Processor": {
40                                "$ref": "./sections/cper-ia32x64-processor.json"
41                            }
42                        }
43                    },
44                    {
45                        "$id": "cper-json-arm-processor-section",
46                        "type": "object",
47                        "required": ["ArmProcessor"],
48                        "properties": {
49                            "ArmProcessor": {
50                                "$ref": "./sections/cper-arm-processor.json"
51                            }
52                        }
53                    },
54                    {
55                        "$id": "cper-json-memory-section",
56                        "type": "object",
57                        "required": ["Memory"],
58                        "properties": {
59                            "Memory": {
60                                "$ref": "./sections/cper-memory.json"
61                            }
62                        }
63                    },
64                    {
65                        "$id": "cper-json-memory2-section",
66                        "type": "object",
67                        "required": ["Memory2"],
68                        "properties": {
69                            "Memory2": {
70                                "$ref": "./sections/cper-memory2.json"
71                            }
72                        }
73                    },
74                    {
75                        "$id": "cper-json-pcie-section",
76                        "type": "object",
77                        "required": ["Pcie"],
78                        "properties": {
79                            "Pcie": {
80                                "$ref": "./sections/cper-pcie.json"
81                            }
82                        }
83                    },
84                    {
85                        "$id": "cper-json-pci-bus-section",
86                        "type": "object",
87                        "required": ["PciBus"],
88                        "properties": {
89                            "PciBus": {
90                                "$ref": "./sections/cper-pci-bus.json"
91                            }
92                        }
93                    },
94                    {
95                        "$id": "cper-json-pci-component-section",
96                        "type": "object",
97                        "required": ["PciComponent"],
98                        "properties": {
99                            "PciComponent": {
100                                "$ref": "./sections/cper-pci-component.json"
101                            }
102                        }
103                    },
104                    {
105                        "$id": "cper-json-firmware-section",
106                        "type": "object",
107                        "required": ["Firmware"],
108                        "properties": {
109                            "Firmware": {
110                                "$ref": "./sections/cper-firmware.json"
111                            }
112                        }
113                    },
114                    {
115                        "$id": "cper-json-generic-dmar-section",
116                        "type": "object",
117                        "required": ["GenericDmar"],
118                        "properties": {
119                            "GenericDmar": {
120                                "$ref": "./sections/cper-generic-dmar.json"
121                            }
122                        }
123                    },
124                    {
125                        "$id": "cper-json-vtd-dmar-section",
126                        "type": "object",
127                        "required": ["VtdDmar"],
128                        "properties": {
129                            "VtdDmar": {
130                                "$ref": "./sections/cper-vtd-dmar.json"
131                            }
132                        }
133                    },
134                    {
135                        "$id": "cper-json-iommu-dmar-section",
136                        "type": "object",
137                        "required": ["IommuDmar"],
138                        "properties": {
139                            "IommuDmar": {
140                                "$ref": "./sections/cper-iommu-dmar.json"
141                            }
142                        }
143                    },
144                    {
145                        "$id": "cper-json-ccix-per-section",
146                        "type": "object",
147                        "required": ["CcixPer"],
148                        "properties": {
149                            "CcixPer": {
150                                "$ref": "./sections/cper-ccix-per.json"
151                            }
152                        }
153                    },
154                    {
155                        "$id": "cper-json-cxl-protocol-section",
156                        "type": "object",
157                        "required": ["CxlProtocol"],
158                        "properties": {
159                            "CxlProtocol": {
160                                "$ref": "./sections/cper-cxl-protocol.json"
161                            }
162                        }
163                    },
164                    {
165                        "$id": "cper-json-cxl-component-section",
166                        "type": "object",
167                        "required": ["CxlComponent"],
168                        "properties": {
169                            "CxlComponent": {
170                                "$ref": "./sections/cper-cxl-component.json"
171                            }
172                        }
173                    },
174                    {
175                        "$id": "cper-json-nvidia-section",
176                        "type": "object",
177                        "required": ["Nvidia"],
178                        "properties": {
179                            "Nvidia": {
180                                "$ref": "./sections/cper-nvidia.json"
181                            }
182                        }
183                    },
184                    {
185                        "$id": "cper-json-ampere-section",
186                        "type": "object",
187                        "required": ["Ampere"],
188                        "properties": {
189                            "Nvidia": {
190                                "$ref": "./sections/cper-ampere.json"
191                            }
192                        }
193                    },
194                    {
195                        "$id": "cper-json-unknown-section",
196                        "type": "object",
197                        "required": ["Unknown"],
198                        "properties": {
199                            "Unknown": {
200                                "$ref": "./sections/cper-unknown.json"
201                            }
202                        }
203                    }
204                ]
205            }
206        }
207    }
208}
209