in deliverystream/src/main/java/com/amazonaws/kinesisfirehose/deliverystream/DeleteHandler.java [21:48]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
final ResourceModel model = request.getDesiredResourceState();
val firehoseAPIWrapper = FirehoseAPIWrapper.builder().firehoseClient(firehoseClient).clientProxy(proxy).build();
logger.log(String.format("Delete Handler called with deliveryStream PrimaryId %s", model.getDeliveryStreamName()));
final CallbackContext currentContext = callbackContext == null
? CallbackContext.builder()
.stabilizationRetriesRemaining(NUMBER_OF_STATUS_POLL_RETRIES)
.build()
: callbackContext;
if (callbackContext == null && !HandlerUtils.doesDeliveryStreamExistWithName(model.getDeliveryStreamName(),
firehoseAPIWrapper)) {
final Exception e = ResourceNotFoundException.builder()
.message("Firehose doesn't exist with the name: " + model.getDeliveryStreamName())
.build();
return ProgressEvent.defaultFailureHandler(e, ExceptionMapper.mapToHandlerErrorCode(e, HandlerType.DELETE));
}
// This Lambda will continually be re-invoked with the current state of the instance, finally succeeding when state stabilizes.
return deleteDeliveryStreamAndUpdateProgress(firehoseAPIWrapper, model, currentContext, logger);
}