public ProgressEvent handleRequest()

in aws-cloudformation-resourcedefaultversion/src/main/java/software/amazon/cloudformation/resourcedefaultversion/ReadHandler.java [17:43]


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

        logger.log(String.format("Reading [TypeVersionArn: %s | Type: %s | Version: %s]",
                resourceModel.getTypeVersionArn(), resourceModel.getTypeName(), resourceModel.getVersionId()));

        return proxy.initiate("AWS-CloudFormation-ResourceDefaultVersion::Read", proxyClient, resourceModel, callbackContext)
                .translateToServiceRequest(Translator::translateToReadRequest)
                .makeServiceCall((awsRequest, sdkProxyClient) -> sdkProxyClient.injectCredentialsAndInvokeV2(awsRequest, sdkProxyClient.client()::describeType))
                .handleError((describeTypeRequest, exception, clientProxy, resourcemodel, context) -> {
                    if(exception instanceof TypeNotFoundException) {
                        logger.log(String.format("Failed to Read the resource [%s] as it cannot be found %s", resourcemodel.getArn(), Arrays.toString(exception.getStackTrace())));
                        throw new CfnNotFoundException(exception);
                    }
                    else {
                        logger.log(String.format("Failed to set the default version of the resource [%s] and the exception is [%s]", resourcemodel.getArn(), Arrays.toString(exception.getStackTrace())));
                        throw exception;
                    }
                })
                .done(awsResponse -> ProgressEvent.defaultSuccessHandler(Translator.translateFromReadResponse(awsResponse)));
    }