in aws-route53recoveryreadiness-resourceset/src/main/java/software/amazon/route53recoveryreadiness/resourceset/UpdateHandler.java [28:76]
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();
// Make sure the user isn't trying to assign values to readOnly properties
if (previousModel != null) {
//Name needed to find Recovery Group to update, but is not itself update-able
if(!Objects.equals(previousModel.getResourceSetName(), model.getResourceSetName())) {
throw new CfnNotUpdatableException(ResourceModel.TYPE_NAME, request.getDesiredResourceState().getResourceSetName());
}
if (model.getResourceSetArn() != null) {
if(!previousModel.getResourceSetArn().equals(model.getResourceSetArn())) {
throw new CfnNotUpdatableException(ResourceModel.TYPE_NAME, request.getDesiredResourceState().getResourceSetName());
}
}
}
GetResourceSetRequest getRequest = GetResourceSetRequest.builder().resourceSetName(model.getResourceSetName()).build();
preExistenceCheck(getRequest, proxyClient);
List<String> readinessScopes = new ArrayList<>();
for(Resource resource : model.getResources()) {
List<String> resourceScopes = resource.getReadinessScopes();
if (resourceScopes != null && resourceScopes.size() != 0) {
readinessScopes.addAll(resource.getReadinessScopes());
}
}
//validate readiness scope existence
validateScopes(readinessScopes, proxyClient);
return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
.then(progress ->
proxy.initiate("AWS-Route53RecoveryReadiness-ResourceSet::Update", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::translateToUpdateRequest)
.makeServiceCall(this::updateResourceSet)
.progress())
.then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
}