in aws-route53recoveryreadiness-readinesscheck/src/main/java/software/amazon/route53recoveryreadiness/readinesscheck/CreateHandler.java [26: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;
if (request.getDesiredResourceState().getReadinessCheckArn() != null) {
throw new CfnInvalidRequestException(request.getDesiredResourceState().toString());
}
return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
.then(progress -> {
// Check to see if ReadinessCheck exists
final ProgressEvent<ResourceModel, CallbackContext> progressEvent =
proxy.initiate("AWS-Route53RecoveryReadiness-ReadinessCheck::Create::ReadinessCheckPreExistanceCheck", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::translateToReadRequest)
.makeServiceCall(this::readinessCheckPreExistenceCheck)
.progress();
progressEvent.setCallbackDelaySeconds(0);
return progressEvent;
})
.then(progress -> {
// Check to see if ResourceSet exists
final ProgressEvent<ResourceModel, CallbackContext> progressEvent =
proxy.initiate("AWS-Route53RecoveryReadiness-ReadinessCheck::Create::ResourceSetPreExistanceCheck", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::translateToReadResourceSetRequest)
.makeServiceCall(this::resourceSetPreExistanceCheck)
.progress();
progressEvent.setCallbackDelaySeconds(0);
return progressEvent;
})
.then(progress ->
proxy.initiate("AWS-Route53RecoveryReadiness-ReadinessCheck::Create", proxyClient,progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::translateToCreateRequest)
.makeServiceCall(this::createReadinessCheck)
.stabilize((awsRequest, awsResponse, client, model, context) -> isStabilized(model, client))
.progress()
)
.then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
}