code: @BetaApi(
        "The surface for long-running operations is not stable yet and may change in the future.")
    public final OperationFuture<Instance, Any> updateInstanceAsync(
        FieldMask updateMask, Instance instance) {
  
      UpdateInstanceRequest request =
          UpdateInstanceRequest.newBuilder().setUpdateMask(updateMask).setInstance(instance).build();
      return updateInstanceAsync(request);
    }
docs: Updates the metadata and configuration of a specific Redis instance.
  
  <p>Completed longrunning.Operation will contain the new instance object in the response field.
  The returned operation is automatically deleted after a few hours, so there is no need to call
  DeleteOperation.
  
  <p>Sample code:
  
  <pre><code>
  try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
  String pathsElement = "display_name";
  String pathsElement2 = "memory_size_gb";
  List&lt;String&gt; paths = Arrays.asList(pathsElement, pathsElement2);
  FieldMask updateMask = FieldMask.newBuilder()
  .addAllPaths(paths)
  .build();
  String displayName = "UpdatedDisplayName";
  int memorySizeGb = 4;
  Instance instance = Instance.newBuilder()
  .setDisplayName(displayName)
  .setMemorySizeGb(memorySizeGb)
  .build();
  Instance response = cloudRedisClient.updateInstanceAsync(updateMask, instance).get();
  }
  </code></pre>
  
  @param updateMask Required. Mask of fields to update. At least one path must be supplied in
  this field. The elements of the repeated paths field may only include these fields from
  [Instance][google.cloud.redis.v1beta1.Instance]:
  <p>&#42; `displayName` &#42; `labels` &#42; `memorySizeGb` &#42; `redisConfig`
  @param instance Required. Update description. Only fields specified in update_mask are updated.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails