class AwsCliConfigParser::CachedCredential
Attributes
assumed_role[R]
configuration[R]
expiration_date[R]
Public Class Methods
from_io(io, parse_json: JSON.method(:parse), parse_date: DateTime.method(:parse))
click to toggle source
# File lib/aws_cli_config_parser/cached_credential.rb, line 16 def self.from_io io, parse_json: JSON.method(:parse), parse_date: DateTime.method(:parse) json = parse_json[io.read] assumed_role = json.dig('AssumedRoleUser', 'Arn') or return nil assumed_role = assumed_role.match(%r|arn:aws:sts:\w*:(\d{12}):assumed-role/(.+?)/?\w*/?$|)&.captures or return nil expiration_date = json.dig('Credentials', 'Expiration') or return nil expiration_date = parse_date[expiration_date] new( assumed_role, expiration_date, 'aws_access_key_id' => json.dig('Credentials', 'AccessKeyId'), 'aws_secret_access_key' => json.dig('Credentials', 'SecretAccessKey'), 'aws_session_token' => json.dig('Credentials', 'SessionToken'), ) end
new(assumed_role, expiration_date, configuration)
click to toggle source
# File lib/aws_cli_config_parser/cached_credential.rb, line 8 def initialize assumed_role, expiration_date, configuration @assumed_role = assumed_role or raise TypeError @expiration_date = expiration_date.to_time @configuration = configuration.to_hash end
Public Instance Methods
expired?(now: lambda{ Time.now.utc })
click to toggle source
# File lib/aws_cli_config_parser/cached_credential.rb, line 34 def expired? now: lambda{ Time.now.utc } @expiration_date <= now.call end