Sha256: bbd929029e562d1c7dc9b9ff3c710d7cbf7569614eff2253d37b27e3e2648464

Contents?: true

Size: 1.23 KB

Versions: 5

Compression:

Stored size: 1.23 KB

Contents

class Jets::Rule::Task < Jets::Lambda::Task
  attr_reader :config_rule
  def initialize(class_name, meth, options={})
    super
    @config_rule = options[:config_rule] || {}
  end

  def config_rule_name
    @properties[:config_rule_name] || conventional_config_rule_name
  end

  def conventional_config_rule_name
    name_without_rule = @class_name.underscore.gsub(/_rule$/,'')
    "#{name_without_rule}_#{@meth}".dasherize
  end

  def config_rule_properties
    props = Jets::Pascalize.pascalize(@config_rule)
    props = config_rule_defaults.merge(props)
    props
  end

  def config_rule_defaults
    map = Jets::Cfn::TemplateMappers::ConfigRuleMapper.new(self)
    source_identifier = "!GetAtt #{map.lambda_function_logical_id}.Arn"
    {
      "ConfigRuleName" => config_rule_name,
      "Source" => {
        "Owner" => "CUSTOM_LAMBDA",
        "SourceIdentifier" => source_identifier,
        "SourceDetails" => [
            {
                "EventSource" => "aws.config",
                "MessageType" => "ConfigurationItemChangeNotification"
            },
            {
                "EventSource" => "aws.config",
                "MessageType" => "OversizedConfigurationItemChangeNotification"
            }
        ]
      }
    }
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
jets-0.7.1 lib/jets/rule/task.rb
jets-0.7.0 lib/jets/rule/task.rb
jets-0.6.9 lib/jets/rule/task.rb
jets-0.6.8 lib/jets/rule/task.rb
jets-0.6.7 lib/jets/rule/task.rb