blob: e96377464374f23dea426dfc36d05dc0087928e2 [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.",
Andrew Jefferyd96439a2024-03-21 14:57:07 +10306 "anyOf": [
Brad Bishopada40c52020-05-07 19:32:05 -04007 {
Patrick Williams7d6080d2024-09-04 12:54:45 -04008 "$ref": "ibm.json#/$defs/PowerModeProperties"
Chris Cain04b0b012021-12-14 16:19:05 -06009 },
10 {
Patrick Williams7d6080d2024-09-04 12:54:45 -040011 "$ref": "ibm.json#/$defs/IBMCompatibleSystem"
Brad Bishop648ae632020-10-09 08:20:12 -040012 },
13 {
Patrick Williams7d6080d2024-09-04 12:54:45 -040014 "$ref": "ibm.json#/$defs/IBMCFFPSConnector"
Brad Bishop4afe7082020-10-01 09:59:26 -040015 },
16 {
Patrick Williams7d6080d2024-09-04 12:54:45 -040017 "$ref": "intel.json#/$defs/IntelFanConnector"
Brad Bishopdc108282020-09-24 19:01:28 -040018 },
19 {
Patrick Williams7d6080d2024-09-04 12:54:45 -040020 "$ref": "pid.json#/$defs/Pid"
Brad Bishop4fa1d392020-05-07 20:27:15 -040021 },
22 {
Patrick Williams7d6080d2024-09-04 12:54:45 -040023 "$ref": "pid_zone.json#/$defs/PidZone"
Brad Bishop4fa1d392020-05-07 20:27:15 -040024 },
25 {
Patrick Williams7d6080d2024-09-04 12:54:45 -040026 "$ref": "satellite_controller.json#/$defs/SatelliteController"
Andrew Geissler48edf9a2023-02-21 10:44:14 -060027 },
28 {
Patrick Williams7d6080d2024-09-04 12:54:45 -040029 "$ref": "stepwise.json#/$defs/Stepwise"
Brad Bishop4fa1d392020-05-07 20:27:15 -040030 },
31 {
Patrick Williams7d6080d2024-09-04 12:54:45 -040032 "$ref": "legacy.json#/$defs/Aggregate"
Brad Bishopada40c52020-05-07 19:32:05 -040033 },
34 {
Patrick Williams7d6080d2024-09-04 12:54:45 -040035 "$ref": "virtual_sensor.json#/$defs/VirtualSensor"
Rashmica Guptae23af562021-07-29 15:12:16 +100036 },
37 {
Andrew Jefferyd96439a2024-03-21 14:57:07 +103038 "description": "Ensure the parent anyOf schema does not validate when an element does not define a type property.",
Brad Bishopada40c52020-05-07 19:32:05 -040039 "not": {
Patrick Williamsfa8ee872022-12-07 07:00:42 -060040 "required": ["Type"]
Brad Bishopada40c52020-05-07 19:32:05 -040041 },
42 "title": "Missing Type"
43 },
44 {
Andrew Jefferyd96439a2024-03-21 14:57:07 +103045 "description": "Ensure the parent anyOf schema does not validate when an element does not define a name property.",
Brad Bishopada40c52020-05-07 19:32:05 -040046 "not": {
Patrick Williamsfa8ee872022-12-07 07:00:42 -060047 "required": ["Name"]
Brad Bishopada40c52020-05-07 19:32:05 -040048 },
49 "title": "Missing Name"
50 }
51 ],
52 "title": "Exposes Property Element"
53 },
Brad Bishop8e659b52020-05-07 17:31:04 -040054 "EMConfig": {
Brad Bishop2189d612020-05-07 19:27:44 -040055 "title": "Entity Manager Configuration",
Andrew Jefferybb8aa372024-03-20 11:24:32 +103056 "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 -040057 "additionalProperties": false,
James Feist1e3e6982018-08-03 16:09:28 -070058 "type": "object",
59 "properties": {
Brad Bishop9453a682020-05-07 19:12:46 -040060 "Bus": {
61 "type": "string"
62 },
James Feist1e3e6982018-08-03 16:09:28 -070063 "Exposes": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +103064 "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 -070065 "type": "array",
66 "items": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040067 "$ref": "#/$defs/EMExposesElement"
James Feist1e3e6982018-08-03 16:09:28 -070068 }
69 },
Brad Bishop9453a682020-05-07 19:12:46 -040070 "Logging": {
Patrick Williamsfa8ee872022-12-07 07:00:42 -060071 "enum": ["Off"]
Brad Bishop9453a682020-05-07 19:12:46 -040072 },
James Feist1e3e6982018-08-03 16:09:28 -070073 "Name": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +103074 "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 -070075 "type": "string"
76 },
77 "Probe": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +103078 "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 -070079 "anyOf": [
80 {
81 "type": "string"
82 },
83 {
84 "type": "array",
85 "items": {
86 "type": "string"
87 }
88 }
89 ]
90 },
James Feist60d93d22019-07-10 15:08:35 -070091 "Type": {
Brad Bishop2189d612020-05-07 19:27:44 -040092 "title": "Configuration Type",
Andrew Jefferybb8aa372024-03-20 11:24:32 +103093 "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>",
Patrick Williamsfa8ee872022-12-07 07:00:42 -060094 "enum": ["Board", "Chassis", "NVMe", "PowerSupply"]
James Feist60d93d22019-07-10 15:08:35 -070095 },
Hieu Huynhab725312024-02-20 09:03:38 +000096 "xyz.openbmc_project.Common.UUID": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040097 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Common/UUID"
Hieu Huynhab725312024-02-20 09:03:38 +000098 },
James Feist1e3e6982018-08-03 16:09:28 -070099 "xyz.openbmc_project.Inventory.Decorator.Asset": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400100 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Asset"
James Feist1e3e6982018-08-03 16:09:28 -0700101 },
James Feist60d93d22019-07-10 15:08:35 -0700102 "ProductId": {
103 "type": "number"
104 },
105 "xyz.openbmc_project.Inventory.Decorator.AssetTag": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400106 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/AssetTag"
James Feist60d93d22019-07-10 15:08:35 -0700107 },
Chau Ly61854782023-11-29 10:16:33 +0000108 "xyz.openbmc_project.Inventory.Decorator.Compatible": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400109 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Compatible"
Chau Ly61854782023-11-29 10:16:33 +0000110 },
Oliver Brewkabdad3d52024-08-21 18:49:37 +0200111 "xyz.openbmc_project.Inventory.Decorator.ManagedHost": {
112 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/ManagedHost"
113 },
Kumar Thangavele5c473f2023-01-27 15:09:45 +0530114 "xyz.openbmc_project.Inventory.Decorator.Replaceable": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400115 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Replaceable"
Kumar Thangavele5c473f2023-01-27 15:09:45 +0530116 },
Delphine CC Chiuec42f452024-02-16 09:54:52 +0800117 "xyz.openbmc_project.Inventory.Decorator.Slot": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400118 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Slot"
Delphine CC Chiuec42f452024-02-16 09:54:52 +0800119 },
Delphine CC Chiub9dbb8c2024-03-28 17:06:07 +0800120 "xyz.openbmc_project.Inventory.Decorator.Revision": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400121 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Revision"
Delphine CC Chiub9dbb8c2024-03-28 17:06:07 +0800122 },
Brad Bishop9453a682020-05-07 19:12:46 -0400123 "xyz.openbmc_project.Inventory.Item.Board.Motherboard": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400124 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Board/Motherboard"
Brad Bishop9453a682020-05-07 19:12:46 -0400125 },
126 "xyz.openbmc_project.Inventory.Item.Chassis": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400127 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Chassis"
Brad Bishop9453a682020-05-07 19:12:46 -0400128 },
Chau Lyca144ab2024-04-15 03:54:44 +0000129 "xyz.openbmc_project.Inventory.Item.NetworkInterface": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400130 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/NetworkInterface"
Chau Lyca144ab2024-04-15 03:54:44 +0000131 },
Brad Bishop9453a682020-05-07 19:12:46 -0400132 "xyz.openbmc_project.Inventory.Item.Panel": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400133 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Panel"
Brad Bishop9453a682020-05-07 19:12:46 -0400134 },
James Feist60d93d22019-07-10 15:08:35 -0700135 "xyz.openbmc_project.Inventory.Item.System": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400136 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/System"
Ingrid Chenc74b06a2024-09-02 14:57:15 +0800137 },
138 "xyz.openbmc_project.Inventory.Item.BMC": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400139 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/BMC"
Ingrid Chena037dd62024-09-11 16:33:30 +0800140 },
141 "xyz.openbmc_project.Inventory.Item.Storage": {
142 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Storage"
James Feist1e3e6982018-08-03 16:09:28 -0700143 }
144 },
Patrick Williamsfa8ee872022-12-07 07:00:42 -0600145 "required": ["Exposes", "Name", "Probe", "Type"]
James Feist1e3e6982018-08-03 16:09:28 -0700146 }
Brad Bishop8e659b52020-05-07 17:31:04 -0400147 },
Brad Bishop2189d612020-05-07 19:27:44 -0400148 "title": "Entity Manager Configuration File",
Andrew Jefferybb8aa372024-03-20 11:24:32 +1030149 "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.",
Brad Bishop8e659b52020-05-07 17:31:04 -0400150 "anyOf": [
151 {
152 "type": "array",
153 "items": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400154 "$ref": "#/$defs/EMConfig"
Brad Bishop8e659b52020-05-07 17:31:04 -0400155 }
156 },
157 {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400158 "$ref": "#/$defs/EMConfig"
Brad Bishop8e659b52020-05-07 17:31:04 -0400159 }
James Feist1e3e6982018-08-03 16:09:28 -0700160 ]
161}