1079d581eSLawrence Tang{
2079d581eSLawrence Tang    "$id": "cper-json-section-descriptor",
3079d581eSLawrence Tang    "$schema": "https://json-schema.org/draft/2020-12/schema",
4079d581eSLawrence Tang    "type": "object",
5079d581eSLawrence Tang    "required": ["sectionOffset", "sectionLength", "revision", "validationBits", "flags", "sectionType", "severity"],
6079d581eSLawrence Tang    "additionalProperties": false,
7079d581eSLawrence Tang    "properties": {
8079d581eSLawrence Tang        "sectionOffset": {
9079d581eSLawrence Tang            "type": "integer"
10079d581eSLawrence Tang        },
11079d581eSLawrence Tang        "sectionLength": {
12079d581eSLawrence Tang            "type": "integer"
13079d581eSLawrence Tang        },
14079d581eSLawrence Tang        "revision": {
15079d581eSLawrence Tang            "type": "object",
16079d581eSLawrence Tang            "required": ["major", "minor"],
17079d581eSLawrence Tang            "properties": {
18079d581eSLawrence Tang                "major": {
19079d581eSLawrence Tang                    "type": "integer",
20079d581eSLawrence Tang                    "minimum": 0
21079d581eSLawrence Tang                },
22079d581eSLawrence Tang                "minor": {
23079d581eSLawrence Tang                    "type": "integer",
24079d581eSLawrence Tang                    "minimum": 0
25079d581eSLawrence Tang                }
26079d581eSLawrence Tang            }
27079d581eSLawrence Tang        },
28079d581eSLawrence Tang        "validationBits": {
29079d581eSLawrence Tang            "type": "object",
30079d581eSLawrence Tang            "required": ["fruIDValid", "fruStringValid"],
31079d581eSLawrence Tang            "properties": {
32079d581eSLawrence Tang                "fruIDValid": {
33079d581eSLawrence Tang                    "type": "boolean"
34079d581eSLawrence Tang                },
35079d581eSLawrence Tang                "fruStringValid": {
36079d581eSLawrence Tang                    "type": "boolean"
37079d581eSLawrence Tang                }
38079d581eSLawrence Tang            }
39079d581eSLawrence Tang        },
40079d581eSLawrence Tang        "flags": {
41079d581eSLawrence Tang            "type": "object",
42079d581eSLawrence Tang            "required": ["primary", "containmentWarning", "reset", "errorThresholdExceeded", "resourceNotAccessible", "latentError", "propagated", "overflow"],
43079d581eSLawrence Tang            "properties": {
44079d581eSLawrence Tang                "primary": {
45079d581eSLawrence Tang                    "type": "boolean"
46079d581eSLawrence Tang                },
47079d581eSLawrence Tang                "containmentWarning": {
48079d581eSLawrence Tang                    "type": "boolean"
49079d581eSLawrence Tang                },
50079d581eSLawrence Tang                "reset": {
51079d581eSLawrence Tang                    "type": "boolean"
52079d581eSLawrence Tang                },
53079d581eSLawrence Tang                "errorThresholdExceeded": {
54079d581eSLawrence Tang                    "type": "boolean"
55079d581eSLawrence Tang                },
56079d581eSLawrence Tang                "resourceNotAccessible": {
57079d581eSLawrence Tang                    "type": "boolean"
58079d581eSLawrence Tang                },
59079d581eSLawrence Tang                "latentError": {
60079d581eSLawrence Tang                    "type": "boolean"
61079d581eSLawrence Tang                },
62079d581eSLawrence Tang                "propagated": {
63079d581eSLawrence Tang                    "type": "boolean"
64079d581eSLawrence Tang                },
65079d581eSLawrence Tang                "overflow": {
66079d581eSLawrence Tang                    "type": "boolean"
67079d581eSLawrence Tang                }
68079d581eSLawrence Tang            }
69079d581eSLawrence Tang        },
70079d581eSLawrence Tang        "sectionType": {
71079d581eSLawrence Tang            "type": "object",
72*8f793ac3SLawrence Tang            "required": ["data", "type"],
73079d581eSLawrence Tang            "properties": {
74079d581eSLawrence Tang                "data": {
75079d581eSLawrence Tang                    "type": "string",
76079d581eSLawrence Tang                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$"
77079d581eSLawrence Tang                },
78*8f793ac3SLawrence Tang                "type": {
79079d581eSLawrence Tang                    "type": "string"
80079d581eSLawrence Tang                }
81079d581eSLawrence Tang            }
82079d581eSLawrence Tang        },
83079d581eSLawrence Tang        "fruID": {
84079d581eSLawrence Tang            "type": "string"
85079d581eSLawrence Tang        },
86079d581eSLawrence Tang        "severity": {
87079d581eSLawrence Tang            "type": "object",
88079d581eSLawrence Tang            "required": ["code", "name"],
89079d581eSLawrence Tang            "properties": {
90079d581eSLawrence Tang                "code": {
91079d581eSLawrence Tang                    "type": "integer",
92079d581eSLawrence Tang                    "minimum": 0
93079d581eSLawrence Tang                },
94079d581eSLawrence Tang                "name": {
95079d581eSLawrence Tang                    "type": "string"
96079d581eSLawrence Tang                }
97079d581eSLawrence Tang            }
98079d581eSLawrence Tang        },
99079d581eSLawrence Tang        "fruText": {
100079d581eSLawrence Tang            "type": "string"
101079d581eSLawrence Tang        }
102079d581eSLawrence Tang    }
103079d581eSLawrence Tang}