Entity manager configuration file schema
----------------------------------------

Entity manager configuration files are JSON documents and can be validated with
a JSON schema[1].  This document provides an overview of the general structure
of an entity manager configuration file.

An entity manager configuration file consists of one or more entity manager
configurations.  This provides flexibility for system designers - the
configuration data for an entire platform or set of platforms can be expressed
in a single file, or can be organized into several smaller files.  Thus, the
top most schema describes a single object or an array of objects.

To remain consistent with the OpenBMC CPP source code file name guidelines,
entity manager configuration file and schema file names must be
lower_snake_case.

A single entity manager configuration
----------------------------------------
At its core entity manager simply exports objects onto DBus when a specific
event occurs.  As such, an entity manager configuration provides a syntax for
describing the dbus interfaces to export, the object paths on which to add the
interfaces and the event that should trigger the export.  This is accomplished
with four properties.

Type
----------------------------------------
The type property identifies the type of the configuration.  When exported,
configuration data will be instantiated as grandchildren of
/xyz/openbmc_project/inventory/system/<Type>.  For a comprehensive list of
supported types, consult the schema (global.json).

Name
----------------------------------------
The name property identifies the name of the configuration.  When exported,
configuration data will be instantiated as children of
/xyz/openbmc_project/inventory/system/<Type>/<Name>.  Additionally, any DBus
interfaces listed in openbmc-dbus.json will be added on
/xyz/openbmc_project/inventory/system/<Type>/<Name>.

Probe
----------------------------------------
The probe property describes the event which will cause entity manager to
export the configuration to DBus, making it available to other applications.

Exposes
----------------------------------------
The exposes property describes the configuration data at its most specific
level.  The exposes property is an array of heterogeneous configuration data.
Each exposes element has its own schema which is outlined by the subschemas in
the schemas directory.  Each schema must require a type and name (not to be
confused with the Type and Name properties of the parent JSON object) property
since entity manager will construct the Dbus interface name and object path
based on those properties:

/xyz/openbmc_project/inventory/system/Board/RiserCard1/<Name>:
   xyz.openbmc_project.Configuration.<Type>:
     <remaining properties defined by exposes subschema>

Adding new exposes property subschema
----------------------------------------
New subschema for the exposes property must be added to the schema directory,
and then referenced from global.json at /definitions/EMExposesElement.  Exposes
element subschema must require a type and name property (the validator will
fail otherwise) and should explicitly enumerate all properties and use
additionalProperties so mistakes can be found
during validation.

Adding new Dbus interfaces
----------------------------------------
To export new interfaces on the configuration parent object e.g.:
/xyz/openbmc_project/inventory/system/Board/RiserCard1 add additional subschema
to openbmc-dbus.json.

[1] https://json-schema.org/
