public ProgressEvent handleRequest()

in statemachine/src/main/java/com/amazonaws/stepfunctions/cloudformation/statemachine/DeleteHandler.java [16:65]


    public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
            final AmazonWebServicesClientProxy proxy,
            final ResourceHandlerRequest<ResourceModel> request,
            final CallbackContext callbackContext,
            final Logger logger) {

        logger.log("INFO StateMachine DeleteHandler with clientRequestToken: " + request.getClientRequestToken());

        final ResourceModel model = request.getDesiredResourceState();
        final CallbackContext currentContext = callbackContext == null ?
                CallbackContext.builder().build() :
                callbackContext;

        try {
            verifyStateMachineArnIsPresent(model.getArn());

            AWSStepFunctions sfnClient = ClientBuilder.getClient();

            if (!currentContext.isDeletionStarted()) {
                if (!doesStateMachineExist(model, proxy, sfnClient)) {
                    throw getStateMachineDoesNotExistException();
                }

                deleteStateMachine(model, proxy, sfnClient);
                currentContext.setDeletionStarted(true);

                return ProgressEvent.<ResourceModel, CallbackContext>builder()
                        .callbackContext(currentContext)
                        .resourceModel(model)
                        .status(OperationStatus.IN_PROGRESS)
                        .build();
            } else {
                if (doesStateMachineExist(model, proxy, sfnClient)) {
                    return ProgressEvent.<ResourceModel, CallbackContext>builder()
                            .callbackContext(currentContext)
                            .resourceModel(model)
                            .status(OperationStatus.IN_PROGRESS)
                            .build();
                } else {
                    return ProgressEvent.<ResourceModel, CallbackContext>builder()
                            .status(OperationStatus.SUCCESS)
                            .build();
                }
            }
        } catch (Exception e) {
            logger.log("ERROR Deleting StateMachine, caused by " + e.toString());

            return handleDefaultError(request, e, null);
        }
    }