15struct aws_credentials;
16struct aws_credentials_provider;
40 Credentials(
const aws_credentials *credentials)
noexcept;
45 uint64_t expiration_timepoint_in_seconds,
63 ByteCursor GetSecretAccessKey() const noexcept;
73 uint64_t GetExpirationTimepointInSeconds() const noexcept;
78 explicit operator
bool() const noexcept;
83 const aws_credentials *GetUnderlyingHandle() const noexcept {
return m_credentials; }
86 const aws_credentials *m_credentials;
125 virtual
bool IsValid() const noexcept = 0;
135 AWS_ZERO_STRUCT(AccessKeyId);
136 AWS_ZERO_STRUCT(SecretAccessKey);
137 AWS_ZERO_STRUCT(SessionToken);
163 AWS_ZERO_STRUCT(ProfileNameOverride);
164 AWS_ZERO_STRUCT(ConfigFileNameOverride);
165 AWS_ZERO_STRUCT(CredentialsFileNameOverride);
286 : Bootstrap(nullptr), TlsOptions(), ThingName(), RoleAlias(), Endpoint(), ProxyOptions()
362 virtual bool IsValid() const noexcept
override {
return m_provider !=
nullptr; }
371 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderStatic(
378 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderEnvironment(
384 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderProfile(
391 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderImds(
399 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderChain(
407 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderCached(
417 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderChainDefault(
425 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderX509(
433 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderDelegate(
438 static void s_onCredentialsResolved(aws_credentials *credentials,
int error_code,
void *user_data);
441 aws_credentials_provider *m_provider;
#define AWS_CRT_CPP_API
Definition: Exports.h:37
Definition: Credentials.h:38
Credentials & operator=(Credentials &&)=delete
Credentials & operator=(const Credentials &)=delete
Credentials(const Credentials &)=delete
Credentials(Credentials &&)=delete
Definition: Credentials.h:338
CredentialsProvider & operator=(CredentialsProvider &&)=delete
virtual aws_credentials_provider * GetUnderlyingHandle() const noexcept override
Definition: Credentials.h:357
CredentialsProvider(const CredentialsProvider &)=delete
virtual bool IsValid() const noexcept override
Definition: Credentials.h:362
CredentialsProvider(CredentialsProvider &&)=delete
CredentialsProvider & operator=(const CredentialsProvider &)=delete
Definition: Credentials.h:105
virtual bool GetCredentials(const OnCredentialsResolved &onCredentialsResolved) const =0
virtual aws_credentials_provider * GetUnderlyingHandle() const noexcept=0
virtual ~ICredentialsProvider()=default
Definition: HttpConnection.h:270
Definition: Bootstrap.h:35
Definition: TlsOptions.h:286
Definition: TlsOptions.h:343
Definition: Optional.h:17
std::function< void(std::shared_ptr< Credentials >, int errorCode)> OnCredentialsResolved
Definition: Credentials.h:93
std::function< std::shared_ptr< Credentials >()> GetCredentialsHandler
Definition: Credentials.h:98
aws_byte_cursor ByteCursor
Definition: Types.h:33
aws_allocator Allocator
Definition: StlAllocator.h:17
AWS_CRT_CPP_API Allocator * g_allocator
Definition: Api.cpp:23
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition: Types.h:47
std::vector< T, StlAllocator< T > > Vector
Definition: Types.h:55
Definition: Credentials.h:238
std::shared_ptr< ICredentialsProvider > Provider
Definition: Credentials.h:244
CredentialsProviderCachedConfig()
Definition: Credentials.h:239
std::chrono::milliseconds CachedCredentialTTL
Definition: Credentials.h:249
Definition: Credentials.h:225
CredentialsProviderChainConfig()
Definition: Credentials.h:226
Vector< std::shared_ptr< ICredentialsProvider > > Providers
Definition: Credentials.h:231
Definition: Credentials.h:259
Io::TlsContext * TlsContext
Definition: Credentials.h:277
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:268
CredentialsProviderChainDefaultConfig()
Definition: Credentials.h:260
Definition: Credentials.h:326
GetCredentialsHandler Handler
Definition: Credentials.h:328
Definition: Credentials.h:206
CredentialsProviderImdsConfig()
Definition: Credentials.h:207
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:216
Definition: Credentials.h:160
ByteCursor ConfigFileNameOverride
Definition: Credentials.h:177
ByteCursor CredentialsFileNameOverride
Definition: Credentials.h:183
ByteCursor ProfileNameOverride
Definition: Credentials.h:171
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:189
CredentialsProviderProfileConfig()
Definition: Credentials.h:161
Io::TlsContext * TlsContext
Definition: Credentials.h:199
Definition: Credentials.h:132
ByteCursor SecretAccessKey
Definition: Credentials.h:148
ByteCursor AccessKeyId
Definition: Credentials.h:143
CredentialsProviderStaticConfig()
Definition: Credentials.h:133
ByteCursor SessionToken
Definition: Credentials.h:153
Definition: Credentials.h:284
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition: Credentials.h:319
CredentialsProviderX509Config()
Definition: Credentials.h:285
String Endpoint
Definition: Credentials.h:314
String ThingName
Definition: Credentials.h:303
String RoleAlias
Definition: Credentials.h:306
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:297
Io::TlsConnectionOptions TlsOptions
Definition: Credentials.h:300