1{
2    "$id": "cper-json-cxl-protocol-section",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "type": "object",
5    "required": ["validationBits", "agentType", "agentAddress", "deviceID", "deviceSerial", "capabilityStructure", "dvsecLength", "errorLogLength", "cxlDVSEC", "cxlErrorLog"],
6    "additionalProperties": false,
7    "properties": {
8        "validationBits": {
9            "type": "object",
10            "required": ["cxlAgentTypeValid", "cxlAgentAddressValid", "deviceIDValid", "deviceSerialValid", "capabilityStructureValid", "cxlDVSECValid", "cxlErrorLogValid"],
11            "properties": {
12                "cxlAgentTypeValid": {
13                    "type": "boolean"
14                },
15                "cxlAgentAddressValid": {
16                    "type": "boolean"
17                },
18                "deviceIDValid": {
19                    "type": "boolean"
20                },
21                "deviceSerialValid": {
22                    "type": "boolean"
23                },
24                "capabilityStructureValid": {
25                    "type": "boolean"
26                },
27                "cxlDVSECValid": {
28                    "type": "boolean"
29                },
30                "cxlErrorLogValid": {
31                    "type": "boolean"
32                }
33            }
34        },
35        "agentType": {
36            "type": "object",
37            "$ref": "../common/cper-json-nvp.json"
38        },
39        "agentAddress": {
40            "type": "object",
41            "oneOf": [
42                {
43                    "type": "object",
44                    "required": ["functionNumber", "deviceNumber", "busNumber", "segmentNumber"],
45                    "properties": {
46                        "functionNumber": {
47                            "type": "integer"
48                        },
49                        "deviceNumber": {
50                            "type": "integer"
51                        },
52                        "busNumber": {
53                            "type": "integer"
54                        },
55                        "segmentNumber": {
56                            "type": "integer"
57                        }
58                    }
59                },
60                {
61                    "type": "object",
62                    "required": ["value"],
63                    "properties": {
64                        "value": {
65                            "type": "integer"
66                        }
67                    }
68                }
69            ]
70        },
71        "deviceSerial": {
72            "type": "integer"
73        },
74        "capabilityStructure": {
75            "type": "string"
76        },
77        "dvsecLength": {
78            "type": "integer"
79        },
80        "errorLogLength": {
81            "type": "integer"
82        },
83        "cxlDVSEC": {
84            "type": "string"
85        },
86        "cxlErrorLog": {
87            "type": "string"
88        }
89    }
90}