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