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));
}