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