public CompletableFuture<List<Response<Void>>> deleteBatch(List<CloudBlobMetadata> batchOfBlobs) {
    return FutureUtils.retry(() -> {
      List<Response<Void>> responseList = new ArrayList<>();
      BlobBatch blobBatch = blobBatchAsyncClientRef.get().getBlobBatch();
      for (CloudBlobMetadata blobMetadata : batchOfBlobs) {
        AzureBlobLayoutStrategy.BlobLayout blobLayout = blobLayoutStrategy.getDataBlobLayout(blobMetadata);
        responseList.add(blobBatch.deleteBlob(blobLayout.containerName, blobLayout.blobFilePath));
      }
      return blobBatchAsyncClientRef.get()
          .submitBatchWithResponse(blobBatch, false)
          .toFuture()
          .thenApply(response -> responseList);
    }, retries, retryPredicate, this::onRetriableError, this::onError);
  }
Deletes a list of blobs asynchronously.
@param batchOfBlobs {@link List} of {@link CloudBlobMetadata} objects.
@return a {@link CompletableFuture} that will eventually contain {@link List} of {@link Response}s for the blobs
        in the batch or an exception if an error occurred.
ambry-cloud/src/main/java/com/github/ambry/cloud/azure/StorageClient.java