{
    "$id": "cper-json-full-log",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "required": ["header", "sectionDescriptors", "sections"],
    "additionalProperties": false,
    "properties": {
        "header": {
            "$ref": "./cper-json-header.json"
        },
        "sectionDescriptors": {
            "type": "array",
            "items": {
                "type": "object",
                "$ref": "./cper-json-section-descriptor.json"
            }
        },
        "sections": {
            "type": "array",
            "items": {
                "type": "object",
                "oneOf": [
                    {
                        "type": "object",
                        "required": ["GenericProcessor"],
                        "GenericProcessor": {
                            "$ref": "./sections/cper-generic-processor.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["Ia32x64Processor"],
                        "Ia32x64Processor": {
                            "$ref": "./sections/cper-ia32x64-processor.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["ArmProcessor"],
                        "ArmProcessor": {
                            "$ref": "./sections/cper-arm-processor.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["Memory"],
                        "Memory": {
                            "$ref": "./sections/cper-memory.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["Memory2"],
                        "Memory2": {
                            "$ref": "./sections/cper-memory2.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["Pcie"],
                        "Pcie": {
                            "$ref": "./sections/cper-pcie.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["PciBus"],
                        "PciBus": {
                            "$ref": "./sections/cper-pci-bus.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["PciComponent"],
                        "PciComponent": {
                            "$ref": "./sections/cper-pci-component.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["Firmware"],
                        "Firmware": {
                            "$ref": "./sections/cper-firmware.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["GenericDmar"],
                        "GenericDmar": {
                            "$ref": "./sections/cper-generic-dmar.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["VtdDmar"],
                        "VtdDmar": {
                            "$ref": "./sections/cper-vtd-dmar.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["IommuDmar"],
                        "IommuDmar": {
                            "$ref": "./sections/cper-iommu-dmar.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["CcixPer"],
                        "CcixPer": {
                            "$ref": "./sections/cper-ccix-per.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["CxlProtocol"],
                        "CxlProtocol": {
                            "$ref": "./sections/cper-cxl-protocol.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["CxlComponent"],
                        "CxlComponent": {
                            "$ref": "./sections/cper-cxl-component.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["Nvidia"],
                        "Nvidia": {
                            "$ref": "./sections/cper-nvidia.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["Ampere"],
                        "Nvidia": {
                            "$ref": "./sections/cper-ampere.json"
                        }
                    },
                    {
                        "type": "object",
                        "required": ["Unknown"],
                        "Unknown": {
                            "$ref": "./sections/cper-unknown.json"
                        }
                    }
                ]
            }
        }
    }
}