Class: Codebuild::Role

Inherits:
Object
  • Object
show all
Includes:
Dsl::Role, Evaluate, Variables
Defined in:
lib/codebuild/role.rb

Constant Summary

Constants included from Dsl::Role

Dsl::Role::PROPERTIES

Instance Method Summary collapse

Methods included from Variables

#load_variables, #load_variables_file

Methods included from Evaluate

#evaluate

Methods included from Dsl::Role

#iam_policy, #managed_iam_policy, #standardize_iam_policy, #standardize_managed_iam_policy

Constructor Details

#initialize(options = {}) ⇒ Role

Returns a new instance of Role.



9
10
11
12
13
14
# File 'lib/codebuild/role.rb', line 9

def initialize(options={})
  @options = options
  @role_path = options[:role_path] || get_role_path
  @properties = default_properties
  @iam_policy = {}
end

Instance Method Details

#runObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/codebuild/role.rb', line 16

def run
  load_variables
  evaluate(@role_path) if File.exist?(@role_path)
  @properties[:policies] = [{
    policy_name: "CodeBuildAccess",
    policy_document: {
      version: "2012-10-17",
      statement: derived_iam_statements
    }
  }]

  if @managed_policy_arns && !@managed_policy_arns.empty?
    @properties[:managed_policy_arns] = @managed_policy_arns
  else
    @properties[:managed_policy_arns] = default_managed_policy_arns
  end

  resource = {
    IamRole: {
      type: "AWS::IAM::Role",
      properties: @properties
    }
  }
  CfnCamelizer.transform(resource)
end