Sha256: f2c348f3030c598f652f807d2af66dd2008fa6a713e5a3e50e53cef9954e70fc

Contents?: true

Size: 1.23 KB

Versions: 16

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 = 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

16 entries across 16 versions & 1 rubygems

Version Path
jets-0.6.6 lib/jets/rule/task.rb
jets-0.6.5 lib/jets/rule/task.rb
jets-0.6.4 lib/jets/rule/task.rb
jets-0.6.3 lib/jets/rule/task.rb
jets-0.6.2 lib/jets/rule/task.rb
jets-0.6.1 lib/jets/rule/task.rb
jets-0.6.0 lib/jets/rule/task.rb
jets-0.5.8 lib/jets/rule/task.rb
jets-0.5.7 lib/jets/rule/task.rb
jets-0.5.6 lib/jets/rule/task.rb
jets-0.5.5 lib/jets/rule/task.rb
jets-0.5.4 lib/jets/rule/task.rb
jets-0.5.3 lib/jets/rule/task.rb
jets-0.5.2 lib/jets/rule/task.rb
jets-0.5.1 lib/jets/rule/task.rb
jets-0.5.0 lib/jets/rule/task.rb