11e3e6989SJames Feist{
264d7ceccSBrad Bishop    "$schema": "http://json-schema.org/draft-07/schema#",
38e659b5bSBrad Bishop    "definitions": {
4ada40c59SBrad Bishop        "EMExposesElement": {
5bb8aa370SAndrew Jeffery            "description": "The exposes property element schema.  An element of the exposes property is always an array where elements are of type exposes entry.",
6*d96439a2SAndrew Jeffery            "anyOf": [
7ada40c59SBrad Bishop                {
804b0b013SChris Cain                    "$ref": "ibm.json#/definitions/PowerModeProperties"
904b0b013SChris Cain                },
1004b0b013SChris Cain                {
117d05ee59SBrad Bishop                    "$ref": "ibm.json#/definitions/IBMCompatibleSystem"
12648ae63bSBrad Bishop                },
13648ae63bSBrad Bishop                {
147d05ee59SBrad Bishop                    "$ref": "ibm.json#/definitions/IBMCFFPSConnector"
154afe7085SBrad Bishop                },
164afe7085SBrad Bishop                {
177d05ee59SBrad Bishop                    "$ref": "intel.json#/definitions/IntelFanConnector"
18dc10828fSBrad Bishop                },
19dc10828fSBrad Bishop                {
207d05ee59SBrad Bishop                    "$ref": "pid.json#/definitions/Pid"
214fa1d399SBrad Bishop                },
224fa1d399SBrad Bishop                {
237d05ee59SBrad Bishop                    "$ref": "pid_zone.json#/definitions/PidZone"
244fa1d399SBrad Bishop                },
254fa1d399SBrad Bishop                {
2648edf9a9SAndrew Geissler                    "$ref": "satellite_controller.json#/definitions/SatelliteController"
2748edf9a9SAndrew Geissler                },
2848edf9a9SAndrew Geissler                {
297d05ee59SBrad Bishop                    "$ref": "stepwise.json#/definitions/Stepwise"
304fa1d399SBrad Bishop                },
314fa1d399SBrad Bishop                {
32ada40c59SBrad Bishop                    "$ref": "legacy.json#/definitions/Aggregate"
33ada40c59SBrad Bishop                },
34ada40c59SBrad Bishop                {
357d05ee59SBrad Bishop                    "$ref": "virtual_sensor.json#/definitions/VirtualSensor"
36e23af564SRashmica Gupta                },
37e23af564SRashmica Gupta                {
38*d96439a2SAndrew Jeffery                    "description": "Ensure the parent anyOf schema does not validate when an element does not define a type property.",
39ada40c59SBrad Bishop                    "not": {
40fa8ee87eSPatrick Williams                        "required": ["Type"]
41ada40c59SBrad Bishop                    },
42ada40c59SBrad Bishop                    "title": "Missing Type"
43ada40c59SBrad Bishop                },
44ada40c59SBrad Bishop                {
45*d96439a2SAndrew Jeffery                    "description": "Ensure the parent anyOf schema does not validate when an element does not define a name property.",
46ada40c59SBrad Bishop                    "not": {
47fa8ee87eSPatrick Williams                        "required": ["Name"]
48ada40c59SBrad Bishop                    },
49ada40c59SBrad Bishop                    "title": "Missing Name"
50ada40c59SBrad Bishop                }
51ada40c59SBrad Bishop            ],
52ada40c59SBrad Bishop            "title": "Exposes Property Element"
53ada40c59SBrad Bishop        },
548e659b5bSBrad Bishop        "EMConfig": {
552189d612SBrad Bishop            "title": "Entity Manager Configuration",
56bb8aa370SAndrew Jeffery            "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.",
579453a68fSBrad Bishop            "additionalProperties": false,
581e3e6989SJames Feist            "type": "object",
591e3e6989SJames Feist            "properties": {
609453a68fSBrad Bishop                "Bus": {
619453a68fSBrad Bishop                    "type": "string"
629453a68fSBrad Bishop                },
631e3e6989SJames Feist                "Exposes": {
64bb8aa370SAndrew Jeffery                    "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.",
651e3e6989SJames Feist                    "type": "array",
661e3e6989SJames Feist                    "items": {
67ada40c59SBrad Bishop                        "$ref": "#/definitions/EMExposesElement"
681e3e6989SJames Feist                    }
691e3e6989SJames Feist                },
709453a68fSBrad Bishop                "Logging": {
71fa8ee87eSPatrick Williams                    "enum": ["Off"]
729453a68fSBrad Bishop                },
731e3e6989SJames Feist                "Name": {
74bb8aa370SAndrew Jeffery                    "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>",
751e3e6989SJames Feist                    "type": "string"
761e3e6989SJames Feist                },
771e3e6989SJames Feist                "Probe": {
78bb8aa370SAndrew Jeffery                    "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.",
791e3e6989SJames Feist                    "anyOf": [
801e3e6989SJames Feist                        {
811e3e6989SJames Feist                            "type": "string"
821e3e6989SJames Feist                        },
831e3e6989SJames Feist                        {
841e3e6989SJames Feist                            "type": "array",
851e3e6989SJames Feist                            "items": {
861e3e6989SJames Feist                                "type": "string"
871e3e6989SJames Feist                            }
881e3e6989SJames Feist                        }
891e3e6989SJames Feist                    ]
901e3e6989SJames Feist                },
9160d93d26SJames Feist                "Type": {
922189d612SBrad Bishop                    "title": "Configuration Type",
93bb8aa370SAndrew Jeffery                    "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>",
94fa8ee87eSPatrick Williams                    "enum": ["Board", "Chassis", "NVMe", "PowerSupply"]
9560d93d26SJames Feist                },
96ab725317SHieu Huynh                "xyz.openbmc_project.Common.UUID": {
97ab725317SHieu Huynh                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Common/UUID"
98ab725317SHieu Huynh                },
991e3e6989SJames Feist                "xyz.openbmc_project.Inventory.Decorator.Asset": {
100b980991bSBrad Bishop                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/Asset"
1011e3e6989SJames Feist                },
10260d93d26SJames Feist                "ProductId": {
10360d93d26SJames Feist                    "type": "number"
10460d93d26SJames Feist                },
10560d93d26SJames Feist                "xyz.openbmc_project.Inventory.Decorator.AssetTag": {
106b980991bSBrad Bishop                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/AssetTag"
10760d93d26SJames Feist                },
10861854782SChau Ly                "xyz.openbmc_project.Inventory.Decorator.Compatible": {
10961854782SChau Ly                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/Compatible"
11061854782SChau Ly                },
111e5c473f7SKumar Thangavel                "xyz.openbmc_project.Inventory.Decorator.Replaceable": {
112e5c473f7SKumar Thangavel                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/Replaceable"
113e5c473f7SKumar Thangavel                },
114ec42f45bSDelphine CC Chiu                "xyz.openbmc_project.Inventory.Decorator.Slot": {
115ec42f45bSDelphine CC Chiu                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/Slot"
116ec42f45bSDelphine CC Chiu                },
117b9dbb8c0SDelphine CC Chiu                "xyz.openbmc_project.Inventory.Decorator.Revision": {
118b9dbb8c0SDelphine CC Chiu                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Decorator/Revision"
119b9dbb8c0SDelphine CC Chiu                },
1209453a68fSBrad Bishop                "xyz.openbmc_project.Inventory.Item.Board.Motherboard": {
1219453a68fSBrad Bishop                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Item/Board/Motherboard"
1229453a68fSBrad Bishop                },
1239453a68fSBrad Bishop                "xyz.openbmc_project.Inventory.Item.Chassis": {
1249453a68fSBrad Bishop                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Item/Chassis"
1259453a68fSBrad Bishop                },
126ca144abdSChau Ly                "xyz.openbmc_project.Inventory.Item.NetworkInterface": {
127ca144abdSChau Ly                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Item/NetworkInterface"
128ca144abdSChau Ly                },
1299453a68fSBrad Bishop                "xyz.openbmc_project.Inventory.Item.Panel": {
1309453a68fSBrad Bishop                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Item/Panel"
1319453a68fSBrad Bishop                },
13260d93d26SJames Feist                "xyz.openbmc_project.Inventory.Item.System": {
133b980991bSBrad Bishop                    "$ref": "openbmc-dbus.json#/definitions/xyz/openbmc_project/Inventory/Item/System"
13460d93d26SJames Feist                }
13560d93d26SJames Feist            },
136fa8ee87eSPatrick Williams            "required": ["Exposes", "Name", "Probe", "Type"]
1371e3e6989SJames Feist        }
1388e659b5bSBrad Bishop    },
1392189d612SBrad Bishop    "title": "Entity Manager Configuration File",
140bb8aa370SAndrew Jeffery    "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.",
1418e659b5bSBrad Bishop    "anyOf": [
1428e659b5bSBrad Bishop        {
1438e659b5bSBrad Bishop            "type": "array",
1448e659b5bSBrad Bishop            "items": {
1458e659b5bSBrad Bishop                "$ref": "#/definitions/EMConfig"
1468e659b5bSBrad Bishop            }
1478e659b5bSBrad Bishop        },
1488e659b5bSBrad Bishop        {
1498e659b5bSBrad Bishop            "$ref": "#/definitions/EMConfig"
1508e659b5bSBrad Bishop        }
1511e3e6989SJames Feist    ]
1521e3e6989SJames Feist}
153