blob: b5cd741703332f8417aab08e11e1680f4e72f3f8 [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#",
Brad Bishop8e659b52020-05-07 17:31:04 -04003 "definitions": {
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.",
Brad Bishopada40c52020-05-07 19:32:05 -04006 "oneOf": [
7 {
Chris Cain04b0b012021-12-14 16:19:05 -06008 "$ref": "ibm.json#/definitions/PowerModeProperties"
9 },
10 {
Brad Bishop7d05ee52022-05-26 16:27:48 -040011 "$ref": "ibm.json#/definitions/IBMCompatibleSystem"
Brad Bishop648ae632020-10-09 08:20:12 -040012 },
13 {
Brad Bishop7d05ee52022-05-26 16:27:48 -040014 "$ref": "ibm.json#/definitions/IBMCFFPSConnector"
Brad Bishop4afe7082020-10-01 09:59:26 -040015 },
16 {
Brad Bishop7d05ee52022-05-26 16:27:48 -040017 "$ref": "intel.json#/definitions/IntelFanConnector"
Brad Bishopdc108282020-09-24 19:01:28 -040018 },
19 {
Brad Bishop7d05ee52022-05-26 16:27:48 -040020 "$ref": "pid.json#/definitions/Pid"
Brad Bishop4fa1d392020-05-07 20:27:15 -040021 },
22 {
Brad Bishop7d05ee52022-05-26 16:27:48 -040023 "$ref": "pid_zone.json#/definitions/PidZone"
Brad Bishop4fa1d392020-05-07 20:27:15 -040024 },
25 {
Andrew Geissler48edf9a2023-02-21 10:44:14 -060026 "$ref": "satellite_controller.json#/definitions/SatelliteController"
27 },
28 {
Brad Bishop7d05ee52022-05-26 16:27:48 -040029 "$ref": "stepwise.json#/definitions/Stepwise"
Brad Bishop4fa1d392020-05-07 20:27:15 -040030 },
31 {
Brad Bishopada40c52020-05-07 19:32:05 -040032 "$ref": "legacy.json#/definitions/Aggregate"
33 },
34 {
Brad Bishop7d05ee52022-05-26 16:27:48 -040035 "$ref": "virtual_sensor.json#/definitions/VirtualSensor"
Rashmica Guptae23af562021-07-29 15:12:16 +100036 },
37 {
Andrew Jefferybb8aa372024-03-20 11:24:32 +103038 "description": "Ensure the parent oneOf 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 Jefferybb8aa372024-03-20 11:24:32 +103045 "description": "Ensure the parent oneOf 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": {
Brad Bishopada40c52020-05-07 19:32:05 -040067 "$ref": "#/definitions/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": {
97 "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Common/UUID"
98 },
James Feist1e3e6982018-08-03 16:09:28 -070099 "xyz.openbmc_project.Inventory.Decorator.Asset": {
Brad Bishopb9809912020-05-07 17:15:31 -0400100 "$ref": "openbmc-dbus.json#/definitions/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": {
Brad Bishopb9809912020-05-07 17:15:31 -0400106 "$ref": "openbmc-dbus.json#/definitions/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": {
109 "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/Compatible"
110 },
Kumar Thangavele5c473f2023-01-27 15:09:45 +0530111 "xyz.openbmc_project.Inventory.Decorator.Replaceable": {
112 "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/Replaceable"
113 },
Delphine CC Chiuec42f452024-02-16 09:54:52 +0800114 "xyz.openbmc_project.Inventory.Decorator.Slot": {
115 "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/Slot"
116 },
Delphine CC Chiub9dbb8c2024-03-28 17:06:07 +0800117 "xyz.openbmc_project.Inventory.Decorator.Revision": {
118 "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/Revision"
119 },
Brad Bishop9453a682020-05-07 19:12:46 -0400120 "xyz.openbmc_project.Inventory.Item.Board.Motherboard": {
121 "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Item/Board/Motherboard"
122 },
123 "xyz.openbmc_project.Inventory.Item.Chassis": {
124 "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Item/Chassis"
125 },
126 "xyz.openbmc_project.Inventory.Item.Panel": {
127 "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Item/Panel"
128 },
James Feist60d93d22019-07-10 15:08:35 -0700129 "xyz.openbmc_project.Inventory.Item.System": {
Brad Bishopb9809912020-05-07 17:15:31 -0400130 "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Item/System"
James Feist1e3e6982018-08-03 16:09:28 -0700131 }
132 },
Patrick Williamsfa8ee872022-12-07 07:00:42 -0600133 "required": ["Exposes", "Name", "Probe", "Type"]
James Feist1e3e6982018-08-03 16:09:28 -0700134 }
Brad Bishop8e659b52020-05-07 17:31:04 -0400135 },
Brad Bishop2189d612020-05-07 19:27:44 -0400136 "title": "Entity Manager Configuration File",
Andrew Jefferybb8aa372024-03-20 11:24:32 +1030137 "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 -0400138 "anyOf": [
139 {
140 "type": "array",
141 "items": {
142 "$ref": "#/definitions/EMConfig"
143 }
144 },
145 {
146 "$ref": "#/definitions/EMConfig"
147 }
James Feist1e3e6982018-08-03 16:09:28 -0700148 ]
149}