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: path
          description: >
            The object path for which the result should be fetched.
        - name: interfaces
          type: array[string]
          description: >
            An array of result set constraining interfaces.
      returns:
        - name: services
          type: dict[string,array[string]]
          description: >
            A dictionary of service -> implemented interface(s).
      errors:
        - xyz.openbmc_project.Common.Error.ResourceNotFound
    - 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: path
          description: >
            The path for which the result should be fetched.
        - name: interfaces
          type: array[string]
          description: >
            An array of result set constraining interfaces.
      returns:
        - name: ancestors
          type: dict[path,dict[string,array[string]]]
          description: >
            A dictionary of ancestor -> services.
      errors:
        - xyz.openbmc_project.Common.Error.ResourceNotFound
    - 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: path
          description: >
            The subtree path for which the result should be fetched.
        - name: depth
          type: int32
          description: >
            The maximum subtree depth for which results should be fetched.
            For unconstrained fetches use a depth of zero.
        - name: interfaces
          type: array[string]
          description: >
            An array of result set constraining interfaces.
      returns:
        - name: objects
          type: dict[path,dict[string,array[string]]]
          description: >
            A dictionary of path -> services.
      errors:
        - xyz.openbmc_project.Common.Error.ResourceNotFound
    - name: GetSubTreePaths
      description: >
          Obtain an array of paths where array elements are in subtree.
      parameters:
        - name: subtree
          type: path
          description: >
            The subtree path for which the result should be fetched.
        - name: depth
          type: int32
          description: >
            The maximum subtree depth for which results should be fetched.
            For unconstrained fetches use a depth of zero.
        - name: interfaces
          type: array[string]
          description: >
            An array of result set constraining interfaces.
      returns:
        - name: paths
          type: array[path]
          description: >
            An array of paths.
      errors:
        - xyz.openbmc_project.Common.Error.ResourceNotFound
