public ProgressEvent createKey()

in common/src/main/java/software/amazon/kms/common/CreatableKeyHandlerHelper.java [31:57]


    public ProgressEvent<M, C> createKey(
        final AmazonWebServicesClientProxy proxy,
        final ProxyClient<KmsClient> proxyClient,
        final M model,
        final C callbackContext,
        final Map<String, String> tags
    ) {
        return proxy.initiate("kms::create-key", proxyClient, model, callbackContext)
            .translateToServiceRequest(m -> keyTranslator.createKeyRequest(model, tags))
            .makeServiceCall(keyApiHelper::createKey)
            .done(createKeyResponse -> {
                if (!StringUtils.isNullOrEmpty(keyTranslator.getKeyId(model))) {
                    return ProgressEvent.progress(model, callbackContext);
                }

                // We only want to update the metadata that we have set as read only,
                // since updating writable metadata at this point would only
                // overwrite the properties supplied in the CFN template.
                keyTranslator.setReadOnlyKeyMetadata(model, createKeyResponse.keyMetadata());

                // Wait for key state to propagate to other hosts
                return ProgressEvent
                    .defaultInProgressHandler(callbackContext,
                        EventualConsistencyHandlerHelper.EVENTUAL_CONSISTENCY_DELAY_SECONDS,
                        model);
            });
    }