io.linguarobot.aws.cdk.maven.AccountCredentialsProviderChain Maven / Gradle / Ivy
package io.linguarobot.aws.cdk.maven;
import io.linguarobot.aws.cdk.maven.api.AccountCredentialsProvider;
import software.amazon.awssdk.auth.credentials.AwsCredentials;
import java.util.List;
import java.util.Optional;
/**
* Composite {@link AccountCredentialsProvider} that sequentially delegates to a chain of providers looking in order
* to find {@link AwsCredentials} for the account.
*/
public class AccountCredentialsProviderChain implements AccountCredentialsProvider {
private final List credentialsProviders;
public AccountCredentialsProviderChain(List credentialsProviders) {
this.credentialsProviders = credentialsProviders;
}
@Override
public Optional get(String accountId) {
return credentialsProviders.stream()
.map(credentialsProvider -> credentialsProvider.get(accountId))
.filter(Optional::isPresent)
.map(Optional::get)
.findAny();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy