protected ProgressEvent handleRequest()

in aws-memorydb-acl/src/main/java/software/amazon/memorydb/acl/CreateHandler.java [19:47]


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

        this.logger = logger;

        ResourceModel resourceModel = request.getDesiredResourceState();
        logger.log(String.format("Resource model: %s", resourceModel.toString()));

        if (!resourceModel.getACLName().matches("[a-z][a-z0-9\\\\-]*")) {
            throw new CfnInvalidRequestException(ID_WRONG_FORMAT);
        }

        return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
            .then(progress ->
                proxy.initiate("AWS-MemoryDB-ACL::Create", proxyClient, progress.getResourceModel(),
                    progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToCreateRequest)
                    .makeServiceCall((awsRequest, client) -> handleExceptions(() ->
                        client.injectCredentialsAndInvokeV2(awsRequest, client.client()::createACL)))
                    .stabilize(
                        (updateUserRequest, updateUserResponse, proxyInvocation, model, context) -> isAclStabilized(
                            proxyInvocation, model, logger))
                    .progress()
            ).then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }