protected ProgressEvent handleRequest()

in aws-amplify-domain/src/main/java/software/amazon/amplify/domain/CreateHandler.java [23:62]


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

        this.logger = logger;
        final ResourceModel model = request.getDesiredResourceState();
        logger.log("INFO: requesting with model: " + model);

        // Make sure the user isn't trying to assign values to read-only properties
        String disallowedVal = checkReadOnlyProperties(model);
        if (disallowedVal != null) {
            throw new CfnInvalidRequestException(String.format("Attempted to provide value to a read-only property: %s", disallowedVal));
        }

        return ProgressEvent.progress(model, callbackContext)
                .then(progress ->
                    proxy.initiate("AWS-Amplify-Domain::Create", proxyClient,progress.getResourceModel(),
                            progress.getCallbackContext())
                        .translateToServiceRequest(Translator::translateToCreateRequest)
                        .makeServiceCall((createDomainAssociationRequest, proxyInvocation) -> {
                            checkIfResourceExists(model, proxyClient, logger);
                            CreateDomainAssociationResponse createDomainAssociationResponse = (CreateDomainAssociationResponse) ClientWrapper.execute(
                                    proxy,
                                    createDomainAssociationRequest,
                                    proxyInvocation.client()::createDomainAssociation,
                                    ResourceModel.TYPE_NAME,
                                    model.getArn(),
                                    logger
                            );
                            setResourceModelId(model, createDomainAssociationResponse.domainAssociation());
                            return createDomainAssociationResponse;
                        })
                        .stabilize((awsRequest, awsResponse, client, resourceModel, context) -> isStabilized(proxy, proxyClient,
                                model, logger))
                        .progress())
                .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }