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: string
            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: string
            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[string,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: string
            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[string,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: string
            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[string]
            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[string,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: string
            description: >
                The path where the associated endpoint is fetched from.
          - name: subtree
            type: string
            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[string]
            description: >
                An array of paths.
      errors:
          - xyz.openbmc_project.Common.Error.ResourceNotFound

service_names:
    - default: xyz.openbmc_project.ObjectMapper

paths:
    - instance: /xyz/openbmc_project/object_mapper
