in src/main/java/software/amazon/encryption/s3/S3AsyncEncryptionClient.java [221:235]
public CompletableFuture<DeleteObjectResponse> deleteObject(DeleteObjectRequest deleteObjectRequest) {
final DeleteObjectRequest actualRequest = deleteObjectRequest.toBuilder()
.overrideConfiguration(API_NAME_INTERCEPTOR)
.build();
final CompletableFuture<DeleteObjectResponse> response = _wrappedClient.deleteObject(actualRequest);
final String instructionObjectKey = deleteObjectRequest.key() + ".instruction";
final CompletableFuture<DeleteObjectResponse> instructionResponse = _wrappedClient.deleteObject(builder -> builder
.overrideConfiguration(API_NAME_INTERCEPTOR)
.bucket(deleteObjectRequest.bucket())
.key(instructionObjectKey));
// Delete the instruction file, then delete the object
Function<DeleteObjectResponse, DeleteObjectResponse> deletion = deleteObjectResponse ->
response.join();
return instructionResponse.thenApplyAsync(deletion);
}