class Miam::DSL::Context::Role
Public Class Methods
new(context, name, &block)
click to toggle source
# File lib/miam/dsl/context/role.rb, line 4 def initialize(context, name, &block) @role_name = name @context = context.merge(:role_name => name) @result = {:instance_profiles => [], :max_session_duration => 3600, :policies => {}, :attached_managed_policies => []} instance_eval(&block) end
Public Instance Methods
result()
click to toggle source
# File lib/miam/dsl/context/role.rb, line 11 def result unless @result[:assume_role_policy_document] raise "Role `#{@role_name}`: AssumeRolePolicyDocument is not defined" end @result end
Private Instance Methods
assume_role_policy_document() { || ... }
click to toggle source
# File lib/miam/dsl/context/role.rb, line 29 def assume_role_policy_document if @result[:assume_role_policy_document] raise "Role `#{@role_name}` > AssumeRolePolicyDocument: already defined" end assume_role_policy_document = yield unless assume_role_policy_document.kind_of?(Hash) raise "Role `#{@role_name}` > AssumeRolePolicyDocument: wrong argument type #{policy_document.class} (expected Hash)" end @result[:assume_role_policy_document] = assume_role_policy_document end
attached_managed_policies(*policies)
click to toggle source
# File lib/miam/dsl/context/role.rb, line 59 def attached_managed_policies(*policies) @result[:attached_managed_policies].concat(policies.map(&:to_s)) end
instance_profiles(*profiles)
click to toggle source
# File lib/miam/dsl/context/role.rb, line 21 def instance_profiles(*profiles) @result[:instance_profiles].concat(profiles.map(&:to_s)) end
max_session_duration(duration)
click to toggle source
# File lib/miam/dsl/context/role.rb, line 25 def max_session_duration(duration) @result[:max_session_duration] = duration end
policy(name) { || ... }
click to toggle source
# File lib/miam/dsl/context/role.rb, line 43 def policy(name) name = name.to_s if @result[:policies][name] raise "Role `#{@role_name}` > Policy `#{name}`: already defined" end policy_document = yield unless policy_document.kind_of?(Hash) raise "Role `#{@role_name}` > Policy `#{name}`: wrong argument type #{policy_document.class} (expected Hash)" end @result[:policies][name] = policy_document end