Sha256: fe031821ec9d73b47b2cdf3a67525d317bc24eac971fdc5f60b0940ebe28dcf8
Contents?: true
Size: 1.52 KB
Versions: 19
Compression:
Stored size: 1.52 KB
Contents
require 'aws-sdk' Aws.use_bundled_cert! module TerraformDevKit class AwsConfig def initialize(config) unless config.nil? @profile = config.fetch('profile', nil) @region = config.fetch('region', nil) @access_key_id = config.fetch('access_key_id', nil) @secret_access_key = config.fetch('secret_access_key', nil) end end def credentials unless profile.nil? credentials = Aws::SharedCredentials.new(profile_name: profile) return credentials if credentials.set? end return Aws::Credentials.new(*access_keys) if access_keys_available? raise 'Cannot find AWS credentials' end def region @region || ENV['AWS_REGION'] end def profile @profile || ENV['AWS_PROFILE'] end private def access_keys return config_access_keys if config_has_access_keys? return environment_access_keys if environment_has_access_keys? nil end def access_keys_available? config_has_access_keys? || environment_has_access_keys? end def config_has_access_keys? !@access_key_id.nil? && !@secret_access_key.nil? end def config_access_keys return @access_key_id, @secret_access_key end def environment_has_access_keys? ENV.key?('AWS_ACCESS_KEY_ID') && ENV.key?('AWS_SECRET_ACCESS_KEY') end def environment_access_keys return ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'] end end end
Version data entries
19 entries across 19 versions & 1 rubygems