inventory: decorators: add compatible interface

Add a new classification interface for inventory.

Prior to this patch inventory could be typed by class e.g.: dimm, cpu,
system and by model or part number
(xyz.openbmc_project.Inventory.Decorator.Asset).

This patch adds another way to classify inventory; "compatibles" where
compatibles are more granular then class and less granular than model or
part number.

Obviously not all instances of a class of inventory are the same.  And
vendors often give the same entities different model/part numbers.  This
leaves software without any suitable query identifiers for determining,
or publishing, the relevant (to software) characteristics of the
inventory item.

As a concrete example, consider a data driven application that supports
a number of different power supplies by means of a hardware database.
Futher consider that one power supply vendor releases the same physical
power supply with 5 different model numbers.  Instead of requiring the
application to maintain aliases for each model number, implement
xyz.openbmc_project.Inventory.Decorator.Compatible.

Change-Id: If90b5932d58bedc2d82c7c26a486ed23b3d52f1a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml b/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml
new file mode 100644
index 0000000..1f86b3a
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml
@@ -0,0 +1,13 @@
+description: >
+    Inventory component manufacturers can provide different model identifiers
+    (xyz.openbmc_project.Inventory.Decorator.Asset) for their components that
+    don't require different software configurations.
+
+    xyz.openbmc_project.Inventory.Decorator.Compatible can be implemented to
+    add an additional, more generalized dimension of classification to
+    inventory components.
+properties:
+    - name: Names
+      type: array[string]
+      description: >
+          The names that are compatible with the inventory item.