class Awssume::Configuration
A class for managing the properties needed for assuming a role
Public Class Methods
attrs()
click to toggle source
# File lib/awssume/configuration.rb, line 27 def self.attrs self.defaults.merge(self.options) end
default_session_name()
click to toggle source
# File lib/awssume/configuration.rb, line 4 def self.default_session_name "AwssumedSession#{Time.new.to_i}" end
defaults()
click to toggle source
Defaults must have a value: a value passed in or a hardcoded default The utility will exit with an error if a value is missing for a default
# File lib/awssume/configuration.rb, line 10 def self.defaults { region: ENV['AWS_REGION'] || ENV['AWS_DEFAULT_REGION'], role_arn: ENV['AWS_ROLE_ARN'], role_session_name: ENV['AWS_ROLE_SESSION_NAME'] || default_session_name, } end
new(opts = {})
click to toggle source
# File lib/awssume/configuration.rb, line 33 def initialize(opts = {}) attrs.each do |k, _| attr_val = validate_attrs(attrs.merge(opts), k) instance_variable_set("@#{k}", attr_val) end end
options()
click to toggle source
Options are not required to have a value The utility will function without issue if an optional value is missing
# File lib/awssume/configuration.rb, line 20 def self.options { external_id: ENV['AWS_ROLE_EXTERNAL_ID'], duration_seconds: ENV['AWS_ROLE_DURATION_SECONDS'].to_i } end
Private Instance Methods
attrs()
click to toggle source
# File lib/awssume/configuration.rb, line 66 def attrs self.class.attrs end
is_optional(attr_key)
click to toggle source
# File lib/awssume/configuration.rb, line 42 def is_optional(attr_key) self.class.options.keys.include?(attr_key) end
missing_attr_error_msg(key)
click to toggle source
# File lib/awssume/configuration.rb, line 54 def missing_attr_error_msg(key) [ "Missing '#{key}'", 'Args should be passed in or set in the env:', "AWS_#{key.upcase}=value awssume" ].join("\n") end
throwout_nils(attrs)
click to toggle source
# File lib/awssume/configuration.rb, line 62 def throwout_nils(attrs) attrs.reject { |_, v| v.nil? } end
validate_attrs(attrs, attr_key)
click to toggle source
# File lib/awssume/configuration.rb, line 46 def validate_attrs(attrs, attr_key) throwout_nils(attrs).fetch(attr_key) do unless is_optional(attr_key) raise ArgumentError, missing_attr_error_msg(attr_key) end end end