in aws-amplify-domain/src/main/java/software/amazon/amplify/domain/CreateHandler.java [68:109]
private boolean isStabilized(final AmazonWebServicesClientProxy proxy,
final ProxyClient<AmplifyClient> proxyClient,
final ResourceModel model,
final Logger logger) {
final GetDomainAssociationRequest getDomainAssociationRequest = GetDomainAssociationRequest.builder()
.appId(model.getAppId())
.domainName(model.getDomainName())
.build();
final GetDomainAssociationResponse getDomainAssociationResponse = (GetDomainAssociationResponse) ClientWrapper.execute(
proxy,
getDomainAssociationRequest,
proxyClient.client()::getDomainAssociation,
ResourceModel.TYPE_NAME,
model.getArn(),
logger);
final String domainInfo = String.format("%s - %s", model.getAppId(), model.getDomainName());
final DomainAssociation domainAssociation = getDomainAssociationResponse.domainAssociation();
final DomainStatus domainStatus = domainAssociation.domainStatus();
switch (domainStatus) {
case CREATING:
case REQUESTING_CERTIFICATE:
case IN_PROGRESS:
logger.log(String.format("%s CREATE stabilization domainStatus: %s", domainInfo, domainStatus));
return false;
case PENDING_VERIFICATION:
case PENDING_DEPLOYMENT:
case AVAILABLE:
case UPDATING:
logger.log(String.format("%s CREATE has been stabilized.", domainInfo));
Translator.translateFromCreateOrUpdateResponse(model, getDomainAssociationResponse.domainAssociation());
return true;
case FAILED:
final String FAILURE_REASON = domainAssociation.statusReason();
logger.log(String.format("%s CREATE stabilization failed: %s", domainInfo, FAILURE_REASON));
throw new CfnNotStabilizedException(ResourceModel.TYPE_NAME, model.getArn(), new CfnGeneralServiceException(FAILURE_REASON));
default:
logger.log(String.format("%s CREATE stabilization failed thrown due to invalid status: %s", domainInfo, domainStatus));
throw new CfnNotStabilizedException(ResourceModel.TYPE_NAME, model.getArn());
}
}