protected ProgressEvent handleRequest()

in aws-route53recoveryreadiness-resourceset/src/main/java/software/amazon/route53recoveryreadiness/resourceset/CreateHandler.java [29: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;

        // Make sure the user isn't trying to assign values to readOnly properties
        if (request.getDesiredResourceState().getResourceSetArn() != null) {
            throw new CfnInvalidRequestException(request.getDesiredResourceState().toString());
        }

        List<String> readinessScopes = new ArrayList<>();
        for(Resource resource : request.getDesiredResourceState().getResources()) {
            List<String> resourceScopes = resource.getReadinessScopes();
            if (resourceScopes != null && resourceScopes.size() != 0) {
                readinessScopes.addAll(resource.getReadinessScopes());
            }
        }

        //validate readiness scope existence
        validateScopes(readinessScopes, proxyClient);

        return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
            .then(progress ->
                proxy.initiate("AWS-Route53RecoveryReadiness-ResourceSet::Create::PreExistenceCheck", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToReadRequest)
                    .makeServiceCall(this::getResourceSet)
                    .progress()
            )
            .then(progress ->
                proxy.initiate("AWS-Route53RecoveryReadiness-ResourceSet::Create", proxyClient,progress.getResourceModel(), progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToCreateRequest)
                    .makeServiceCall(this::createResource)
                    .progress()
                )
            .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }