code: @BetaApi(
        "The surface for long-running operations is not stable yet and may change in the future.")
    public final OperationFuture<AsyncBatchAnnotateImagesResponse, OperationMetadata>
        asyncBatchAnnotateImagesAsync(AsyncBatchAnnotateImagesRequest request) {
      return asyncBatchAnnotateImagesOperationCallable().futureCall(request);
    }
docs: Run asynchronous image detection and annotation for a list of images.
  
  <p>Progress and results can be retrieved through the `google.longrunning.Operations` interface.
  `Operation.metadata` contains `OperationMetadata` (metadata). `Operation.response` contains
  `AsyncBatchAnnotateImagesResponse` (results).
  
  <p>This service will write image annotation outputs to json files in customer GCS bucket, each
  json file containing BatchAnnotateImagesResponse proto.
  
  <p>Sample code:
  
  <pre><code>
  try (ImageAnnotatorClient imageAnnotatorClient = ImageAnnotatorClient.create()) {
  List&lt;AnnotateImageRequest&gt; requests = new ArrayList&lt;&gt;();
  OutputConfig outputConfig = OutputConfig.newBuilder().build();
  AsyncBatchAnnotateImagesRequest request = AsyncBatchAnnotateImagesRequest.newBuilder()
  .addAllRequests(requests)
  .setOutputConfig(outputConfig)
  .build();
  AsyncBatchAnnotateImagesResponse response = imageAnnotatorClient.asyncBatchAnnotateImagesAsync(request).get();
  }
  </code></pre>
  
  @param request The request object containing all of the parameters for the API call.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails