All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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