15 struct aws_credentials;
16 struct aws_credentials_provider;
40 Credentials(
const aws_credentials *credentials) noexcept;
45 uint64_t expiration_timepoint_in_seconds,
70 ByteCursor GetSecretAccessKey()
const noexcept;
80 uint64_t GetExpirationTimepointInSeconds()
const noexcept;
85 explicit operator bool()
const noexcept;
93 const aws_credentials *m_credentials;
127 virtual aws_credentials_provider *GetUnderlyingHandle()
const noexcept = 0;
132 virtual bool IsValid()
const noexcept = 0;
142 AWS_ZERO_STRUCT(AccessKeyId);
143 AWS_ZERO_STRUCT(SecretAccessKey);
144 AWS_ZERO_STRUCT(SessionToken);
170 AWS_ZERO_STRUCT(ProfileNameOverride);
171 AWS_ZERO_STRUCT(ConfigFileNameOverride);
172 AWS_ZERO_STRUCT(CredentialsFileNameOverride);
293 : Bootstrap(nullptr), TlsOptions(), ThingName(), RoleAlias(), Endpoint(), ProxyOptions()
481 virtual bool IsValid() const noexcept
override {
return m_provider !=
nullptr; }
490 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderStatic(
498 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderAnonymous(
504 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderEnvironment(
510 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderProfile(
517 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderImds(
525 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderChain(
533 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderCached(
543 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderChainDefault(
551 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderX509(
559 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderDelegate(
566 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderCognito(
573 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderSTS(
578 static void s_onCredentialsResolved(aws_credentials *credentials,
int error_code,
void *user_data);
581 aws_credentials_provider *m_provider;
Io::TlsContext TlsCtx
Definition: Credentials.h:395
Io::TlsConnectionOptions TlsOptions
Definition: Credentials.h:307
ByteCursor ConfigFileNameOverride
Definition: Credentials.h:184
Definition: TlsOptions.h:349
ByteCursor AccessKeyId
Definition: Credentials.h:150
CredentialsProviderProfileConfig()
Definition: Credentials.h:168
Definition: Credentials.h:244
Definition: Credentials.h:265
virtual aws_credentials_provider * GetUnderlyingHandle() const noexcept override
Definition: Credentials.h:476
Definition: Credentials.h:332
String SessionName
Definition: Credentials.h:423
#define AWS_CRT_CPP_API
Definition: Exports.h:36
String ThingName
Definition: Credentials.h:310
String Endpoint
Definition: Credentials.h:365
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:390
ByteCursor CredentialsFileNameOverride
Definition: Credentials.h:190
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition: Credentials.h:447
Definition: Credentials.h:166
Definition: Credentials.h:358
CredentialsProviderChainConfig()
Definition: Credentials.h:233
ByteCursor SessionToken
Definition: Credentials.h:160
CredentialsProviderX509Config()
Definition: Credentials.h:292
const aws_credentials * GetUnderlyingHandle() const noexcept
Definition: Credentials.h:90
std::basic_string< char, std::char_traits< char >, StlAllocator< char >> String
Definition: Types.h:45
Io::TlsContext * TlsContext
Definition: Credentials.h:206
String IdentityProviderName
Definition: Credentials.h:347
aws_allocator Allocator
Definition: Allocator.h:14
aws_byte_cursor ByteCursor
Definition: Types.h:31
Definition: Credentials.h:406
Definition: Credentials.h:290
std::chrono::milliseconds CachedCredentialTTL
Definition: Credentials.h:256
Definition: HttpConnection.h:269
String Identity
Definition: Credentials.h:370
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:196
CredentialsProviderStaticConfig()
Definition: Credentials.h:140
ByteCursor ProfileNameOverride
Definition: Credentials.h:178
std::shared_ptr< ICredentialsProvider > Provider
Definition: Credentials.h:251
Definition: Credentials.h:212
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition: Allocator.cpp:24
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:437
uint16_t DurationSeconds
Definition: Credentials.h:428
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition: Credentials.h:400
String IdentityProviderToken
Definition: Credentials.h:352
Definition: Credentials.h:231
CredentialsProviderImdsConfig()
Definition: Credentials.h:214
String Endpoint
Definition: Credentials.h:321
String RoleArn
Definition: Credentials.h:418
String RoleAlias
Definition: Credentials.h:313
std::shared_ptr< ICredentialsProvider > Provider
Definition: Credentials.h:413
CredentialsProviderCachedConfig()
Definition: Credentials.h:246
Definition: Credentials.h:111
Definition: Credentials.h:456
Definition: Bootstrap.h:34
CredentialsProviderChainDefaultConfig()
Definition: Credentials.h:267
std::vector< T, StlAllocator< T >> Vector
Definition: Types.h:53
GetCredentialsHandler Handler
Definition: Credentials.h:335
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:223
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:275
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition: Credentials.h:326
Optional< Vector< CognitoLoginPair > > Logins
Definition: Credentials.h:375
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:304
ByteCursor SecretAccessKey
Definition: Credentials.h:155
Definition: Credentials.h:341
Definition: TlsOptions.h:292
virtual bool IsValid() const noexcept override
Definition: Credentials.h:481
std::function< void(std::shared_ptr< Credentials >, int errorCode)> OnCredentialsResolved
Definition: Credentials.h:100
Io::TlsContext TlsCtx
Definition: Credentials.h:442
Io::TlsContext * TlsContext
Definition: Credentials.h:284
Definition: Credentials.h:37
Vector< std::shared_ptr< ICredentialsProvider > > Providers
Definition: Credentials.h:238
Optional< String > CustomRoleArn
Definition: Credentials.h:381
Definition: Allocator.h:10
Definition: Credentials.h:138
std::function< std::shared_ptr< Credentials >()> GetCredentialsHandler
Definition: Credentials.h:105