code: @BetaApi(
        "The surface for long-running operations is not stable yet and may change in the future.")
    public final OperationFuture<BatchPredictResult, OperationMetadata> batchPredictAsync(
        BatchPredictRequest request) {
      return batchPredictOperationCallable().futureCall(request);
    }
docs: Perform a batch prediction. Unlike the online
  [Predict][google.cloud.automl.v1beta1.PredictionService.Predict], batch prediction result won't
  be immediately available in the response. Instead, a long running operation object is returned.
  User can poll the operation result via
  [GetOperation][google.longrunning.Operations.GetOperation] method. Once the operation is done,
  [BatchPredictResult][google.cloud.automl.v1beta1.BatchPredictResult] is returned in the
  [response][google.longrunning.Operation.response] field. Available for following ML problems:
  &#42; Video Classification &#42; Text Extraction &#42; Tables
  
  <p>Sample code:
  
  <pre><code>
  try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
  ModelName name = ModelName.of("[PROJECT]", "[LOCATION]", "[MODEL]");
  BatchPredictInputConfig inputConfig = BatchPredictInputConfig.newBuilder().build();
  BatchPredictOutputConfig outputConfig = BatchPredictOutputConfig.newBuilder().build();
  BatchPredictRequest request = BatchPredictRequest.newBuilder()
  .setName(name.toString())
  .setInputConfig(inputConfig)
  .setOutputConfig(outputConfig)
  .build();
  BatchPredictResult response = predictionServiceClient.batchPredictAsync(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