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;
90 explicit operator bool()
const noexcept;
98 const aws_credentials *m_credentials;
132 virtual aws_credentials_provider *GetUnderlyingHandle()
const noexcept = 0;
137 virtual bool IsValid()
const noexcept = 0;
147 AWS_ZERO_STRUCT(AccessKeyId);
148 AWS_ZERO_STRUCT(SecretAccessKey);
149 AWS_ZERO_STRUCT(SessionToken);
175 AWS_ZERO_STRUCT(ProfileNameOverride);
176 AWS_ZERO_STRUCT(ConfigFileNameOverride);
177 AWS_ZERO_STRUCT(CredentialsFileNameOverride);
305 : Bootstrap(nullptr), TlsOptions(), ThingName(), RoleAlias(), Endpoint(), ProxyOptions()
578 virtual bool IsValid() const noexcept
override {
return m_provider !=
nullptr; }
587 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderStatic(
595 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderAnonymous(
601 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderEnvironment(
607 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderProfile(
614 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderImds(
622 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderChain(
630 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderCached(
640 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderChainDefault(
648 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderX509(
656 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderDelegate(
663 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderCognito(
670 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderSTS(
674 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderSTSWebIdentity(
681 static std::shared_ptr<ICredentialsProvider> CreateCredentialsProviderLogin(
686 static void s_onCredentialsResolved(aws_credentials *credentials,
int error_code,
void *user_data);
689 aws_credentials_provider *m_provider;
Io::TlsContext TlsCtx
Definition: Credentials.h:407
Io::TlsConnectionOptions TlsOptions
Definition: Credentials.h:319
ByteCursor ConfigFileNameOverride
Definition: Credentials.h:189
Definition: TlsOptions.h:389
ByteCursor AccessKeyId
Definition: Credentials.h:155
CredentialsProviderProfileConfig()
Definition: Credentials.h:173
Definition: Credentials.h:256
Definition: Credentials.h:277
virtual aws_credentials_provider * GetUnderlyingHandle() const noexcept override
Definition: Credentials.h:573
Definition: Credentials.h:344
String SessionName
Definition: Credentials.h:435
String Region
Definition: Credentials.h:482
String TokenFilePath
Definition: Credentials.h:487
#define AWS_CRT_CPP_API
Definition: Exports.h:36
String ThingName
Definition: Credentials.h:322
String Endpoint
Definition: Credentials.h:377
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:402
ByteCursor CredentialsFileNameOverride
Definition: Credentials.h:195
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition: Credentials.h:459
Definition: Credentials.h:512
Definition: Credentials.h:171
Definition: Credentials.h:370
CredentialsProviderChainConfig()
Definition: Credentials.h:245
ByteCursor SessionToken
Definition: Credentials.h:165
CredentialsProviderX509Config()
Definition: Credentials.h:304
const aws_credentials * GetUnderlyingHandle() const noexcept
Definition: Credentials.h:95
std::basic_string< char, std::char_traits< char >, StlAllocator< char >> String
Definition: Types.h:45
Io::TlsContext * TlsContext
Definition: Credentials.h:212
String IdentityProviderName
Definition: Credentials.h:359
aws_allocator Allocator
Definition: Allocator.h:14
aws_byte_cursor ByteCursor
Definition: Types.h:31
Definition: Credentials.h:418
Definition: Credentials.h:302
Optional< Http::ProxyEnvVarOptions > ProxyEnvVarOptions
Definition: Credentials.h:506
std::chrono::milliseconds CachedCredentialTTL
Definition: Credentials.h:268
Definition: HttpConnection.h:298
String Identity
Definition: Credentials.h:382
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:201
CredentialsProviderStaticConfig()
Definition: Credentials.h:145
ByteCursor ProfileNameOverride
Definition: Credentials.h:183
std::shared_ptr< ICredentialsProvider > Provider
Definition: Credentials.h:263
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:496
Definition: Credentials.h:224
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition: Allocator.cpp:24
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:449
Optional< Http::ProxyEnvVarOptions > ProxyEnvVarOptions
Definition: Credentials.h:218
uint16_t DurationSeconds
Definition: Credentials.h:440
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition: Credentials.h:412
String IdentityProviderToken
Definition: Credentials.h:364
Definition: Credentials.h:243
CredentialsProviderImdsConfig()
Definition: Credentials.h:226
String Endpoint
Definition: Credentials.h:333
String RoleArn
Definition: Credentials.h:430
String RoleAlias
Definition: Credentials.h:325
std::shared_ptr< ICredentialsProvider > Provider
Definition: Credentials.h:425
CredentialsProviderCachedConfig()
Definition: Credentials.h:258
Definition: Credentials.h:116
Definition: Credentials.h:553
Definition: Bootstrap.h:34
CredentialsProviderChainDefaultConfig()
Definition: Credentials.h:279
String RoleArn
Definition: Credentials.h:472
std::vector< T, StlAllocator< T >> Vector
Definition: Types.h:53
GetCredentialsHandler Handler
Definition: Credentials.h:347
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:235
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:287
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition: Credentials.h:338
Optional< Vector< CognitoLoginPair > > Logins
Definition: Credentials.h:387
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:316
ByteCursor SecretAccessKey
Definition: Credentials.h:160
String LoginSession
Definition: Credentials.h:519
Definition: Credentials.h:353
String LoginRegion
Definition: Credentials.h:530
Definition: TlsOptions.h:317
Io::ClientBootstrap * Bootstrap
Definition: Credentials.h:539
virtual bool IsValid() const noexcept override
Definition: Credentials.h:578
std::function< void(std::shared_ptr< Credentials >, int errorCode)> OnCredentialsResolved
Definition: Credentials.h:105
Io::TlsContext TlsCtx
Definition: Credentials.h:454
Io::TlsConnectionOptions TlsConnectionOptions
Definition: Credentials.h:213
Io::TlsConnectionOptions TlsConnectionOptions
Definition: Credentials.h:501
String SessionName
Definition: Credentials.h:477
String LoginCacheOverride
Definition: Credentials.h:525
Io::TlsContext * TlsContext
Definition: Credentials.h:296
Definition: Credentials.h:37
Io::TlsConnectionOptions TlsConnectionOptions
Definition: Credentials.h:544
Vector< std::shared_ptr< ICredentialsProvider > > Providers
Definition: Credentials.h:250
Optional< String > CustomRoleArn
Definition: Credentials.h:393
Definition: Allocator.h:10
Definition: Credentials.h:143
std::function< std::shared_ptr< Credentials >()> GetCredentialsHandler
Definition: Credentials.h:110
Definition: Credentials.h:465