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