protected ProgressEvent handleRequest()

in aws-route53recoveryreadiness-readinesscheck/src/main/java/software/amazon/route53recoveryreadiness/readinesscheck/CreateHandler.java [26:68]


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

        this.logger = logger;

        if (request.getDesiredResourceState().getReadinessCheckArn() != null) {
            throw new CfnInvalidRequestException(request.getDesiredResourceState().toString());
        }

        return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
            .then(progress -> {
                // Check to see if ReadinessCheck exists
                final ProgressEvent<ResourceModel, CallbackContext> progressEvent =
                 proxy.initiate("AWS-Route53RecoveryReadiness-ReadinessCheck::Create::ReadinessCheckPreExistanceCheck", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToReadRequest)
                    .makeServiceCall(this::readinessCheckPreExistenceCheck)
                    .progress();
                progressEvent.setCallbackDelaySeconds(0);
                    return progressEvent;
            })
            .then(progress -> {
                // Check to see if ResourceSet exists
                final ProgressEvent<ResourceModel, CallbackContext> progressEvent =
                 proxy.initiate("AWS-Route53RecoveryReadiness-ReadinessCheck::Create::ResourceSetPreExistanceCheck", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToReadResourceSetRequest)
                    .makeServiceCall(this::resourceSetPreExistanceCheck)
                    .progress();
                progressEvent.setCallbackDelaySeconds(0);
                    return progressEvent;
            })
            .then(progress ->
                proxy.initiate("AWS-Route53RecoveryReadiness-ReadinessCheck::Create", proxyClient,progress.getResourceModel(), progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToCreateRequest)
                    .makeServiceCall(this::createReadinessCheck)
                    .stabilize((awsRequest, awsResponse, client, model, context) -> isStabilized(model, client))
                    .progress()
                )
            .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }