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
