code: @BetaApi(
        "The surface for long-running operations is not stable yet and may change in the future.")
    public final OperationFuture<Cluster, UpdateClusterMetadata> updateClusterAsync(Cluster request) {
      return updateClusterOperationCallable().futureCall(request);
    }
docs: Updates a cluster within an instance.
  
  <p>Sample code:
  
  <pre><code>
  try (BaseBigtableInstanceAdminClient baseBigtableInstanceAdminClient = BaseBigtableInstanceAdminClient.create()) {
  ClusterName name = ClusterName.of("[PROJECT]", "[INSTANCE]", "[CLUSTER]");
  int serveNodes = 0;
  Cluster request = Cluster.newBuilder()
  .setName(name.toString())
  .setServeNodes(serveNodes)
  .build();
  Cluster response = baseBigtableInstanceAdminClient.updateClusterAsync(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