code: @BetaApi(
        "The surface for long-running operations is not stable yet and may change in the future.")
    public final OperationFuture<Database, CreateDatabaseMetadata> createDatabaseAsync(
        CreateDatabaseRequest request) {
      return createDatabaseOperationCallable().futureCall(request);
    }
docs: Creates a new Cloud Spanner database and starts to prepare it for serving. The returned
  [long-running operation][google.longrunning.Operation] will have a name of the format
  `&lt;database_name&gt;/operations/&lt;operation_id&gt;` and can be used to track preparation of
  the database. The [metadata][google.longrunning.Operation.metadata] field type is
  [CreateDatabaseMetadata][google.spanner.admin.database.v1.CreateDatabaseMetadata]. The
  [response][google.longrunning.Operation.response] field type is
  [Database][google.spanner.admin.database.v1.Database], if successful.
  
  <p>Sample code:
  
  <pre><code>
  try (DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.create()) {
  InstanceName parent = InstanceName.of("[PROJECT]", "[INSTANCE]");
  String createStatement = "";
  CreateDatabaseRequest request = CreateDatabaseRequest.newBuilder()
  .setParent(parent.toString())
  .setCreateStatement(createStatement)
  .build();
  Database response = databaseAdminClient.createDatabaseAsync(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