Document existing ObjectMapper interface

With one caveat - moved to xyz namespace.

Change-Id: I14bdd1d0bdae8879cdbf976184e1aa462a254281
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/xyz/openbmc_project/ObjectMapper.interface.yaml b/xyz/openbmc_project/ObjectMapper.interface.yaml
new file mode 100644
index 0000000..aa0f6e1
--- /dev/null
+++ b/xyz/openbmc_project/ObjectMapper.interface.yaml
@@ -0,0 +1,75 @@
+description: >
+    Implement to provide DBus service lookup features.
+
+    Any OpenBMC implementation must provide exactly one implementation of
+    xyz.openbmc_project.ObjectMapper on /xyz/openbmc_project/ObjectMapper.
+methods:
+    - name: GetObject
+      description: >
+          Obtain a dictionary of service -> implemented interface(s)
+          for the given path.
+      parameters:
+        - name: path
+          type: s # TODO: o
+          description: >
+            The object path for which the result should be fetched.
+      returns:
+        - name: services
+          type: a{sas}
+          description: >
+            A dictionary of service -> implemented interface(s).
+    - name: GetAncestors
+      description: >
+          Obtain a dictionary of ancestor -> services where ancestor is an
+          ancestor of path and services is of the type returned by the
+          GetObject method.
+      parameters:
+        - name: path
+          type: s # TODO: o
+          description: >
+            The path for which the result should be fetched.
+      returns:
+        - name: ancestors
+          type: a{sa{sas}} # TODO a{oa{sas}}
+          description: >
+            A dictionary of ancestor -> services.
+    - name: GetSubTree
+      description: >
+          Obtain a dictionary of path -> services where path is in
+          sutbtree and services is of the type returned by the
+          GetObject method.
+      parameters:
+        - name: subtree
+          type: s # TODO: o
+          description: >
+            The subtree path for which the result should be fetched.
+        - name: depth
+          type: i
+          description: >
+            The maximum subtree depth for which results should be fetched.
+            For unconstrained fetches use a depth of zero.
+      returns:
+        - name: objects
+          type: a{sa{sas}} # TODO a{oa{sas}}
+          description: >
+            A dictionary of path -> services.
+    - name: GetSubTreePaths
+      description: >
+          Obtain an array of paths where array elements are in subtree.
+      parameters:
+        - name: subtree
+          type: s # TODO: o
+          description: >
+            The subtree path for which the result should be fetched.
+        - name: depth
+          type: i
+          description: >
+            The maximum subtree depth for which results should be fetched.
+            For unconstrained fetches use a depth of zero.
+      returns:
+        - name: paths
+          type: as # TODO ao
+          description: >
+            An array of paths.
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4