Class: Aws::SharedCredentials

Inherits:
Object
  • Object
show all
Includes:
CredentialProvider
Defined in:
lib/aws-sdk-core/shared_credentials.rb

Constant Summary collapse

KEY_MAP =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

{
  'aws_access_key_id' => 'access_key_id',
  'aws_secret_access_key' => 'secret_access_key',
  'aws_session_token' => 'session_token',
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from CredentialProvider

#access_key_id, #secret_access_key, #session_token, #set?

Methods included from Deprecations

#deprecated

Constructor Details

#initialize(options = {}) ⇒ SharedCredentials

Constructs a new SharedCredentials object. This will load AWS access credentials from an ini file, which supports profiles. The default profile name is ‘default’. You can specify the profile name with the ‘ENV` or with the `:profile_name` option.

Parameters:

  • [String] (Hash)

    a customizable set of options



24
25
26
27
28
29
30
# File 'lib/aws-sdk-core/shared_credentials.rb', line 24

def initialize(options = {})
  @path = options[:path] || default_path
  @profile_name = options[:profile_name]
  @profile_name ||= ENV['AWS_PROFILE']
  @profile_name ||= 'default'
  load_from_path if loadable?
end

Instance Attribute Details

#credentialsCredentials (readonly)

Returns:



39
40
41
# File 'lib/aws-sdk-core/shared_credentials.rb', line 39

def credentials
  @credentials
end

#pathString (readonly)

Returns:

  • (String)


33
34
35
# File 'lib/aws-sdk-core/shared_credentials.rb', line 33

def path
  @path
end

#profile_nameString (readonly)

Returns:

  • (String)


36
37
38
# File 'lib/aws-sdk-core/shared_credentials.rb', line 36

def profile_name
  @profile_name
end

Instance Method Details

#inspectObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



42
43
44
45
46
47
48
49
# File 'lib/aws-sdk-core/shared_credentials.rb', line 42

def inspect
  parts = [
    self.class.name,
    "profile_name=#{profile_name.inspect}",
    "path=#{path.inspect}",
  ]
  "#<#{parts.join(' ')}>"
end

#loadable?Boolean

Note:

This method does not indicate if the file found at #path will be parsable, only if it can be read.

Returns ‘true` if a credential file exists and has appropriate read permissions at #path.

Returns:

  • (Boolean)

    Returns ‘true` if a credential file exists and has appropriate read permissions at #path.



55
56
57
# File 'lib/aws-sdk-core/shared_credentials.rb', line 55

def loadable?
  !path.nil? && File.exist?(path) && File.readable?(path)
end