public ProgressEvent handleRequest()

in aws-cloudformation-resourceversion/src/main/java/software/amazon/cloudformation/resourceversion/ListHandler.java [15:39]


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

        final ResourceModel resourceModel = request.getDesiredResourceState() == null
                ? ResourceModel.builder().build()
                : request.getDesiredResourceState();
        final CallChain.Initiator<CloudFormationClient, ResourceModel, CallbackContext> initiator =
                proxy.newInitiator(proxyClient, resourceModel, callbackContext);

        logger.log(String.format("List the resource version with identifier %s", resourceModel.getArn()));
        return initiator
                .translateToServiceRequest((model) -> Translator.translateToListRequest(resourceModel, request.getNextToken()))
                .makeServiceCall((awsRequest, sdkProxyClient) -> sdkProxyClient.injectCredentialsAndInvokeV2(awsRequest, sdkProxyClient.client()::listTypeVersions))
                .done((listTypesRequest, listTypesResponse, sdkProxyClient, model, cc) ->
                        ProgressEvent.<ResourceModel, CallbackContext>builder()
                                .status(OperationStatus.SUCCESS)
                                .resourceModels(Translator.translateFromListResponse(listTypesResponse))
                                .nextToken(listTypesResponse.nextToken())
                                .build()
                );
    }