code: public static <T> ApiFuture<T> createApiFuture(ValueSourceFuture<T> valueSourceFuture) {
          if (valueSourceFuture instanceof ApiFutureBackedValueSourceFuture) {
              return ((ApiFutureBackedValueSourceFuture<T>) valueSourceFuture).getWrappedFuture();
          } else {
              return new ValueSourceFutureBackedApiFuture<>(valueSourceFuture);
          }
      }
docs: Creates api future from ValueSourceFuture. We have to send all Future API calls to ValueSourceFuture.