private boolean isStabilized()

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());
        }
    }