protected ProgressEvent handleRequest()

in aws-amplify-domain/src/main/java/software/amazon/amplify/domain/UpdateHandler.java [22:53]


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

        return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
            .then(progress ->
                proxy.initiate("AWS-Amplify-Domain::Update", proxyClient, model, progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToUpdateRequest)
                    .makeServiceCall((updateDomainAssociationRequest, proxyInvocation) -> {
                        UpdateDomainAssociationResponse updateDomainAssociationResponse = (UpdateDomainAssociationResponse) ClientWrapper.execute(
                                proxy,
                                updateDomainAssociationRequest,
                                proxyInvocation.client()::updateDomainAssociation,
                                ResourceModel.TYPE_NAME,
                                model.getArn(),
                                logger
                        );
                        setResourceModelId(model, updateDomainAssociationResponse.domainAssociation());
                        return updateDomainAssociationResponse;
                    })
                    .stabilize((awsRequest, awsResponse, client, resourceModel, context) -> isStabilized(proxy, proxyClient,
                            resourceModel, logger))
                    .progress())
                .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }