blob: 52657ec241fa6b244d4f345fd522f9a5230e941d [file] [log] [blame]
James Feist1e3e6982018-08-03 16:09:28 -07001{
Brad Bishop64d7cec2020-05-01 10:00:23 -04002 "$schema": "http://json-schema.org/draft-07/schema#",
Patrick Williams7d6080d2024-09-04 12:54:45 -04003 "$defs": {
Brad Bishopada40c52020-05-07 19:32:05 -04004 "EMExposesElement": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +10305 "description": "The exposes property element schema. An element of the exposes property is always an array where elements are of type exposes entry.",
Alexander Hansenbdc41752025-03-26 16:53:48 +01006 "allOf": [
Brad Bishopada40c52020-05-07 19:32:05 -04007 {
Alexander Hansenbdc41752025-03-26 16:53:48 +01008 "oneOf": [
9 {
10 "$ref": "ibm.json#/$defs/PowerModeProperties"
11 },
12 {
13 "$ref": "ibm.json#/$defs/IBMCompatibleSystem"
14 },
15 {
16 "$ref": "ibm.json#/$defs/IBMCFFPSConnector"
17 },
18 {
19 "$ref": "intel.json#/$defs/IntelFanConnector"
20 },
21 {
22 "$ref": "mctp.json#/$defs/MCTPI2CTarget"
23 },
24 {
25 "$ref": "mctp.json#/$defs/MCTPI3CTarget"
26 },
27 {
28 "$ref": "pid.json#/$defs/Pid"
29 },
30 {
31 "$ref": "pid_zone.json#/$defs/PidZone"
32 },
33 {
34 "$ref": "satellite_controller.json#/$defs/SatelliteController"
35 },
36 {
37 "$ref": "stepwise.json#/$defs/Stepwise"
38 },
39 {
40 "$ref": "legacy.json#/$defs/Aggregate"
41 },
42 {
Alexander Hansen8e40bc12025-03-27 17:04:11 +010043 "$ref": "legacy.json#/$defs/ExitAirTempSensor"
44 },
45 {
Alexander Hansene4d4d162025-03-27 17:15:19 +010046 "$ref": "legacy.json#/$defs/CFMSensor"
47 },
48 {
Alexander Hansen5ef81742025-03-27 17:24:58 +010049 "$ref": "legacy.json#/$defs/FanRedundancy"
50 },
51 {
Alexander Hansendcfe0432025-03-27 18:52:55 +010052 "$ref": "legacy.json#/$defs/PURedundancy"
53 },
54 {
Alexander Hansen320c8922025-03-28 15:41:12 +010055 "$ref": "legacy.json#/$defs/ChassisIntrusionSensor"
56 },
57 {
Alexander Hansene13f4bf2025-03-28 16:41:59 +010058 "$ref": "legacy.json#/$defs/AspeedFan"
59 },
60 {
Alexander Hansenc0d01382025-03-28 17:02:00 +010061 "$ref": "legacy.json#/$defs/I2CFan"
62 },
63 {
Alexander Hansen846a2ca2025-03-28 17:27:37 +010064 "$ref": "legacy.json#/$defs/NuvotonFan"
65 },
66 {
Alexander Hansen7c9fd852025-03-28 17:38:13 +010067 "$ref": "legacy.json#/$defs/XeonCPU"
68 },
69 {
Alexander Hansen0575b462025-03-31 12:13:32 +020070 "$ref": "legacy.json#/$defs/IpmbSensor"
71 },
72 {
Alexander Hansene3282fa2025-03-31 12:46:31 +020073 "$ref": "legacy.json#/$defs/I2CMux"
74 },
75 {
Alexander Hansen41e3f662025-03-31 13:37:35 +020076 "$ref": "legacy.json#/$defs/Gpio"
77 },
78 {
Alexander Hansen49d77f52025-03-31 13:44:47 +020079 "$ref": "legacy.json#/$defs/MultiNodeID"
80 },
81 {
Alexander Hansen4d30f1e2025-03-31 13:47:34 +020082 "$ref": "legacy.json#/$defs/MultiNodePresence"
83 },
84 {
Alexander Hansen3cb8ca72025-03-31 13:53:25 +020085 "$ref": "legacy.json#/$defs/HostCpuUtilization"
86 },
87 {
Alexander Hansenb7fa1682025-03-31 14:00:40 +020088 "$ref": "legacy.json#/$defs/ExternalSensor"
89 },
90 {
Alexander Hansenf7f678d2025-03-31 14:12:34 +020091 "$ref": "legacy.json#/$defs/Port"
92 },
93 {
94 "$ref": "legacy.json#/$defs/DownstreamPort"
95 },
96 {
Alexander Hansen002cca42025-03-31 16:41:39 +020097 "$ref": "legacy.json#/$defs/PSUPresence"
98 },
99 {
Alexander Hansen2b8c36a2025-03-31 17:05:11 +0200100 "$ref": "legacy.json#/$defs/EmmcDevice"
101 },
102 {
Alexander Hansen75815ff2025-03-31 17:17:53 +0200103 "$ref": "legacy.json#/$defs/IpmbDevice"
104 },
105 {
Alexander Hansendfecaf02025-03-31 17:26:59 +0200106 "$ref": "legacy.json#/$defs/IpmbPowerMonitor"
107 },
108 {
Alexander Hansen9f628172025-04-01 12:55:04 +0200109 "$ref": "legacy.json#/$defs/ADC"
110 },
111 {
Alexander Hansen520658d2025-04-01 14:52:51 +0200112 "$ref": "legacy.json#/$defs/TempSensor"
113 },
114 {
Alexander Hansen6abc0582025-04-01 15:13:02 +0200115 "$ref": "legacy.json#/$defs/NVME1000"
116 },
117 {
Alexander Hansene2c3bce2025-04-03 17:17:03 +0200118 "$ref": "legacy.json#/$defs/EEPROM"
119 },
120 {
Alexander Hansenba22e242025-04-04 18:07:00 +0200121 "$ref": "legacy.json#/$defs/PSUSensor"
122 },
123 {
Alexander Hansenf031d302025-04-07 12:03:50 +0200124 "$ref": "legacy.json#/$defs/NMSensor"
125 },
126 {
Alexander Hansena2d7fe32025-04-07 12:11:58 +0200127 "$ref": "legacy.json#/$defs/IntelHsbpFruDevice"
128 },
129 {
Alexander Hansen41258b82025-04-07 12:15:02 +0200130 "$ref": "legacy.json#/$defs/IntelHsbpTempSensor"
131 },
132 {
Alexander Hansen50aebef2025-04-07 12:26:12 +0200133 "$ref": "legacy.json#/$defs/IntelHsbpCPLD"
134 },
135 {
Alexander Hansendda901d2025-04-07 12:32:05 +0200136 "$ref": "legacy.json#/$defs/GenericSMBusMux"
137 },
138 {
Alexander Hansenfc136ec2025-04-07 12:35:39 +0200139 "$ref": "legacy.json#/$defs/BMC"
140 },
141 {
Alexander Hansenc4ae5f72025-04-07 12:55:12 +0200142 "$ref": "legacy.json#/$defs/UCD90XXX"
143 },
144 {
Alexander Hansenbdc41752025-03-26 16:53:48 +0100145 "$ref": "virtual_sensor.json#/$defs/VirtualSensor"
146 },
147 {
148 "$ref": "leak_detector.json#/$defs/GPIOLeakDetector"
149 },
150 {
151 "$ref": "firmware.json#/$defs/XDPE1X2XXFirmware"
152 }
153 ]
Chris Cain04b0b012021-12-14 16:19:05 -0600154 },
155 {
Alexander Hansenbdc41752025-03-26 16:53:48 +0100156 "title": "Missing 'Name'",
157 "description": "Ensure the schema does not validate when an element does not define a Name",
158 "required": ["Name"]
Brad Bishop648ae632020-10-09 08:20:12 -0400159 },
160 {
Alexander Hansenbdc41752025-03-26 16:53:48 +0100161 "title": "Missing 'Type'",
162 "description": "Ensure the schema does not validate when an element does not define a Type",
163 "required": ["Type"]
Brad Bishopada40c52020-05-07 19:32:05 -0400164 }
165 ],
166 "title": "Exposes Property Element"
167 },
Brad Bishop8e659b52020-05-07 17:31:04 -0400168 "EMConfig": {
Brad Bishop2189d612020-05-07 19:27:44 -0400169 "title": "Entity Manager Configuration",
Andrew Jefferybb8aa372024-03-20 11:24:32 +1030170 "description": "The schema for an entity manager configuration. An entity manager configuration describes an association between a match condition, also known as a probe, and an array of heterogeneous configuration data. When a probe match occurs, the configuration data is exported to DBus.",
Brad Bishop9453a682020-05-07 19:12:46 -0400171 "additionalProperties": false,
James Feist1e3e6982018-08-03 16:09:28 -0700172 "type": "object",
173 "properties": {
Brad Bishop9453a682020-05-07 19:12:46 -0400174 "Bus": {
175 "type": "string"
176 },
James Feist1e3e6982018-08-03 16:09:28 -0700177 "Exposes": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +1030178 "description": "The schema for the exposes property. The exposes property must be an array where elements are of type EMExposesElement. The exposes property is the heterogeneous configuration data exported to DBus upon a probe match.",
James Feist1e3e6982018-08-03 16:09:28 -0700179 "type": "array",
180 "items": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400181 "$ref": "#/$defs/EMExposesElement"
James Feist1e3e6982018-08-03 16:09:28 -0700182 }
183 },
Brad Bishop9453a682020-05-07 19:12:46 -0400184 "Logging": {
Patrick Williamsfa8ee872022-12-07 07:00:42 -0600185 "enum": ["Off"]
Brad Bishop9453a682020-05-07 19:12:46 -0400186 },
James Feist1e3e6982018-08-03 16:09:28 -0700187 "Name": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +1030188 "description": "The schema for the name property. The name property identifies the configuration. When exported, the configuration will be instantiated at: /xyz/openbmc_project/configuration/<Type>/<Name>",
James Feist1e3e6982018-08-03 16:09:28 -0700189 "type": "string"
190 },
191 "Probe": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +1030192 "description": "The schema for an entity manager probe statement. Probes can be a single string or an array. Probes describe a match condition, for example when a DBus property has a specific value. When the match condition occurs, the information described by the Exposes property is exported onto the DBus.",
James Feist1e3e6982018-08-03 16:09:28 -0700193 "anyOf": [
194 {
195 "type": "string"
196 },
197 {
198 "type": "array",
199 "items": {
200 "type": "string"
201 }
202 }
203 ]
204 },
James Feist60d93d22019-07-10 15:08:35 -0700205 "Type": {
Brad Bishop2189d612020-05-07 19:27:44 -0400206 "title": "Configuration Type",
Andrew Jefferybb8aa372024-03-20 11:24:32 +1030207 "description": "The schema for the type property. The type property identifies the type of the configuration. When exported, configurations will be instantiated as children of: /xyz/openbmc_project/configuration/<Type>",
Jagpal Singh Gill19ecfb32024-11-02 21:25:36 -0700208 "enum": [
209 "Board",
210 "Chassis",
211 "NVMe",
212 "PowerSupply",
213 "CPU",
214 "Cable"
215 ]
James Feist60d93d22019-07-10 15:08:35 -0700216 },
Hieu Huynhab725312024-02-20 09:03:38 +0000217 "xyz.openbmc_project.Common.UUID": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400218 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Common/UUID"
Hieu Huynhab725312024-02-20 09:03:38 +0000219 },
James Feist1e3e6982018-08-03 16:09:28 -0700220 "xyz.openbmc_project.Inventory.Decorator.Asset": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400221 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Asset"
James Feist1e3e6982018-08-03 16:09:28 -0700222 },
James Feist60d93d22019-07-10 15:08:35 -0700223 "xyz.openbmc_project.Inventory.Decorator.AssetTag": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400224 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/AssetTag"
James Feist60d93d22019-07-10 15:08:35 -0700225 },
Jagpal Singh Gill19ecfb32024-11-02 21:25:36 -0700226 "xyz.openbmc_project.Inventory.Decorator.Cable": {
227 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Cable"
228 },
Chau Ly61854782023-11-29 10:16:33 +0000229 "xyz.openbmc_project.Inventory.Decorator.Compatible": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400230 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Compatible"
Chau Ly61854782023-11-29 10:16:33 +0000231 },
Oliver Brewkabdad3d52024-08-21 18:49:37 +0200232 "xyz.openbmc_project.Inventory.Decorator.ManagedHost": {
233 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/ManagedHost"
234 },
Kumar Thangavele5c473f2023-01-27 15:09:45 +0530235 "xyz.openbmc_project.Inventory.Decorator.Replaceable": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400236 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Replaceable"
Kumar Thangavele5c473f2023-01-27 15:09:45 +0530237 },
Delphine CC Chiuec42f452024-02-16 09:54:52 +0800238 "xyz.openbmc_project.Inventory.Decorator.Slot": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400239 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Slot"
Delphine CC Chiuec42f452024-02-16 09:54:52 +0800240 },
Delphine CC Chiub9dbb8c2024-03-28 17:06:07 +0800241 "xyz.openbmc_project.Inventory.Decorator.Revision": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400242 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Revision"
Delphine CC Chiub9dbb8c2024-03-28 17:06:07 +0800243 },
Brad Bishop9453a682020-05-07 19:12:46 -0400244 "xyz.openbmc_project.Inventory.Item.Board.Motherboard": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400245 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Board/Motherboard"
Brad Bishop9453a682020-05-07 19:12:46 -0400246 },
247 "xyz.openbmc_project.Inventory.Item.Chassis": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400248 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Chassis"
Brad Bishop9453a682020-05-07 19:12:46 -0400249 },
Chau Lyca144ab2024-04-15 03:54:44 +0000250 "xyz.openbmc_project.Inventory.Item.NetworkInterface": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400251 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/NetworkInterface"
Chau Lyca144ab2024-04-15 03:54:44 +0000252 },
Brad Bishop9453a682020-05-07 19:12:46 -0400253 "xyz.openbmc_project.Inventory.Item.Panel": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400254 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Panel"
Brad Bishop9453a682020-05-07 19:12:46 -0400255 },
James Feist60d93d22019-07-10 15:08:35 -0700256 "xyz.openbmc_project.Inventory.Item.System": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400257 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/System"
Ingrid Chenc74b06a2024-09-02 14:57:15 +0800258 },
Thang Trancc403b42024-12-13 14:53:30 +0700259 "xyz.openbmc_project.Inventory.Item.Bmc": {
260 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Bmc"
Ingrid Chena037dd62024-09-11 16:33:30 +0800261 },
262 "xyz.openbmc_project.Inventory.Item.Storage": {
263 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Storage"
Sean He8a8f01e2024-11-12 10:19:10 +0800264 },
265 "xyz.openbmc_project.Inventory.Item.Accelerator": {
266 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Accelerator"
267 },
268 "xyz.openbmc_project.Inventory.Item.Dimm": {
269 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Dimm"
James Feist1e3e6982018-08-03 16:09:28 -0700270 }
271 },
Patrick Williamsfa8ee872022-12-07 07:00:42 -0600272 "required": ["Exposes", "Name", "Probe", "Type"]
James Feist1e3e6982018-08-03 16:09:28 -0700273 }
Brad Bishop8e659b52020-05-07 17:31:04 -0400274 },
Brad Bishop2189d612020-05-07 19:27:44 -0400275 "title": "Entity Manager Configuration File",
Andrew Jefferybb8aa372024-03-20 11:24:32 +1030276 "description": "The schema for an entity manager configuration file. An entity mananger configuration file can consist of a single object, or an array of objects. Objects must be of type EMConfig.",
Alexander Hansenbdc41752025-03-26 16:53:48 +0100277 "oneOf": [
Brad Bishop8e659b52020-05-07 17:31:04 -0400278 {
279 "type": "array",
280 "items": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400281 "$ref": "#/$defs/EMConfig"
Brad Bishop8e659b52020-05-07 17:31:04 -0400282 }
283 },
284 {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400285 "$ref": "#/$defs/EMConfig"
Brad Bishop8e659b52020-05-07 17:31:04 -0400286 }
James Feist1e3e6982018-08-03 16:09:28 -0700287 ]
288}