1079d581eSLawrence Tang{
2079d581eSLawrence Tang    "$id": "cper-json-section-descriptor",
3079d581eSLawrence Tang    "$schema": "https://json-schema.org/draft/2020-12/schema",
4079d581eSLawrence Tang    "type": "object",
5*044afd01SJohn Chung    "required": [
6*044afd01SJohn Chung        "sectionOffset",
7*044afd01SJohn Chung        "sectionLength",
8*044afd01SJohn Chung        "revision",
9*044afd01SJohn Chung        "validationBits",
10*044afd01SJohn Chung        "flags",
11*044afd01SJohn Chung        "sectionType",
12*044afd01SJohn Chung        "severity"
13*044afd01SJohn Chung    ],
14079d581eSLawrence Tang    "additionalProperties": false,
15079d581eSLawrence Tang    "properties": {
16079d581eSLawrence Tang        "sectionOffset": {
17079d581eSLawrence Tang            "type": "integer"
18079d581eSLawrence Tang        },
19079d581eSLawrence Tang        "sectionLength": {
20079d581eSLawrence Tang            "type": "integer"
21079d581eSLawrence Tang        },
22079d581eSLawrence Tang        "revision": {
23079d581eSLawrence Tang            "type": "object",
24079d581eSLawrence Tang            "required": ["major", "minor"],
25079d581eSLawrence Tang            "properties": {
26079d581eSLawrence Tang                "major": {
27079d581eSLawrence Tang                    "type": "integer",
28079d581eSLawrence Tang                    "minimum": 0
29079d581eSLawrence Tang                },
30079d581eSLawrence Tang                "minor": {
31079d581eSLawrence Tang                    "type": "integer",
32079d581eSLawrence Tang                    "minimum": 0
33079d581eSLawrence Tang                }
34079d581eSLawrence Tang            }
35079d581eSLawrence Tang        },
36079d581eSLawrence Tang        "validationBits": {
37079d581eSLawrence Tang            "type": "object",
38079d581eSLawrence Tang            "required": ["fruIDValid", "fruStringValid"],
39079d581eSLawrence Tang            "properties": {
40079d581eSLawrence Tang                "fruIDValid": {
41079d581eSLawrence Tang                    "type": "boolean"
42079d581eSLawrence Tang                },
43079d581eSLawrence Tang                "fruStringValid": {
44079d581eSLawrence Tang                    "type": "boolean"
45079d581eSLawrence Tang                }
46079d581eSLawrence Tang            }
47079d581eSLawrence Tang        },
48079d581eSLawrence Tang        "flags": {
49079d581eSLawrence Tang            "type": "object",
50*044afd01SJohn Chung            "required": [
51*044afd01SJohn Chung                "primary",
52*044afd01SJohn Chung                "containmentWarning",
53*044afd01SJohn Chung                "reset",
54*044afd01SJohn Chung                "errorThresholdExceeded",
55*044afd01SJohn Chung                "resourceNotAccessible",
56*044afd01SJohn Chung                "latentError",
57*044afd01SJohn Chung                "propagated",
58*044afd01SJohn Chung                "overflow"
59*044afd01SJohn Chung            ],
60079d581eSLawrence Tang            "properties": {
61079d581eSLawrence Tang                "primary": {
62079d581eSLawrence Tang                    "type": "boolean"
63079d581eSLawrence Tang                },
64079d581eSLawrence Tang                "containmentWarning": {
65079d581eSLawrence Tang                    "type": "boolean"
66079d581eSLawrence Tang                },
67079d581eSLawrence Tang                "reset": {
68079d581eSLawrence Tang                    "type": "boolean"
69079d581eSLawrence Tang                },
70079d581eSLawrence Tang                "errorThresholdExceeded": {
71079d581eSLawrence Tang                    "type": "boolean"
72079d581eSLawrence Tang                },
73079d581eSLawrence Tang                "resourceNotAccessible": {
74079d581eSLawrence Tang                    "type": "boolean"
75079d581eSLawrence Tang                },
76079d581eSLawrence Tang                "latentError": {
77079d581eSLawrence Tang                    "type": "boolean"
78079d581eSLawrence Tang                },
79079d581eSLawrence Tang                "propagated": {
80079d581eSLawrence Tang                    "type": "boolean"
81079d581eSLawrence Tang                },
82079d581eSLawrence Tang                "overflow": {
83079d581eSLawrence Tang                    "type": "boolean"
84079d581eSLawrence Tang                }
85079d581eSLawrence Tang            }
86079d581eSLawrence Tang        },
87079d581eSLawrence Tang        "sectionType": {
88079d581eSLawrence Tang            "type": "object",
898f793ac3SLawrence Tang            "required": ["data", "type"],
90079d581eSLawrence Tang            "properties": {
91079d581eSLawrence Tang                "data": {
92079d581eSLawrence Tang                    "type": "string",
93079d581eSLawrence Tang                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$"
94079d581eSLawrence Tang                },
958f793ac3SLawrence Tang                "type": {
96079d581eSLawrence Tang                    "type": "string"
97079d581eSLawrence Tang                }
98079d581eSLawrence Tang            }
99079d581eSLawrence Tang        },
100079d581eSLawrence Tang        "fruID": {
101079d581eSLawrence Tang            "type": "string"
102079d581eSLawrence Tang        },
103079d581eSLawrence Tang        "severity": {
104079d581eSLawrence Tang            "type": "object",
105079d581eSLawrence Tang            "required": ["code", "name"],
106079d581eSLawrence Tang            "properties": {
107079d581eSLawrence Tang                "code": {
108079d581eSLawrence Tang                    "type": "integer",
109079d581eSLawrence Tang                    "minimum": 0
110079d581eSLawrence Tang                },
111079d581eSLawrence Tang                "name": {
112079d581eSLawrence Tang                    "type": "string"
113079d581eSLawrence Tang                }
114079d581eSLawrence Tang            }
115079d581eSLawrence Tang        },
116079d581eSLawrence Tang        "fruText": {
117079d581eSLawrence Tang            "type": "string"
118079d581eSLawrence Tang        }
119079d581eSLawrence Tang    }
120079d581eSLawrence Tang}
121