module Codepipe::Dsl::Role

Constants

PROPERTIES

Public Instance Methods

iam_policy(*definitions) click to toggle source

convenience wrapper methods

# File lib/codepipe/dsl/role.rb, line 19
def iam_policy(*definitions)
  @iam_statements = definitions.map { |definition| standardize_iam_policy(definition) }
end
managed_iam_policy(*definitions) click to toggle source
# File lib/codepipe/dsl/role.rb, line 39
def managed_iam_policy(*definitions)
  @managed_policy_arns = definitions.map { |definition| standardize_managed_iam_policy(definition) }
end
standardize_iam_policy(definition) click to toggle source

Returns standarized IAM statement

# File lib/codepipe/dsl/role.rb, line 24
def standardize_iam_policy(definition)
  case definition
  when String
    # Expands simple string from: logs => logs:*
    definition = "#{definition}:*" unless definition.include?(':')
    {
      action: [definition],
      effect: "Allow",
      resource: "*",
    }
  when Hash
    definition
  end
end
standardize_managed_iam_policy(definition) click to toggle source

AmazonEC2ReadOnlyAccess => arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess

# File lib/codepipe/dsl/role.rb, line 44
def standardize_managed_iam_policy(definition)
  return definition if definition.include?('iam::aws:policy')

  "arn:aws:iam::aws:policy/#{definition}"
end