public ProgressEvent handleRequest()

in aws-nimblestudio-streamingimage/src/main/java/software/amazon/nimblestudio/streamingimage/ListHandler.java [24:77]


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

        final ListStreamingImagesRequest listStreamingImagesRequest =
            ListStreamingImagesRequest.builder()
                .nextToken(request.getNextToken())
                .studioId(request.getDesiredResourceState().getStudioId())
                .build();

        try {
            final ListStreamingImagesResponse listStreamingImagesResponse = proxyClient.injectCredentialsAndInvokeV2(
                    listStreamingImagesRequest, proxyClient.client()::listStreamingImages);

            final List<StreamingImage> streamingImages = listStreamingImagesResponse.hasStreamingImages() ?
                listStreamingImagesResponse.streamingImages() :
                new ArrayList<>();

            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                .status(OperationStatus.SUCCESS)
                .resourceModels(streamingImages.stream()
                    .filter(streamingImage -> !StreamingImageState.DELETED.equals(streamingImage.state()))
                    .map(streamingImage -> {
                        ResourceModel.ResourceModelBuilder modelBuilder = ResourceModel.builder()
                            .studioId(request.getDesiredResourceState().getStudioId())
                            .streamingImageId(streamingImage.streamingImageId())
                            .ec2ImageId(streamingImage.ec2ImageId())
                            .name(streamingImage.name())
                            .description(streamingImage.description())
                            .owner(streamingImage.owner())
                            .eulaIds(streamingImage.eulaIds())
                            .platform(streamingImage.platform())
                            .tags(streamingImage.tags());

                        if(streamingImage.encryptionConfiguration() != null) {
                            modelBuilder.encryptionConfiguration(StreamingImageEncryptionConfiguration.builder()
                                .keyType(streamingImage.encryptionConfiguration().keyTypeAsString())
                                .keyArn(streamingImage.encryptionConfiguration().keyArn())
                                .build());
                        }

                        return modelBuilder.build();
                    })
                .collect(toList()))
                .nextToken(listStreamingImagesResponse.nextToken())
                .build();
        } catch (final NimbleException e) {
            logger.log(String.format("Exception during list: %s.", ResourceModel.TYPE_NAME));
            throw ExceptionTranslator.translateToCfnException(e);
        }
    }