public final OperationFuture<Index, CreateIndexMetadata> createIndexAsync(
      CorpusName parent, Index index, String indexId) {
    CreateIndexRequest request =
        CreateIndexRequest.newBuilder()
            .setParent(parent == null ? null : parent.toString())
            .setIndex(index)
            .setIndexId(indexId)
            .build();
    return createIndexAsync(request);
  }
Creates an Index under the corpus.

<p>Sample code:

<pre>{@code
// This snippet has been automatically generated and should be regarded as a code template only.
// It will require modifications to work:
// - It may require correct/in-range values for request initialization.
// - It may require specifying regional endpoints when creating the service client as shown in
// https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
try (WarehouseClient warehouseClient = WarehouseClient.create()) {
  CorpusName parent = CorpusName.of("[PROJECT_NUMBER]", "[LOCATION]", "[CORPUS]");
  Index index = Index.newBuilder().build();
  String indexId = "indexId1943291277";
  Index response = warehouseClient.createIndexAsync(parent, index, indexId).get();
}
}</pre>

@param parent Required. Value for the parent. The resource name of the Corpus under which this
    index is created. Format:
    `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}`
@param index Required. The index being created.
@param indexId Optional. The ID for the index. This will become the final resource name for the
    index. If the user does not specify this value, it will be generated by system.
    <p>This value should be up to 63 characters, and valid characters are /[a-z][0-9]-/. The
    first character must be a letter, the last could be a letter or a number.
@throws com.google.api.gax.rpc.ApiException if the remote call fails
java-visionai/google-cloud-visionai/src/main/java/com/google/cloud/visionai/v1/WarehouseClient.java