docs: def n1ql_index_watch(self, indexes,
                           timeout=30, interval=0.2, watch_primary=False):
          """
          Await completion of index building
  
          This method will wait up to `timeout` seconds for every index in
          `indexes` to have been built. It will poll the cluster every
          `interval` seconds.
  
          :param list indexes: A list of indexes to check. This is returned by
              :meth:`build_deferred_indexes`
          :param float timeout: How long to wait for the indexes to become ready.
          :param float interval: How often to poll the cluster.
          :param bool watch_primary: Whether to also watch the primary index.
              This parameter should only be used when manually constructing a
              list of string indexes
          :raise: :exc:`~.TimeoutError` if the timeout was reached before all
              indexes were built
          :raise: :exc:`~.NotFoundError` if one of the indexes passed no longer
              exists.
          """
          kwargs = {
              'timeout_us': int(timeout * 1000000),
              'interval_us': int(interval * 1000000)
          }
          ixlist = [N1qlIndex.from_any(x, self._cb.bucket) for x in indexes]
          if watch_primary:
              ixlist.append(
                  N1qlIndex.from_any(N1QL_PRIMARY_INDEX, self._cb.bucket))
          return IxmgmtRequest(self._cb, 'watch', ixlist, **kwargs).execute()