in aws-amplify-domain/src/main/java/software/amazon/amplify/domain/UpdateHandler.java [55:92]
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.getDomainName(),
logger);
final String domainInfo = String.format("%s - %s", model.getAppId(), model.getDomainName());
final DomainAssociation domainAssociation = getDomainAssociationResponse.domainAssociation();
final DomainStatus domainStatus = domainAssociation.domainStatus();
switch (domainStatus) {
// domainDO status can only be UPDATING post update call, or AVAILABLE once cloudfront update is successful
case UPDATING:
logger.log(String.format("%s UPDATE stabilization domainStatus: %s", domainInfo, domainStatus));
return false;
case AVAILABLE:
logger.log(String.format("%s UPDATE has been stabilized.", domainInfo));
Translator.translateFromCreateOrUpdateResponse(model, domainAssociation);
return true;
case FAILED:
final String FAILURE_REASON = domainAssociation.statusReason();
logger.log(String.format("%s UPDATE stabilization failed: %s", domainInfo, FAILURE_REASON));
throw new CfnNotStabilizedException(ResourceModel.TYPE_NAME, model.getArn(), new CfnGeneralServiceException(FAILURE_REASON));
default:
logger.log(String.format("%s UPDATE stabilization failed thrown due to invalid status: %s", domainInfo, domainStatus));
throw new CfnNotStabilizedException(ResourceModel.TYPE_NAME, model.getArn());
}
}