Add inventory interfaces for OpenBMC

A first pass at a machine parseable DBus specification for the
inventory features of OpenBMC.

Change-Id: Ia061ab2d5c2ea9d06cd991940303250cef48ab66
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/xyz/openbmc_project/Inventory/Item.interface.yaml b/xyz/openbmc_project/Inventory/Item.interface.yaml
new file mode 100644
index 0000000..dfae631
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item.interface.yaml
@@ -0,0 +1,14 @@
+description: >
+    Implement to provide basic item attributes.  Required by all objects
+    within the inventory namespace.
+properties:
+    - name: PrettyName
+      type: s
+      description: >
+          The human readable name of the item.
+    - name: Present
+      type: b
+      description: >
+          Whether or not the item is present.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Item/Asset.interface.yaml b/xyz/openbmc_project/Inventory/Item/Asset.interface.yaml
new file mode 100644
index 0000000..96f1837
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Asset.interface.yaml
@@ -0,0 +1,17 @@
+description: >
+    Implement to provide item physical asset attributes.
+properties:
+    - name: PartNumber
+      type: s
+      description: >
+          The item part number.
+    - name: SerialNumber
+      type: s
+      description: >
+          The item serial number.
+    - name: Manufacturer
+      type: s
+      description: >
+          The item manufacturer.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Item/Cacheable.interface.yaml b/xyz/openbmc_project/Inventory/Item/Cacheable.interface.yaml
new file mode 100644
index 0000000..210c132
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Cacheable.interface.yaml
@@ -0,0 +1,10 @@
+description: >
+    Implement to indicate item availability changes.
+properties:
+    - name: Cached
+      type: b
+      description: >
+          Whether or not the item is cached.  When true, the item
+          and its remaining attributes are undefined.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml b/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml
new file mode 100644
index 0000000..ab29cf3
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml
@@ -0,0 +1,4 @@
+description: >
+    Implement to provide CPU attributes.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Item/CpuCore.interface.yaml b/xyz/openbmc_project/Inventory/Item/CpuCore.interface.yaml
new file mode 100644
index 0000000..90e6886
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/CpuCore.interface.yaml
@@ -0,0 +1,4 @@
+description: >
+    Implement to provide CPU core attributes.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml b/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
new file mode 100644
index 0000000..d85326d
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
@@ -0,0 +1,4 @@
+description: >
+    Implement to provide DIMM attributes.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Item/Fan.interface.yaml b/xyz/openbmc_project/Inventory/Item/Fan.interface.yaml
new file mode 100644
index 0000000..dccc519
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Fan.interface.yaml
@@ -0,0 +1,4 @@
+description: >
+    Implement to provide Fan attributes.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Item/PowerSupply.interface.yaml b/xyz/openbmc_project/Inventory/Item/PowerSupply.interface.yaml
new file mode 100644
index 0000000..9cf016c
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/PowerSupply.interface.yaml
@@ -0,0 +1,4 @@
+description: >
+    Implement to provide PowerSupply attributes.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Item/Replaceable.interface.yaml b/xyz/openbmc_project/Inventory/Item/Replaceable.interface.yaml
new file mode 100644
index 0000000..7d461f0
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Replaceable.interface.yaml
@@ -0,0 +1,9 @@
+description: >
+    Implement to provide item replacement attributes.
+properties:
+    - name: FieldReplaceable
+      type: b
+      description: >
+          Whether or not the item is field replaceable.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Item/Revision.interface.yaml b/xyz/openbmc_project/Inventory/Item/Revision.interface.yaml
new file mode 100644
index 0000000..18a7637
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Item/Revision.interface.yaml
@@ -0,0 +1,9 @@
+description: >
+    Implement to provide item versioning attributes.
+properties:
+    - name: Version
+      type: s
+      description: >
+          The item version.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/xyz/openbmc_project/Inventory/Manager.interface.yaml b/xyz/openbmc_project/Inventory/Manager.interface.yaml
new file mode 100644
index 0000000..f5b235c
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Manager.interface.yaml
@@ -0,0 +1,24 @@
+description: >
+    Implement to provide inventory management features.
+
+    An OpenBMC implementation providing inventory functions may provide zero
+    or more implementations on the inventory namespace root.  An implementing
+    service should additionally implement org.freedesktop.DBus.ObjectManager
+    on the inventory namespace root.
+methods:
+    - name: Notify
+      description: >
+          Signal the implementing service that an item is ready to have its
+          state managed.
+      parameters:
+        - name: path
+          type: o
+          description: >
+              The path of the item to be managed, relative to the inventory
+              namespace root.
+        - name: object
+          type: a{sa{sv}}
+          description: >
+              The fully enumerated item to be managed.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4