public ProgressEvent handleRequest()

in aws-nimblestudio-studiocomponent/src/main/java/software/amazon/nimblestudio/studiocomponent/ListHandler.java [26:80]


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

        final ListStudioComponentsRequest listStudiosRequest = ListStudioComponentsRequest.builder()
                .nextToken(request.getNextToken())
                .studioId(request.getDesiredResourceState().getStudioId())
                .build();

        try {
            final ListStudioComponentsResponse listStudioComponentsResponse =
                    proxyClient.injectCredentialsAndInvokeV2(listStudiosRequest,
                    proxyClient.client()::listStudioComponents);

            final List<StudioComponent> studioComponents =
                    listStudioComponentsResponse.hasStudioComponents() ?
                        listStudioComponentsResponse.studioComponents() :
                        new ArrayList<>();

            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                .resourceModels(studioComponents.stream()
                    .filter(studioComponent ->
                        !StudioComponentState.DELETED.equals(studioComponent.state()) &&
                        !StudioComponentState.CREATE_FAILED.equals(studioComponent.state()))
                    .map(studioComponent -> ResourceModel.builder()
                        .configuration(Translator.toModelStudioComponentConfiguration(studioComponent.configuration()))
                        .description(studioComponent.description())
                        .initializationScripts(Translator.toModelStudioComponentInitializationScripts(studioComponent))
                        .name(studioComponent.name())
                        .scriptParameters(studioComponent.scriptParameters().stream()
                            .map(param ->
                                ScriptParameterKeyValue.builder()
                                    .key(param.key())
                                    .value(param.value())
                                    .build())
                            .collect(Collectors.toList()))
                        .ec2SecurityGroupIds(studioComponent.ec2SecurityGroupIds())
                        .studioComponentId(studioComponent.studioComponentId())
                        .studioId(request.getDesiredResourceState().getStudioId())
                        .subtype(studioComponent.subtype().toString())
                        .type(studioComponent.type().toString())
                        .tags(studioComponent.tags())
                        .build())
                    .collect(toList()))
                .nextToken(listStudioComponentsResponse.nextToken())
                .status(OperationStatus.SUCCESS)
                .build();
        } catch (final NimbleException e) {
            logger.log(String.format("Exception during list: %s.", ResourceModel.TYPE_NAME));
            throw ExceptionTranslator.translateToCfnException(e);
        }
    }