protected ProgressEvent handleRequest()

in alias/src/main/java/software/amazon/kms/alias/UpdateHandler.java [23:47]


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

        final ResourceModel model = request.getDesiredResourceState();

        return ProgressEvent.progress(model, callbackContext)
            .then(
                progress -> proxy.initiate("kms::update-alias", proxyClient, model, callbackContext)
                    .translateToServiceRequest(Translator::updateAliasRequest)
                    .makeServiceCall(aliasApiHelper::updateAlias)
                    .done(updateAliasResponse -> {
                        logger.log(String
                            .format("%s [%s] has been successfully updated",
                                ResourceModel.TYPE_NAME,
                                model.getAliasName()));

                        return progress;
                    }))
            .then(eventualConsistencyHandlerHelper::waitForChangesToPropagate)
            .then(progress -> ProgressEvent.defaultSuccessHandler(model));
    }