blob: a001b26516b6838d0d0163fa446424eaa0f8b34f [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 Bishop8e659b52020-05-07 17:31:04 -04004 "EMConfig": {
Brad Bishop2189d612020-05-07 19:27:44 -04005 "title": "Entity Manager Configuration",
Andrew Jefferybb8aa372024-03-20 11:24:32 +10306 "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 -04007 "additionalProperties": false,
James Feist1e3e6982018-08-03 16:09:28 -07008 "type": "object",
9 "properties": {
Brad Bishop9453a682020-05-07 19:12:46 -040010 "Bus": {
11 "type": "string"
12 },
James Feist1e3e6982018-08-03 16:09:28 -070013 "Exposes": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +103014 "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 -070015 "type": "array",
16 "items": {
Alexander Hansend646b252025-04-11 14:13:40 +020017 "$ref": "exposes_record.json#/$defs/EMExposesElement"
James Feist1e3e6982018-08-03 16:09:28 -070018 }
19 },
Brad Bishop9453a682020-05-07 19:12:46 -040020 "Logging": {
Patrick Williamsfa8ee872022-12-07 07:00:42 -060021 "enum": ["Off"]
Brad Bishop9453a682020-05-07 19:12:46 -040022 },
James Feist1e3e6982018-08-03 16:09:28 -070023 "Name": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +103024 "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 -070025 "type": "string"
26 },
27 "Probe": {
Andrew Jefferybb8aa372024-03-20 11:24:32 +103028 "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 -070029 "anyOf": [
30 {
31 "type": "string"
32 },
33 {
34 "type": "array",
35 "items": {
36 "type": "string"
37 }
38 }
39 ]
40 },
James Feist60d93d22019-07-10 15:08:35 -070041 "Type": {
Brad Bishop2189d612020-05-07 19:27:44 -040042 "title": "Configuration Type",
Andrew Jefferybb8aa372024-03-20 11:24:32 +103043 "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 -070044 "enum": [
45 "Board",
46 "Chassis",
47 "NVMe",
48 "PowerSupply",
49 "CPU",
50 "Cable"
51 ]
James Feist60d93d22019-07-10 15:08:35 -070052 },
Hieu Huynhab725312024-02-20 09:03:38 +000053 "xyz.openbmc_project.Common.UUID": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040054 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Common/UUID"
Hieu Huynhab725312024-02-20 09:03:38 +000055 },
James Feist1e3e6982018-08-03 16:09:28 -070056 "xyz.openbmc_project.Inventory.Decorator.Asset": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040057 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Asset"
James Feist1e3e6982018-08-03 16:09:28 -070058 },
James Feist60d93d22019-07-10 15:08:35 -070059 "xyz.openbmc_project.Inventory.Decorator.AssetTag": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040060 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/AssetTag"
James Feist60d93d22019-07-10 15:08:35 -070061 },
Jagpal Singh Gill19ecfb32024-11-02 21:25:36 -070062 "xyz.openbmc_project.Inventory.Decorator.Cable": {
63 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Cable"
64 },
Chau Ly61854782023-11-29 10:16:33 +000065 "xyz.openbmc_project.Inventory.Decorator.Compatible": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040066 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Compatible"
Chau Ly61854782023-11-29 10:16:33 +000067 },
Oliver Brewkabdad3d52024-08-21 18:49:37 +020068 "xyz.openbmc_project.Inventory.Decorator.ManagedHost": {
69 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/ManagedHost"
70 },
Kumar Thangavele5c473f2023-01-27 15:09:45 +053071 "xyz.openbmc_project.Inventory.Decorator.Replaceable": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040072 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Replaceable"
Kumar Thangavele5c473f2023-01-27 15:09:45 +053073 },
Delphine CC Chiuec42f452024-02-16 09:54:52 +080074 "xyz.openbmc_project.Inventory.Decorator.Slot": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040075 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Slot"
Delphine CC Chiuec42f452024-02-16 09:54:52 +080076 },
Delphine CC Chiub9dbb8c2024-03-28 17:06:07 +080077 "xyz.openbmc_project.Inventory.Decorator.Revision": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040078 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Decorator/Revision"
Delphine CC Chiub9dbb8c2024-03-28 17:06:07 +080079 },
Brad Bishop9453a682020-05-07 19:12:46 -040080 "xyz.openbmc_project.Inventory.Item.Board.Motherboard": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040081 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Board/Motherboard"
Brad Bishop9453a682020-05-07 19:12:46 -040082 },
83 "xyz.openbmc_project.Inventory.Item.Chassis": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040084 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Chassis"
Brad Bishop9453a682020-05-07 19:12:46 -040085 },
Chau Lyca144ab2024-04-15 03:54:44 +000086 "xyz.openbmc_project.Inventory.Item.NetworkInterface": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040087 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/NetworkInterface"
Chau Lyca144ab2024-04-15 03:54:44 +000088 },
Brad Bishop9453a682020-05-07 19:12:46 -040089 "xyz.openbmc_project.Inventory.Item.Panel": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040090 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Panel"
Brad Bishop9453a682020-05-07 19:12:46 -040091 },
James Feist60d93d22019-07-10 15:08:35 -070092 "xyz.openbmc_project.Inventory.Item.System": {
Patrick Williams7d6080d2024-09-04 12:54:45 -040093 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/System"
Ingrid Chenc74b06a2024-09-02 14:57:15 +080094 },
Thang Trancc403b42024-12-13 14:53:30 +070095 "xyz.openbmc_project.Inventory.Item.Bmc": {
96 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Bmc"
Ingrid Chena037dd62024-09-11 16:33:30 +080097 },
98 "xyz.openbmc_project.Inventory.Item.Storage": {
99 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Storage"
Sean He8a8f01e2024-11-12 10:19:10 +0800100 },
101 "xyz.openbmc_project.Inventory.Item.Accelerator": {
102 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Accelerator"
103 },
104 "xyz.openbmc_project.Inventory.Item.Dimm": {
105 "$ref": "openbmc-dbus.json#/$defs/xyz/openbmc_project/Inventory/Item/Dimm"
James Feist1e3e6982018-08-03 16:09:28 -0700106 }
107 },
Patrick Williamsfa8ee872022-12-07 07:00:42 -0600108 "required": ["Exposes", "Name", "Probe", "Type"]
James Feist1e3e6982018-08-03 16:09:28 -0700109 }
Brad Bishop8e659b52020-05-07 17:31:04 -0400110 },
Brad Bishop2189d612020-05-07 19:27:44 -0400111 "title": "Entity Manager Configuration File",
Andrew Jefferybb8aa372024-03-20 11:24:32 +1030112 "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 +0100113 "oneOf": [
Brad Bishop8e659b52020-05-07 17:31:04 -0400114 {
115 "type": "array",
116 "items": {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400117 "$ref": "#/$defs/EMConfig"
Brad Bishop8e659b52020-05-07 17:31:04 -0400118 }
119 },
120 {
Patrick Williams7d6080d2024-09-04 12:54:45 -0400121 "$ref": "#/$defs/EMConfig"
Brad Bishop8e659b52020-05-07 17:31:04 -0400122 }
James Feist1e3e6982018-08-03 16:09:28 -0700123 ]
124}