public ProgressEvent handleRequest()

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);
    }