1*079d581eSLawrence Tang{
2*079d581eSLawrence Tang    "$id": "cper-json-section-descriptor",
3*079d581eSLawrence Tang    "$schema": "https://json-schema.org/draft/2020-12/schema",
4*079d581eSLawrence Tang    "type": "object",
5*079d581eSLawrence Tang    "required": ["sectionOffset", "sectionLength", "revision", "validationBits", "flags", "sectionType", "severity"],
6*079d581eSLawrence Tang    "additionalProperties": false,
7*079d581eSLawrence Tang    "properties": {
8*079d581eSLawrence Tang        "sectionOffset": {
9*079d581eSLawrence Tang            "type": "integer"
10*079d581eSLawrence Tang        },
11*079d581eSLawrence Tang        "sectionLength": {
12*079d581eSLawrence Tang            "type": "integer"
13*079d581eSLawrence Tang        },
14*079d581eSLawrence Tang        "revision": {
15*079d581eSLawrence Tang            "type": "object",
16*079d581eSLawrence Tang            "required": ["major", "minor"],
17*079d581eSLawrence Tang            "properties": {
18*079d581eSLawrence Tang                "major": {
19*079d581eSLawrence Tang                    "type": "integer",
20*079d581eSLawrence Tang                    "minimum": 0
21*079d581eSLawrence Tang                },
22*079d581eSLawrence Tang                "minor": {
23*079d581eSLawrence Tang                    "type": "integer",
24*079d581eSLawrence Tang                    "minimum": 0
25*079d581eSLawrence Tang                }
26*079d581eSLawrence Tang            }
27*079d581eSLawrence Tang        },
28*079d581eSLawrence Tang        "validationBits": {
29*079d581eSLawrence Tang            "type": "object",
30*079d581eSLawrence Tang            "required": ["fruIDValid", "fruStringValid"],
31*079d581eSLawrence Tang            "properties": {
32*079d581eSLawrence Tang                "fruIDValid": {
33*079d581eSLawrence Tang                    "type": "boolean"
34*079d581eSLawrence Tang                },
35*079d581eSLawrence Tang                "fruStringValid": {
36*079d581eSLawrence Tang                    "type": "boolean"
37*079d581eSLawrence Tang                }
38*079d581eSLawrence Tang            }
39*079d581eSLawrence Tang        },
40*079d581eSLawrence Tang        "flags": {
41*079d581eSLawrence Tang            "type": "object",
42*079d581eSLawrence Tang            "required": ["primary", "containmentWarning", "reset", "errorThresholdExceeded", "resourceNotAccessible", "latentError", "propagated", "overflow"],
43*079d581eSLawrence Tang            "properties": {
44*079d581eSLawrence Tang                "primary": {
45*079d581eSLawrence Tang                    "type": "boolean"
46*079d581eSLawrence Tang                },
47*079d581eSLawrence Tang                "containmentWarning": {
48*079d581eSLawrence Tang                    "type": "boolean"
49*079d581eSLawrence Tang                },
50*079d581eSLawrence Tang                "reset": {
51*079d581eSLawrence Tang                    "type": "boolean"
52*079d581eSLawrence Tang                },
53*079d581eSLawrence Tang                "errorThresholdExceeded": {
54*079d581eSLawrence Tang                    "type": "boolean"
55*079d581eSLawrence Tang                },
56*079d581eSLawrence Tang                "resourceNotAccessible": {
57*079d581eSLawrence Tang                    "type": "boolean"
58*079d581eSLawrence Tang                },
59*079d581eSLawrence Tang                "latentError": {
60*079d581eSLawrence Tang                    "type": "boolean"
61*079d581eSLawrence Tang                },
62*079d581eSLawrence Tang                "propagated": {
63*079d581eSLawrence Tang                    "type": "boolean"
64*079d581eSLawrence Tang                },
65*079d581eSLawrence Tang                "overflow": {
66*079d581eSLawrence Tang                    "type": "boolean"
67*079d581eSLawrence Tang                }
68*079d581eSLawrence Tang            }
69*079d581eSLawrence Tang        },
70*079d581eSLawrence Tang        "sectionType": {
71*079d581eSLawrence Tang            "type": "object",
72*079d581eSLawrence Tang            "required": ["data", "name"],
73*079d581eSLawrence Tang            "properties": {
74*079d581eSLawrence Tang                "data": {
75*079d581eSLawrence Tang                    "type": "string",
76*079d581eSLawrence Tang                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$"
77*079d581eSLawrence Tang                },
78*079d581eSLawrence Tang                "name": {
79*079d581eSLawrence Tang                    "type": "string"
80*079d581eSLawrence Tang                }
81*079d581eSLawrence Tang            }
82*079d581eSLawrence Tang        },
83*079d581eSLawrence Tang        "fruID": {
84*079d581eSLawrence Tang            "type": "string"
85*079d581eSLawrence Tang        },
86*079d581eSLawrence Tang        "severity": {
87*079d581eSLawrence Tang            "type": "object",
88*079d581eSLawrence Tang            "required": ["code", "name"],
89*079d581eSLawrence Tang            "properties": {
90*079d581eSLawrence Tang                "code": {
91*079d581eSLawrence Tang                    "type": "integer",
92*079d581eSLawrence Tang                    "minimum": 0
93*079d581eSLawrence Tang                },
94*079d581eSLawrence Tang                "name": {
95*079d581eSLawrence Tang                    "type": "string"
96*079d581eSLawrence Tang                }
97*079d581eSLawrence Tang            }
98*079d581eSLawrence Tang        },
99*079d581eSLawrence Tang        "fruText": {
100*079d581eSLawrence Tang            "type": "string"
101*079d581eSLawrence Tang        }
102*079d581eSLawrence Tang    }
103*079d581eSLawrence Tang}