1*079d581eSLawrence Tang{
2*079d581eSLawrence Tang    "$id": "cper-json-header",
3*079d581eSLawrence Tang    "$schema": "https://json-schema.org/draft/2020-12/schema",
4*079d581eSLawrence Tang    "type": "object",
5*079d581eSLawrence Tang    "required": ["revision", "sectionCount", "severity", "validationBits", "recordLength", "creatorID", "notificationType", "recordID", "flags", "persistenceInfo"],
6*079d581eSLawrence Tang    "additionalProperties": false,
7*079d581eSLawrence Tang    "properties": {
8*079d581eSLawrence Tang        "revision": {
9*079d581eSLawrence Tang            "type": "object",
10*079d581eSLawrence Tang            "required": ["major", "minor"],
11*079d581eSLawrence Tang            "properties": {
12*079d581eSLawrence Tang                "major": {
13*079d581eSLawrence Tang                    "type": "integer",
14*079d581eSLawrence Tang                    "minimum": 0
15*079d581eSLawrence Tang                },
16*079d581eSLawrence Tang                "minor": {
17*079d581eSLawrence Tang                    "type": "integer",
18*079d581eSLawrence Tang                    "minimum": 0
19*079d581eSLawrence Tang                }
20*079d581eSLawrence Tang            }
21*079d581eSLawrence Tang        },
22*079d581eSLawrence Tang        "sectionCount": {
23*079d581eSLawrence Tang            "type": "integer",
24*079d581eSLawrence Tang            "minimum": 0
25*079d581eSLawrence Tang        },
26*079d581eSLawrence Tang        "severity": {
27*079d581eSLawrence Tang            "type": "object",
28*079d581eSLawrence Tang            "required": ["name", "code"],
29*079d581eSLawrence Tang            "properties": {
30*079d581eSLawrence Tang                "name": {
31*079d581eSLawrence Tang                    "type": "string"
32*079d581eSLawrence Tang                },
33*079d581eSLawrence Tang                "code": {
34*079d581eSLawrence Tang                    "type": "integer",
35*079d581eSLawrence Tang                    "minimum": 0
36*079d581eSLawrence Tang                }
37*079d581eSLawrence Tang            }
38*079d581eSLawrence Tang        },
39*079d581eSLawrence Tang        "validationBits": {
40*079d581eSLawrence Tang            "type": "object",
41*079d581eSLawrence Tang            "required": ["platformIDValid", "timestampValid", "partitionIDValid"],
42*079d581eSLawrence Tang            "properties": {
43*079d581eSLawrence Tang                "platformIDValid": {
44*079d581eSLawrence Tang                    "type": "boolean"
45*079d581eSLawrence Tang                },
46*079d581eSLawrence Tang                "timestampValid": {
47*079d581eSLawrence Tang                    "type": "boolean"
48*079d581eSLawrence Tang                },
49*079d581eSLawrence Tang                "partitionIDValid": {
50*079d581eSLawrence Tang                    "type": "boolean"
51*079d581eSLawrence Tang                }
52*079d581eSLawrence Tang            }
53*079d581eSLawrence Tang        },
54*079d581eSLawrence Tang        "recordLength": {
55*079d581eSLawrence Tang            "type": "integer",
56*079d581eSLawrence Tang            "minimum": 0
57*079d581eSLawrence Tang        },
58*079d581eSLawrence Tang        "timestamp": {
59*079d581eSLawrence Tang            "type": "string"
60*079d581eSLawrence Tang        },
61*079d581eSLawrence Tang        "timestampIsPrecise": {
62*079d581eSLawrence Tang            "type": "boolean"
63*079d581eSLawrence Tang        },
64*079d581eSLawrence Tang        "platformID": {
65*079d581eSLawrence Tang            "type": "string"
66*079d581eSLawrence Tang        },
67*079d581eSLawrence Tang        "partitionID": {
68*079d581eSLawrence Tang            "type": "string"
69*079d581eSLawrence Tang        },
70*079d581eSLawrence Tang        "creatorID": {
71*079d581eSLawrence Tang            "type": "string"
72*079d581eSLawrence Tang        },
73*079d581eSLawrence Tang        "notificationType": {
74*079d581eSLawrence Tang            "type": "object",
75*079d581eSLawrence Tang            "required": ["guid", "type"],
76*079d581eSLawrence Tang            "properties": {
77*079d581eSLawrence Tang                "guid": {
78*079d581eSLawrence Tang                    "type": "string",
79*079d581eSLawrence Tang                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{16}$"
80*079d581eSLawrence Tang                },
81*079d581eSLawrence Tang                "type": {
82*079d581eSLawrence Tang                    "type": "string"
83*079d581eSLawrence Tang                }
84*079d581eSLawrence Tang            }
85*079d581eSLawrence Tang        },
86*079d581eSLawrence Tang        "recordID": {
87*079d581eSLawrence Tang            "type": "integer"
88*079d581eSLawrence Tang        },
89*079d581eSLawrence Tang        "flags": {
90*079d581eSLawrence Tang            "type": "object",
91*079d581eSLawrence Tang            "$ref": "./common/cper-json-nvp.json"
92*079d581eSLawrence Tang        },
93*079d581eSLawrence Tang        "persistenceInfo": {
94*079d581eSLawrence Tang            "type": "integer"
95*079d581eSLawrence Tang        }
96*079d581eSLawrence Tang    }
97*079d581eSLawrence Tang}