private ProgressEvent updateStackSet()

in aws-cloudformation-stackset/src/main/java/software/amazon/cloudformation/stackset/UpdateHandler.java [58:83]


    private ProgressEvent<ResourceModel, CallbackContext> updateStackSet(
            final AmazonWebServicesClientProxy proxy,
            final ProxyClient<CloudFormationClient> client,
            final ResourceHandlerRequest<ResourceModel> handlerRequest,
            final ProgressEvent<ResourceModel, CallbackContext> progress,
            final ResourceModel previousModel) {

        final ResourceModel desiredModel = progress.getResourceModel();
        final CallbackContext callbackContext = progress.getCallbackContext();
        if (isStackSetConfigEquals(previousModel, desiredModel, handlerRequest.getPreviousResourceTags(), handlerRequest.getDesiredResourceTags())) {
            return ProgressEvent.progress(desiredModel, callbackContext);
        }
        return proxy.initiate("AWS-CloudFormation-StackSet::UpdateStackSet", client, desiredModel, callbackContext)
                .translateToServiceRequest(modelRequest -> updateStackSetRequest(modelRequest, handlerRequest.getDesiredResourceTags()))
                .backoffDelay(MULTIPLE_OF)
                .makeServiceCall((modelRequest, proxyInvocation) -> {
                    logger.log(String.format("%s [%s] UpdateStackSet request: [%s]",
                            ResourceModel.TYPE_NAME, previousModel.getStackSetId(), modelRequest));
                    final UpdateStackSetResponse response = proxyInvocation.injectCredentialsAndInvokeV2(modelRequest, proxyInvocation.client()::updateStackSet);
                    logger.log(String.format("%s [%s] UpdateStackSet initiated", ResourceModel.TYPE_NAME, previousModel.getStackSetId()));
                    return response;
                })
                .stabilize((request, response, proxyInvocation, resourceModel, context) -> isOperationStabilized(proxyInvocation, resourceModel, response.operationId(), logger))
                .retryErrorFilter(this::filterException)
                .progress();
    }