15struct aws_credentials;
16struct 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;
95 const aws_credentials *GetUnderlyingHandle() const noexcept {
return m_credentials; }
98 const aws_credentials *m_credentials;
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;
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition Credentials.h:38
Credentials & operator=(Credentials &&)=delete
Credentials & operator=(const Credentials &)=delete
Credentials(const Credentials &)=delete
Credentials(Credentials &&)=delete
Definition Credentials.h:554
CredentialsProvider & operator=(CredentialsProvider &&)=delete
virtual aws_credentials_provider * GetUnderlyingHandle() const noexcept override
Definition Credentials.h:573
CredentialsProvider(const CredentialsProvider &)=delete
virtual bool IsValid() const noexcept override
Definition Credentials.h:578
CredentialsProvider(CredentialsProvider &&)=delete
CredentialsProvider & operator=(const CredentialsProvider &)=delete
Definition Credentials.h:117
virtual bool GetCredentials(const OnCredentialsResolved &onCredentialsResolved) const =0
virtual aws_credentials_provider * GetUnderlyingHandle() const noexcept=0
virtual ~ICredentialsProvider()=default
Definition HttpConnection.h:299
Definition Bootstrap.h:35
Definition TlsOptions.h:293
Definition TlsOptions.h:350
std::function< void(std::shared_ptr< Credentials >, int errorCode)> OnCredentialsResolved
Definition Credentials.h:105
std::function< std::shared_ptr< Credentials >()> GetCredentialsHandler
Definition Credentials.h:110
aws_byte_cursor ByteCursor
Definition Types.h:31
aws_allocator Allocator
Definition Allocator.h:14
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition Allocator.cpp:24
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition Types.h:45
std::vector< T, StlAllocator< T > > Vector
Definition Types.h:53
Definition Allocator.h:11
Definition Credentials.h:354
String IdentityProviderName
Definition Credentials.h:359
String IdentityProviderToken
Definition Credentials.h:364
Definition Credentials.h:257
std::shared_ptr< ICredentialsProvider > Provider
Definition Credentials.h:263
CredentialsProviderCachedConfig()
Definition Credentials.h:258
std::chrono::milliseconds CachedCredentialTTL
Definition Credentials.h:268
Definition Credentials.h:244
CredentialsProviderChainConfig()
Definition Credentials.h:245
Vector< std::shared_ptr< ICredentialsProvider > > Providers
Definition Credentials.h:250
Definition Credentials.h:278
Io::TlsContext * TlsContext
Definition Credentials.h:296
Io::ClientBootstrap * Bootstrap
Definition Credentials.h:287
CredentialsProviderChainDefaultConfig()
Definition Credentials.h:279
Definition Credentials.h:371
Optional< Vector< CognitoLoginPair > > Logins
Definition Credentials.h:387
Optional< String > CustomRoleArn
Definition Credentials.h:393
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition Credentials.h:412
Io::ClientBootstrap * Bootstrap
Definition Credentials.h:402
String Endpoint
Definition Credentials.h:377
Io::TlsContext TlsCtx
Definition Credentials.h:407
String Identity
Definition Credentials.h:382
Definition Credentials.h:345
GetCredentialsHandler Handler
Definition Credentials.h:347
Definition Credentials.h:225
CredentialsProviderImdsConfig()
Definition Credentials.h:226
Io::ClientBootstrap * Bootstrap
Definition Credentials.h:235
Definition Credentials.h:513
String LoginCacheOverride
Definition Credentials.h:525
Io::TlsConnectionOptions TlsConnectionOptions
Definition Credentials.h:544
String LoginRegion
Definition Credentials.h:530
Io::ClientBootstrap * Bootstrap
Definition Credentials.h:539
String LoginSession
Definition Credentials.h:519
Definition Credentials.h:172
ByteCursor ConfigFileNameOverride
Definition Credentials.h:189
ByteCursor CredentialsFileNameOverride
Definition Credentials.h:195
ByteCursor ProfileNameOverride
Definition Credentials.h:183
Optional< Http::ProxyEnvVarOptions > ProxyEnvVarOptions
Definition Credentials.h:218
Io::ClientBootstrap * Bootstrap
Definition Credentials.h:201
Io::TlsConnectionOptions TlsConnectionOptions
Definition Credentials.h:213
CredentialsProviderProfileConfig()
Definition Credentials.h:173
Io::TlsContext * TlsContext
Definition Credentials.h:212
Definition Credentials.h:419
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition Credentials.h:459
Io::ClientBootstrap * Bootstrap
Definition Credentials.h:449
uint16_t DurationSeconds
Definition Credentials.h:440
std::shared_ptr< ICredentialsProvider > Provider
Definition Credentials.h:425
String SessionName
Definition Credentials.h:435
Io::TlsContext TlsCtx
Definition Credentials.h:454
String RoleArn
Definition Credentials.h:430
Definition Credentials.h:466
Io::TlsConnectionOptions TlsConnectionOptions
Definition Credentials.h:501
String TokenFilePath
Definition Credentials.h:487
Optional< Http::ProxyEnvVarOptions > ProxyEnvVarOptions
Definition Credentials.h:506
String Region
Definition Credentials.h:482
Io::ClientBootstrap * Bootstrap
Definition Credentials.h:496
String RoleArn
Definition Credentials.h:472
String SessionName
Definition Credentials.h:477
Definition Credentials.h:144
ByteCursor SecretAccessKey
Definition Credentials.h:160
ByteCursor AccessKeyId
Definition Credentials.h:155
CredentialsProviderStaticConfig()
Definition Credentials.h:145
ByteCursor SessionToken
Definition Credentials.h:165
Definition Credentials.h:303
Optional< Http::HttpClientConnectionProxyOptions > ProxyOptions
Definition Credentials.h:338
CredentialsProviderX509Config()
Definition Credentials.h:304
String Endpoint
Definition Credentials.h:333
String ThingName
Definition Credentials.h:322
String RoleAlias
Definition Credentials.h:325
Io::ClientBootstrap * Bootstrap
Definition Credentials.h:316
Io::TlsConnectionOptions TlsOptions
Definition Credentials.h:319