unique_ptr CreateDefaultCredentialProvider()

in kinesis_manager/src/default_callbacks.cpp [46:65]


unique_ptr<CredentialProvider> CreateDefaultCredentialProvider()
{
  char const *access_key, *secret_key, *session_token;
  if (nullptr == (access_key = getenv(AWS_ACCESS_KEY_ENV_VAR))) {
    return unique_ptr<CredentialProvider>{};
  }
  if (nullptr == (secret_key = getenv(AWS_SECRET_KEY_ENV_VAR))) {
    return unique_ptr<CredentialProvider>{};
  }
  if (nullptr == (session_token = getenv(AWS_SESSION_TOKEN_ENV_VAR))) {
    session_token = "";
  }

  auto now_time = std::chrono::duration_cast<std::chrono::seconds>(
    std::chrono::system_clock::now().time_since_epoch());
  unique_ptr<Credentials> credentials_ = make_unique<Credentials>(
    string(access_key), string(secret_key), string(session_token),
    now_time + std::chrono::seconds(AWS_DEFAULT_CREDENTIAL_ROTATION_PERIOD_IN_SECONDS));
  return make_unique<StaticCredentialProvider>(*credentials_.get());
}