protected ProgressEvent handleRequest()

in aws-memorydb-subnetgroup/src/main/java/software/amazon/memorydb/subnetgroup/CreateHandler.java [18: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;

        final ResourceModel desiredResourceState = request.getDesiredResourceState();
        logger.log("Input Model: ");
        logger.log(desiredResourceState.toString());

        try {
            logger.log(String.format("Resource model: %s", desiredResourceState.toString()));
            Validate.isTrue(desiredResourceState.getSubnetGroupName() != null, NAME_REQUIRED_FOR_SUBNET_GROUP);
            Validate.isTrue(desiredResourceState.getSubnetIds() != null, SUBNET_IDS_REQUIRED_FOR_SUBNET_GROUP);

            if (!desiredResourceState.getSubnetGroupName().matches("[a-z][a-z0-9\\\\-]*")) {
                throw new CfnInvalidRequestException(ID_WRONG_FORMAT);
            }
        } catch (Exception e) {
            throw new CfnInvalidRequestException(e.getMessage());
        }

        return ProgressEvent.progress(desiredResourceState, callbackContext)
                .then(progress -> createSubnetGroup(proxy, proxyClient, progress, request.getDesiredResourceTags()))
                .then(progress -> waitForSubnetGroupAvailableStatus(proxy, proxyClient, progress))
                .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }