code: @BetaApi(
        "The surface for long-running operations is not stable yet and may change in the future.")
    public final OperationFuture<AnnotateVideoResponse, AnnotateVideoProgress> annotateVideoAsync(
        String inputUri, List<Feature> features) {
  
      AnnotateVideoRequest request =
          AnnotateVideoRequest.newBuilder().setInputUri(inputUri).addAllFeatures(features).build();
      return annotateVideoAsync(request);
    }
docs: Performs asynchronous video annotation. Progress and results can be retrieved through the
  `google.longrunning.Operations` interface. `Operation.metadata` contains
  `AnnotateVideoProgress` (progress). `Operation.response` contains `AnnotateVideoResponse`
  (results).
  
  <p>Sample code:
  
  <pre><code>
  try (VideoIntelligenceServiceClient videoIntelligenceServiceClient = VideoIntelligenceServiceClient.create()) {
  String inputUri = "gs://demomaker/cat.mp4";
  Feature featuresElement = Feature.LABEL_DETECTION;
  List&lt;Feature&gt; features = Arrays.asList(featuresElement);
  AnnotateVideoResponse response = videoIntelligenceServiceClient.annotateVideoAsync(inputUri, features).get();
  }
  </code></pre>
  
  @param inputUri Input video location. Currently, only [Google Cloud
  Storage](https://cloud.google.com/storage/) URIs are supported, which must be specified in
  the following format: `gs://bucket-id/object-id` (other URI formats return
  [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]). For more
  information, see [Request URIs](/storage/docs/reference-uris). A video URI may include
  wildcards in `object-id`, and thus identify multiple videos. Supported wildcards: '&#42;'
  to match 0 or more characters; '?' to match 1 character. If unset, the input video should
  be embedded in the request as `input_content`. If set, `input_content` should be unset.
  @param features Requested video annotation features.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails