code: @SuppressWarnings("WeakerAccess")
    public ApiFuture<Instance> getInstanceAsync(String instanceId) {
      String name = NameUtil.formatInstanceName(projectId, instanceId);
  
      com.google.bigtable.admin.v2.GetInstanceRequest request =
          com.google.bigtable.admin.v2.GetInstanceRequest.newBuilder().setName(name).build();
  
      return ApiFutures.transform(
          stub.getInstanceCallable().futureCall(request),
          new ApiFunction<com.google.bigtable.admin.v2.Instance, Instance>() {
            @Override
            public Instance apply(com.google.bigtable.admin.v2.Instance proto) {
              return Instance.fromProto(proto);
            }
          },
          MoreExecutors.directExecutor());
    }
docs: Asynchronously gets the instance representation by ID wrapped in a future.
  
  <p>Sample code:
  
  <pre>{@code
  ApiFuture<Instance> instanceFuture = client.getInstanceAsync("my-instance");
  Instance instance = instanceFuture.get();
  }</pre>