app/utils/AWSCredentialProviders.scala (38 lines of code) (raw):
package utils
import com.amazonaws.auth.profile.{
ProfileCredentialsProvider => ProfileCredentialsProviderV1
}
import com.amazonaws.auth.{
AWSCredentialsProviderChain,
DefaultAWSCredentialsProviderChain
}
import software.amazon.awssdk.auth.credentials.{
AwsCredentialsProviderChain,
DefaultCredentialsProvider,
ProfileCredentialsProvider
}
object AWSCredentialProviders extends Logging {
def profileCredentialsProvider(
profileName: String
): AwsCredentialsProviderChain = {
log.info(s"Using $profileName profile credentials")
AwsCredentialsProviderChain.of(
ProfileCredentialsProvider.builder.profileName(profileName).build
)
}
private val deployToolsProfile = "deployTools"
def deployToolsCredentialsProviderChain: AwsCredentialsProviderChain =
AwsCredentialsProviderChain.of(
ProfileCredentialsProvider.builder.profileName(deployToolsProfile).build,
DefaultCredentialsProvider.create
)
def profileCredentialsProviderV1(profileName: String) = {
log.info(s"Using $profileName profile credentials")
new ProfileCredentialsProviderV1(profileName)
}
def deployToolsCredentialsProviderChainV1: AWSCredentialsProviderChain =
new AWSCredentialsProviderChain(
profileCredentialsProviderV1(deployToolsProfile),
new DefaultAWSCredentialsProviderChain
)
}