blob: 438e28aad4bce801d0fe2b0886ec984c64852d8c [file] [log] [blame]
Lawrence Tang079d5812022-07-12 14:15:32 +01001{
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",
Lawrence Tang8f793ac2022-07-13 10:17:09 +010072 "required": ["data", "type"],
Lawrence Tang079d5812022-07-12 14:15:32 +010073 "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 },
Lawrence Tang8f793ac2022-07-13 10:17:09 +010078 "type": {
Lawrence Tang079d5812022-07-12 14:15:32 +010079 "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}