in aws-route53recoveryreadiness-cell/src/main/java/software/amazon/route53recoveryreadiness/cell/UpdateHandler.java [22:58]
protected ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final ProxyClient<Route53RecoveryReadinessClient> proxyClient,
final Logger logger) {
this.logger = logger;
final ResourceModel model = request.getDesiredResourceState();
final ResourceModel previousModel = request.getPreviousResourceState();
//check if resource exists
GetCellRequest getRequest = GetCellRequest.builder().cellName(request.getDesiredResourceState().getCellName()).build();
preExistenceCheck(getRequest, proxyClient);
//Make sure not updating readOnly properties
if (previousModel != null) {
if(model.getCellArn() != null && previousModel.getCellArn() != null) {
if (!model.getCellArn().equals(previousModel.getCellArn())) {
throw new CfnNotUpdatableException(ResourceModel.TYPE_NAME, request.getDesiredResourceState().getCellName());
}
}
if (!model.getCellName().equals(previousModel.getCellName())) {
throw new CfnNotUpdatableException(ResourceModel.TYPE_NAME, request.getDesiredResourceState().getCellName());
}
}
return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
.then(progress ->
proxy.initiate("AWS-Route53RecoveryReadiness-Cell::Update", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::translateToUpdateRequest)
.makeServiceCall(this::updateCell)
.progress())
.then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
}