code: @BetaApi(
        "The surface for long-running operations is not stable yet and may change in the future.")
    public final OperationFuture<Cluster, CreateClusterMetadata> createClusterAsync(
        InstanceName parent, String clusterId, Cluster cluster) {
  
      CreateClusterRequest request =
          CreateClusterRequest.newBuilder()
              .setParent(parent == null ? null : parent.toString())
              .setClusterId(clusterId)
              .setCluster(cluster)
              .build();
      return createClusterAsync(request);
    }
docs: Creates a cluster within an instance.
  
  <p>Sample code:
  
  <pre><code>
  try (BaseBigtableInstanceAdminClient baseBigtableInstanceAdminClient = BaseBigtableInstanceAdminClient.create()) {
  InstanceName parent = InstanceName.of("[PROJECT]", "[INSTANCE]");
  String clusterId = "";
  Cluster cluster = Cluster.newBuilder().build();
  Cluster response = baseBigtableInstanceAdminClient.createClusterAsync(parent, clusterId, cluster).get();
  }
  </code></pre>
  
  @param parent The unique name of the instance in which to create the new cluster. Values are of
  the form `projects/&lt;project&gt;/instances/&lt;instance&gt;`.
  @param clusterId The ID to be used when referring to the new cluster within its instance, e.g.,
  just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`.
  @param cluster The cluster to be created. Fields marked `OutputOnly` must be left blank.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails