public ProgressEvent handleRequest()

in deliverystream/src/main/java/com/amazonaws/kinesisfirehose/deliverystream/ListHandler.java [22:53]


    public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
            final AmazonWebServicesClientProxy proxy,
            final ResourceHandlerRequest<ResourceModel> request,
            final CallbackContext callbackContext,
            final Logger logger) {

        val firehoseAPIWrapper = FirehoseAPIWrapper.builder().firehoseClient(firehoseClient)
            .clientProxy(proxy)
            .build();
        List<ResourceModel> models = new ArrayList<>();
        try {
            val response = firehoseAPIWrapper.listDeliveryStreams(request.getNextToken(), LIST_RESULT_LIMIT);
            val deliveryStreams = response.deliveryStreamNames();
            models.addAll(deliveryStreams.stream()
                    .map(deliverystream ->
                            ResourceModel.builder().deliveryStreamName(deliverystream).build())
                    .collect(Collectors.toList()));
            if (response.deliveryStreamNames().size() == 0 || !response.hasMoreDeliveryStreams()) {
                request.setNextToken(null);
            } else {
                request.setNextToken(deliveryStreams.get(deliveryStreams.size() - 1));
            }

            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                    .resourceModels(models)
                    .nextToken(request.getNextToken())
                    .status(OperationStatus.SUCCESS)
                    .build();
        } catch (Exception e) {
            return ProgressEvent.defaultFailureHandler(e, ExceptionMapper.mapToHandlerErrorCode(e, HandlerType.LIST));
        }
    }