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: object_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: object_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[object_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: object_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[object_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: object_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[object_path]
            description: >
                An array of paths.
      errors:
          - xyz.openbmc_project.Common.Error.ResourceNotFound
    - name: GetAssociatedSubTree
      description: >
          Same as GetSubTree, but only return the dbus paths that are an
          association endpoint on associatedPath
      parameters:
          - name: associatedPath
            type: object_path
            description: >
                The path where the associated endpoint is fetched from.
          - name: subtree
            type: object_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[object_path,dict[string,array[string]]]
            description: >
                A dictionary of path -> services.
      errors:
          - xyz.openbmc_project.Common.Error.ResourceNotFound
    - name: GetAssociatedSubTreePaths
      description: >
          Same as GetSubTreePaths, but only return the dbus paths that are an
          association endpoint on associatedPath
      parameters:
          - name: associatedPath
            type: object_path
            description: >
                The path where the associated endpoint is fetched from.
          - name: subtree
            type: object_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[object_path]
            description: >
                An array of paths.
      errors:
          - xyz.openbmc_project.Common.Error.ResourceNotFound
