Module: Jets::Resource::Iam::BaseRoleDefinition

Included in:
ApplicationRole, ClassRole, FunctionRole
Defined in:
lib/jets/resource/iam/base_role_definition.rb

Instance Method Summary collapse

Instance Method Details

#definitionObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/jets/resource/iam/base_role_definition.rb', line 3

def definition
  logical_id = role_logical_id

  definition = {
    logical_id => {
      type: "AWS::IAM::Role",
      properties: {
        role_name: role_name,
        path: "/",
        assume_role_policy_document: {
          version: "2012-10-17",
          statement: [{
            effect: "Allow",
            principal: {service: ["lambda.amazonaws.com"]},
            action: ["sts:AssumeRole"]}
          ]
        }
      }
    }
  }

  definition[logical_id][:properties][:policies] = [
    policy_name: "#{role_name}-policy",
    policy_document: policy_document,
  ] unless policy_document['Statement'].empty?

  unless managed_policy_arns.empty?
    definition[logical_id][:properties][:managed_policy_arns] = managed_policy_arns
  end

  definition
end

#managed_policy_arnsObject



40
41
42
# File 'lib/jets/resource/iam/base_role_definition.rb', line 40

def managed_policy_arns
  ManagedPolicy.new(@managed_policy_definitions).arns
end

#policy_documentObject



36
37
38
# File 'lib/jets/resource/iam/base_role_definition.rb', line 36

def policy_document
  PolicyDocument.new(@policy_definitions).policy_document
end