1{
2    "$id": "cper-json-pcie-section",
3    "$schema": "https://json-schema.org/draft/2020-12/schema",
4    "type": "object",
5    "required": [
6        "validationBits",
7        "portType",
8        "version",
9        "commandStatus",
10        "deviceID",
11        "deviceSerialNumber",
12        "bridgeControlStatus",
13        "capabilityStructure",
14        "aerInfo"
15    ],
16    "additionalProperties": false,
17    "properties": {
18        "validationBits": {
19            "type": "object",
20            "required": [
21                "portTypeValid",
22                "versionValid",
23                "commandStatusValid",
24                "deviceIDValid",
25                "deviceSerialNumberValid",
26                "bridgeControlStatusValid",
27                "capabilityStructureStatusValid",
28                "aerInfoValid"
29            ],
30            "properties": {
31                "portTypeValid": {
32                    "type": "boolean"
33                },
34                "versionValid": {
35                    "type": "boolean"
36                },
37                "commandStatusValid": {
38                    "type": "boolean"
39                },
40                "deviceIDValid": {
41                    "type": "boolean"
42                },
43                "deviceSerialNumberValid": {
44                    "type": "boolean"
45                },
46                "bridgeControlStatusValid": {
47                    "type": "boolean"
48                },
49                "capabilityStructureStatusValid": {
50                    "type": "boolean"
51                },
52                "aerInfoValid": {
53                    "type": "boolean"
54                }
55            }
56        },
57        "portType": {
58            "type": "object",
59            "$ref": "./common/cper-json-nvp.json"
60        },
61        "version": {
62            "type": "object",
63            "required": ["major", "minor"],
64            "properties": {
65                "major": {
66                    "type": "integer"
67                },
68                "minor": {
69                    "type": "integer"
70                }
71            }
72        },
73        "commandStatus": {
74            "type": "object",
75            "required": ["commandRegister", "statusRegister"],
76            "properties": {
77                "commandRegister": {
78                    "type": "integer"
79                },
80                "statusRegister": {
81                    "type": "integer"
82                }
83            }
84        },
85        "deviceID": {
86            "type": "object",
87            "required": [
88                "vendorID",
89                "deviceID",
90                "classCode",
91                "functionNumber",
92                "deviceNumber",
93                "segmentNumber",
94                "primaryOrDeviceBusNumber",
95                "secondaryBusNumber",
96                "slotNumber"
97            ],
98            "properties": {
99                "vendorID": {
100                    "type": "integer"
101                },
102                "deviceID": {
103                    "type": "integer"
104                },
105                "classCode": {
106                    "type": "integer"
107                },
108                "functionNumber": {
109                    "type": "integer"
110                },
111                "deviceNumber": {
112                    "type": "integer"
113                },
114                "segmentNumber": {
115                    "type": "integer"
116                },
117                "primaryOrDeviceBusNumber": {
118                    "type": "integer"
119                },
120                "secondaryBusNumber": {
121                    "type": "integer"
122                },
123                "slotNumber": {
124                    "type": "integer"
125                }
126            }
127        },
128        "deviceSerialNumber": {
129            "type": "integer"
130        },
131        "bridgeControlStatus": {
132            "type": "object",
133            "required": ["secondaryStatusRegister", "controlRegister"],
134            "properties": {
135                "secondaryStatusRegister": {
136                    "type": "integer"
137                },
138                "controlRegister": {
139                    "type": "integer"
140                }
141            }
142        },
143        "capabilityStructure": {
144            "type": "object",
145            "required": ["data"],
146            "properties": {
147                "data": {
148                    "type": "string"
149                }
150            }
151        },
152        "aerInfo": {
153            "type": "object",
154            "required": ["data"],
155            "properties": {
156                "data": {
157                    "type": "string"
158                }
159            }
160        }
161    }
162}
163