in common/src/main/java/software/amazon/kms/common/KeyHandlerHelper.java [160:186]
public ProgressEvent<M, C> enableKeyIfNecessary(
final AmazonWebServicesClientProxy proxy,
final ProxyClient<KmsClient> proxyClient,
final M previousModel,
final M model,
final C callbackContext,
final boolean useEventualConsistencyDelay
) {
final boolean shouldBeEnabled = keyTranslator.getKeyEnabled(model);
final boolean wasEnabled =
previousModel == null || keyTranslator.getKeyEnabled(previousModel);
if (!wasEnabled && shouldBeEnabled && !callbackContext.isKeyEnabled()) {
callbackContext.setKeyEnabled(true);
return proxy.initiate("kms::enable-key", proxyClient, model, callbackContext)
.translateToServiceRequest(keyTranslator::enableKeyRequest)
.makeServiceCall(keyApiHelper::enableKey)
// Changing key status from disabled -> enabled might affect rotation update since
// it's only allowed on enabled keys. If enabled state hasn't been propagated then
// the rotation update might hit invalid state exception. Wait 1 min to make sure
// the changes propagate.
.progress(useEventualConsistencyDelay ?
EventualConsistencyHandlerHelper.EVENTUAL_CONSISTENCY_DELAY_SECONDS : 0);
}
return ProgressEvent.progress(model, callbackContext);
}