Class: IamRoleParser

Inherits:
Object
  • Object
show all
Defined in:
lib/cfn-model/parser/iam_role_parser.rb

Instance Method Summary collapse

Instance Method Details

#parse(cfn_model:, resource:) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/cfn-model/parser/iam_role_parser.rb', line 9

def parse(cfn_model:, resource:)
  iam_role = resource

  iam_role.assume_role_policy_document = PolicyDocumentParser.new.parse(cfn_model, iam_role.assumeRolePolicyDocument)

  iam_role.policy_objects = iam_role.policies.map do |policy|
    next unless policy.has_key? 'PolicyName'

    new_policy = Policy.new
    new_policy.policy_name = References.resolve_value(cfn_model, policy['PolicyName'])
    new_policy.policy_document = PolicyDocumentParser.new.parse(cfn_model, policy['PolicyDocument'])
    new_policy
  end.reject { |policy| policy.nil? }

  iam_role
end