public final OperationCallable<UploadAssetRequest, UploadAssetResponse, UploadAssetMetadata>
      uploadAssetOperationCallable() {
    return stub.uploadAssetOperationCallable();
  }
Upload asset by specifing the asset Cloud Storage uri. For video warehouse, it requires users
who call this API have read access to the cloud storage file. Once it is uploaded, it can be
retrieved by GenerateRetrievalUrl API which by default, only can retrieve cloud storage files
from the same project of the warehouse. To allow retrieval cloud storage files that are in a
separate project, it requires to find the vision ai service account (Go to IAM, check checkbox
to show "Include Google-provided role grants", search for "Cloud Vision AI Service Agent") and
grant the read access of the cloud storage files to that service account.

<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()) {
  UploadAssetRequest request =
      UploadAssetRequest.newBuilder()
          .setName(
              AssetName.of("[PROJECT_NUMBER]", "[LOCATION]", "[CORPUS]", "[ASSET]").toString())
          .setAssetSource(AssetSource.newBuilder().build())
          .build();
  OperationFuture<UploadAssetResponse, UploadAssetMetadata> future =
      warehouseClient.uploadAssetOperationCallable().futureCall(request);
  // Do something.
  UploadAssetResponse response = future.get();
}
}</pre>
java-visionai/google-cloud-visionai/src/main/java/com/google/cloud/visionai/v1/WarehouseClient.java