protected ProgressEvent handleRequest()

in aws-route53recoverycontrol-safetyrule/src/main/java/software/amazon/route53recoverycontrol/safetyrule/UpdateHandler.java [21:60]


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

        this.logger = logger;

        ResourceModel currentModel = request.getDesiredResourceState();
        ResourceModel previousModel = request.getPreviousResourceState();

        String currentSafetyRuleArn = currentModel.getSafetyRuleArn();

        String name = currentModel.getName();

        if ( currentSafetyRuleArn == null ) { throw new CfnNotFoundException(ResourceModel.TYPE_NAME, name); }

        if (previousModel != null) {
            String previousSafetyRuleArn = previousModel.getSafetyRuleArn();

            if (previousSafetyRuleArn != null) {

                if (!currentSafetyRuleArn.equals(previousSafetyRuleArn)) {
                    logger.log(String.format("%s does not equal %s.", currentSafetyRuleArn, previousSafetyRuleArn));
                    throw new CfnNotFoundException(ResourceModel.TYPE_NAME, String.format("%s does not equal %s.", currentSafetyRuleArn, previousSafetyRuleArn));
                }
            }
        }

        return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
            .then(progress ->
                proxy.initiate("AWS-Route53RecoveryControl-SafetyRule::Update", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
                        .translateToServiceRequest(Translator::translateToUpdateRequest)
                        .makeServiceCall(this::updateSafetyRule)
                        .stabilize(this::isStabilized)
                        .progress()
            )
            .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }