in aws-route53recoveryreadiness-resourceset/src/main/java/software/amazon/route53recoveryreadiness/resourceset/CreateHandler.java [29:68]
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;
// Make sure the user isn't trying to assign values to readOnly properties
if (request.getDesiredResourceState().getResourceSetArn() != null) {
throw new CfnInvalidRequestException(request.getDesiredResourceState().toString());
}
List<String> readinessScopes = new ArrayList<>();
for(Resource resource : request.getDesiredResourceState().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::Create::PreExistenceCheck", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::translateToReadRequest)
.makeServiceCall(this::getResourceSet)
.progress()
)
.then(progress ->
proxy.initiate("AWS-Route53RecoveryReadiness-ResourceSet::Create", proxyClient,progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::translateToCreateRequest)
.makeServiceCall(this::createResource)
.progress()
)
.then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
}