code: def get_repository_node_ids(self, repository_id, ancestor_levels, descendant_levels, include_siblings):
          
          # Implemented from template for
          # osid.resource.BinHierarchySession.get_bin_node_ids
          if self._catalog_session is not None:
              return self._catalog_session.get_catalog_node_ids(
                  catalog_id=repository_id,
                  ancestor_levels=ancestor_levels,
                  descendant_levels=descendant_levels,
                  include_siblings=include_siblings)
          return self._hierarchy_session.get_nodes(
              id_=repository_id,
              ancestor_levels=ancestor_levels,
              descendant_levels=descendant_levels,
              include_siblings=include_siblings)
docs: Gets a portion of the hierarchy for the given repository.
  
          arg:    repository_id (osid.id.Id): the ``Id`` to query
          arg:    ancestor_levels (cardinal): the maximum number of
                  ancestor levels to include. A value of 0 returns no
                  parents in the node.
          arg:    descendant_levels (cardinal): the maximum number of
                  descendant levels to include. A value of 0 returns no
                  children in the node.
          arg:    include_siblings (boolean): ``true`` to include the
                  siblings of the given node, ``false`` to omit the
                  siblings
          return: (osid.hierarchy.Node) - the specified repository node
          raise:  NotFound - ``repository_id`` not found
          raise:  NullArgument - ``repository_id`` is ``null``
          raise:  OperationFailed - unable to complete request
          raise:  PermissionDenied - authorization failure
          *compliance: mandatory -- This method must be implemented.*