Class: Jets::Resource::Permission
- Inherits:
-
Object
- Object
- Jets::Resource::Permission
- Extended by:
- Memoist
- Defined in:
- lib/jets/resource/permission.rb
Instance Method Summary collapse
- #attributes ⇒ Object
-
#initialize(replacements, associated_resource) ⇒ Permission
constructor
A new instance of Permission.
- #logical_id ⇒ Object
-
#principal ⇒ Object
Auto-detect principal from the associated resources.
- #properties ⇒ Object
- #replacer ⇒ Object
- #source_arn ⇒ Object
- #type ⇒ Object
Constructor Details
#initialize(replacements, associated_resource) ⇒ Permission
Returns a new instance of Permission.
5 6 7 8 9 10 |
# File 'lib/jets/resource/permission.rb', line 5 def initialize(replacements, associated_resource) @replacements = replacements # puts caller # puts "replacements #{replacements.inspect}" @associated_resource = associated_resource end |
Instance Method Details
#attributes ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/jets/resource/permission.rb', line 30 def attributes attributes = { type: "AWS::Lambda::Permission", properties: { function_name: "!GetAtt {namespace}LambdaFunction.Arn", action: "lambda:InvokeFunction", principal: principal, source_arn: source_arn, } } attributes = replacer.replace_placeholders(attributes) Jets::Pascalize.pascalize(attributes) end |
#logical_id ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/jets/resource/permission.rb', line 12 def logical_id logical_id = "{namespace}Permission" md = @associated_resource.logical_id.match(/(\d+)/) counter = md[1] if md logical_id = [logical_id, counter].compact.join('') # replace possible {namespace} in the logical id logical_id = replacer.replace_value(logical_id) Jets::Pascalize.pascalize_string(logical_id) end |
#principal ⇒ Object
Auto-detect principal from the associated resources.
46 47 48 |
# File 'lib/jets/resource/permission.rb', line 46 def principal Replacer.principal_map(@associated_resource.type) end |
#properties ⇒ Object
26 27 28 |
# File 'lib/jets/resource/permission.rb', line 26 def properties attributes['Properties'] end |
#replacer ⇒ Object
55 56 57 |
# File 'lib/jets/resource/permission.rb', line 55 def replacer Replacer.new(@replacements) end |
#source_arn ⇒ Object
50 51 52 53 |
# File 'lib/jets/resource/permission.rb', line 50 def source_arn default_arn = "!GetAtt #{@associated_resource.logical_id}.Arn" Replacer.source_arn_map(@associated_resource.type) || default_arn end |
#type ⇒ Object
22 23 24 |
# File 'lib/jets/resource/permission.rb', line 22 def type attributes['Type'] end |