Class: Jets::Resource::Config::ConfigRule
- Defined in:
- lib/jets/resource/config/config_rule.rb
Direct Known Subclasses
Instance Method Summary collapse
- #config_rule_logical_id ⇒ Object
- #config_rule_name ⇒ Object
- #definition ⇒ Object
-
#definition_properties ⇒ Object
Do not name this method properties, that is a computed method of ‘Jets::Resource::Base`.
-
#initialize(app_class, meth, props = {}) ⇒ ConfigRule
constructor
A new instance of ConfigRule.
- #namespace ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(app_class, meth, props = {}) ⇒ ConfigRule
Returns a new instance of ConfigRule.
3 4 5 6 7 |
# File 'lib/jets/resource/config/config_rule.rb', line 3 def initialize(app_class, meth, props={}) @app_class = app_class.to_s @meth = meth @props = props # associated_properties from dsl.rb end |
Instance Method Details
#config_rule_logical_id ⇒ Object
47 48 49 |
# File 'lib/jets/resource/config/config_rule.rb', line 47 def config_rule_logical_id "{namespace}_config_rule" end |
#config_rule_name ⇒ Object
51 52 53 54 55 56 |
# File 'lib/jets/resource/config/config_rule.rb', line 51 def config_rule_name app_class = @app_class.underscore.gsub(/_rule$/,'') ns = namespace ns = nil if ns == false # for compact [ns, "#{app_class}_#{@meth}"].compact.join('_').dasherize end |
#definition ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/jets/resource/config/config_rule.rb', line 9 def definition base = { config_rule_logical_id => { type: "AWS::Config::ConfigRule", properties: definition_properties } } # Explicitly set depends_on to help with CloudFormation random race condition. # Seems to be a new CloudFormation and AWS Config resource issue. if definition_properties[:source][:owner] == 'CUSTOM_LAMBDA' base[config_rule_logical_id][:depends_on] = "{namespace}Permission" end base end |
#definition_properties ⇒ Object
Do not name this method properties, that is a computed method of ‘Jets::Resource::Base`
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/jets/resource/config/config_rule.rb', line 27 def definition_properties { config_rule_name: config_rule_name, source: { owner: "CUSTOM_LAMBDA", source_identifier: "!GetAtt {namespace}LambdaFunction.Arn", source_details: [ { event_source: "aws.config", message_type: "ConfigurationItemChangeNotification" }, { event_source: "aws.config", message_type: "OversizedConfigurationItemChangeNotification" } ] }, }.deep_merge(@props) end |
#namespace ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/jets/resource/config/config_rule.rb', line 58 def namespace namespace = nil klass = @app_class.constantize while klass != Jets::Lambda::Functions namespace = klass.rule_namespace break if namespace or namespace == false klass = klass.superclass end if namespace.nil? Jets.config.project_namespace else namespace end end |