sparkle_formation 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +7 -10
 - data/bin/aws_resources +51 -0
 - data/bin/heat_resources +33 -0
 - data/lib/sparkle_formation.rb +11 -1
 - data/lib/sparkle_formation/aws.rb +89 -0
 - data/lib/sparkle_formation/aws/cfn_resources.rb +461 -0
 - data/lib/sparkle_formation/sparkle_attribute.rb +75 -67
 - data/lib/sparkle_formation/sparkle_formation.rb +164 -28
 - data/lib/sparkle_formation/sparkle_struct.rb +11 -0
 - data/lib/sparkle_formation/translation.rb +87 -0
 - data/lib/sparkle_formation/translation/heat.rb +66 -0
 - data/lib/sparkle_formation/translation/rackspace.rb +34 -0
 - data/lib/sparkle_formation/utils.rb +50 -0
 - data/lib/sparkle_formation/version.rb +1 -1
 - data/sparkle_formation-0.2.0.gem +0 -0
 - data/sparkle_formation.gemspec +1 -0
 - metadata +27 -2
 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,23 +1,20 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                sparkle_formation (0. 
     | 
| 
       5 
     | 
    
         
            -
                  attribute_struct (~> 0. 
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            PATH
         
     | 
| 
       8 
     | 
    
         
            -
              remote: /home/spox/Projects/chrisroberts/attribute_struct
         
     | 
| 
       9 
     | 
    
         
            -
              specs:
         
     | 
| 
       10 
     | 
    
         
            -
                attribute_struct (0.1.7)
         
     | 
| 
       11 
     | 
    
         
            -
                  hashie (>= 2.0.0)
         
     | 
| 
      
 4 
     | 
    
         
            +
                sparkle_formation (0.2.0)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  attribute_struct (~> 0.2.2)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  multi_json
         
     | 
| 
       12 
7 
     | 
    
         | 
| 
       13 
8 
     | 
    
         
             
            GEM
         
     | 
| 
       14 
9 
     | 
    
         
             
              remote: https://rubygems.org/
         
     | 
| 
       15 
10 
     | 
    
         
             
              specs:
         
     | 
| 
       16 
     | 
    
         
            -
                 
     | 
| 
      
 11 
     | 
    
         
            +
                attribute_struct (0.2.2)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  hashie (>= 2.0.0)
         
     | 
| 
      
 13 
     | 
    
         
            +
                hashie (2.1.1)
         
     | 
| 
      
 14 
     | 
    
         
            +
                multi_json (1.10.1)
         
     | 
| 
       17 
15 
     | 
    
         | 
| 
       18 
16 
     | 
    
         
             
            PLATFORMS
         
     | 
| 
       19 
17 
     | 
    
         
             
              ruby
         
     | 
| 
       20 
18 
     | 
    
         | 
| 
       21 
19 
     | 
    
         
             
            DEPENDENCIES
         
     | 
| 
       22 
     | 
    
         
            -
              attribute_struct!
         
     | 
| 
       23 
20 
     | 
    
         
             
              sparkle_formation!
         
     | 
    
        data/bin/aws_resources
    ADDED
    
    | 
         @@ -0,0 +1,51 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'nokogiri'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'fileutils'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            STORE = '/tmp/aws-cfn-docs'
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            unless(File.directory?(STORE))
         
     | 
| 
      
 10 
     | 
    
         
            +
              FileUtils.mkdir_p(STORE)
         
     | 
| 
      
 11 
     | 
    
         
            +
              Dir.chdir(STORE) do
         
     | 
| 
      
 12 
     | 
    
         
            +
                unless(system('wget -q -r -l 1 -A "aws-*" "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html"'))
         
     | 
| 
      
 13 
     | 
    
         
            +
                  puts "FAILED: Documentation fetching failed!"
         
     | 
| 
      
 14 
     | 
    
         
            +
                  exit -1
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            aws_resources = {}
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            Dir.glob(File.join(STORE, '**/*.html')).each do |path|
         
     | 
| 
      
 22 
     | 
    
         
            +
              resource = nil
         
     | 
| 
      
 23 
     | 
    
         
            +
              begin
         
     | 
| 
      
 24 
     | 
    
         
            +
                file = Nokogiri::HTML(File.open(path, 'r'))
         
     | 
| 
      
 25 
     | 
    
         
            +
                type = file.css('h1.topictitle').text
         
     | 
| 
      
 26 
     | 
    
         
            +
                if(type.include?(' '))
         
     | 
| 
      
 27 
     | 
    
         
            +
                  next
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
                resource = file.css('div.variablelist').first
         
     | 
| 
      
 30 
     | 
    
         
            +
                if(resource)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  aws_resources[type] = {:properties => resource.css('span.term').map(&:text).map(&:strip)}
         
     | 
| 
      
 32 
     | 
    
         
            +
                else
         
     | 
| 
      
 33 
     | 
    
         
            +
                  resource = file.css('div.informaltable')
         
     | 
| 
      
 34 
     | 
    
         
            +
                  if(resource)
         
     | 
| 
      
 35 
     | 
    
         
            +
                    aws_resources[type] = {
         
     | 
| 
      
 36 
     | 
    
         
            +
                      :properties => resource.css('tr').map{|tr|
         
     | 
| 
      
 37 
     | 
    
         
            +
                        item = tr.css('td').first
         
     | 
| 
      
 38 
     | 
    
         
            +
                        item ? item.text.strip : nil
         
     | 
| 
      
 39 
     | 
    
         
            +
                      }.compact
         
     | 
| 
      
 40 
     | 
    
         
            +
                    }
         
     | 
| 
      
 41 
     | 
    
         
            +
                  else
         
     | 
| 
      
 42 
     | 
    
         
            +
                    next
         
     | 
| 
      
 43 
     | 
    
         
            +
                  end
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
                aws_resources[type][:path] = File.basename(path)
         
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
            end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            require 'pp'
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            pp aws_resources
         
     | 
    
        data/bin/heat_resources
    ADDED
    
    | 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'nokogiri'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'fileutils'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            STORE = '/tmp/openstack-heat-docs'
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            unless(File.directory?(STORE))
         
     | 
| 
      
 10 
     | 
    
         
            +
              FileUtils.mkdir_p(STORE)
         
     | 
| 
      
 11 
     | 
    
         
            +
              Dir.chdir(STORE) do
         
     | 
| 
      
 12 
     | 
    
         
            +
                unless(system('wget -q "http://docs.openstack.org/developer/heat/template_guide/openstack.html"'))
         
     | 
| 
      
 13 
     | 
    
         
            +
                  puts "FAILED: Documentation fetching failed!"
         
     | 
| 
      
 14 
     | 
    
         
            +
                  exit -1
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            file = Nokogiri::HTML(File.open(File.join(STORE, 'openstack.html'), 'r'))
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            resources = Hash[
         
     | 
| 
      
 22 
     | 
    
         
            +
              file.css('div.section[id*="json"]').css('pre.literal-block').map do |node|
         
     | 
| 
      
 23 
     | 
    
         
            +
                [
         
     | 
| 
      
 24 
     | 
    
         
            +
                  node.text.scan(/Type":.*"(.+?)"/).flatten.first,
         
     | 
| 
      
 25 
     | 
    
         
            +
                  node.text.scan(/Properties.*?\{(.+)$/m).flatten.first.
         
     | 
| 
      
 26 
     | 
    
         
            +
                  strip.split("\n").map{|z| z.split(' ')}.flatten.find_all{|z| !z.scan(/^[A-Za-z0-9_"]+:$/).empty?}.map{|z| z.tr('":', '')}
         
     | 
| 
      
 27 
     | 
    
         
            +
                ]
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
            ]
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            require 'pp'
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            pp resources
         
     | 
    
        data/lib/sparkle_formation.rb
    CHANGED
    
    | 
         @@ -16,5 +16,15 @@ 
     | 
|
| 
       16 
16 
     | 
    
         
             
            # limitations under the License.
         
     | 
| 
       17 
17 
     | 
    
         
             
            #
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            require ' 
     | 
| 
      
 19 
     | 
    
         
            +
            require 'attribute_struct'
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            class SparkleFormation
         
     | 
| 
      
 22 
     | 
    
         
            +
              autoload :Aws, 'sparkle_formation/aws'
         
     | 
| 
      
 23 
     | 
    
         
            +
              autoload :SparkleAttribute, 'sparkle_formation/sparkle_attribute'
         
     | 
| 
      
 24 
     | 
    
         
            +
              autoload :SparkleStruct, 'sparkle_formation/sparkle_struct'
         
     | 
| 
      
 25 
     | 
    
         
            +
              autoload :Utils, 'sparkle_formation/utils'
         
     | 
| 
      
 26 
     | 
    
         
            +
              autoload :Translation, 'sparkle_formation/translation'
         
     | 
| 
      
 27 
     | 
    
         
            +
              autoload :Version, 'sparkle_formation/version'
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       20 
30 
     | 
    
         
             
            require 'sparkle_formation/sparkle_formation'
         
     | 
| 
         @@ -0,0 +1,89 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'sparkle_formation'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class SparkleFormation
         
     | 
| 
      
 4 
     | 
    
         
            +
              class Aws
         
     | 
| 
      
 5 
     | 
    
         
            +
                class << self
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                  include SparkleFormation::Utils::AnimalStrings
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  # type:: AWS CFN resource type
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # hash:: Hash of information
         
     | 
| 
      
 11 
     | 
    
         
            +
                  # Register an AWS resource
         
     | 
| 
      
 12 
     | 
    
         
            +
                  def register(type, hash)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    unless(class_variable_defined?(:@@registry))
         
     | 
| 
      
 14 
     | 
    
         
            +
                      @@registry = AttributeStruct.hashish.new
         
     | 
| 
      
 15 
     | 
    
         
            +
                    end
         
     | 
| 
      
 16 
     | 
    
         
            +
                    @@registry[type] = hash
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  # identifier:: resource identifier
         
     | 
| 
      
 20 
     | 
    
         
            +
                  # key:: key of value to return from information hash
         
     | 
| 
      
 21 
     | 
    
         
            +
                  # Return the associated aws resource information
         
     | 
| 
      
 22 
     | 
    
         
            +
                  def resource(identifier, key=nil)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    res = lookup(identifier)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    if(key && res)
         
     | 
| 
      
 25 
     | 
    
         
            +
                      res[key.to_sym]
         
     | 
| 
      
 26 
     | 
    
         
            +
                    else
         
     | 
| 
      
 27 
     | 
    
         
            +
                      res
         
     | 
| 
      
 28 
     | 
    
         
            +
                    end
         
     | 
| 
      
 29 
     | 
    
         
            +
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                  # json_path_or_hash:: Path to JSON file or Hash instance of resources
         
     | 
| 
      
 32 
     | 
    
         
            +
                  # Register all discovered resources
         
     | 
| 
      
 33 
     | 
    
         
            +
                  def load(json_path_or_hash)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    if(json_path_or_hash.is_a?(String))
         
     | 
| 
      
 35 
     | 
    
         
            +
                      require 'json'
         
     | 
| 
      
 36 
     | 
    
         
            +
                      content = AttributeStruct.hashish.new(JSON.load(File.read(json)))
         
     | 
| 
      
 37 
     | 
    
         
            +
                    else
         
     | 
| 
      
 38 
     | 
    
         
            +
                      content = json_path_or_hash
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                    content.each do |type, hash|
         
     | 
| 
      
 41 
     | 
    
         
            +
                      register(type, hash)
         
     | 
| 
      
 42 
     | 
    
         
            +
                    end
         
     | 
| 
      
 43 
     | 
    
         
            +
                    true
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  # Load the builtin AWS resources
         
     | 
| 
      
 47 
     | 
    
         
            +
                  def load!
         
     | 
| 
      
 48 
     | 
    
         
            +
                    require File.join(File.dirname(__FILE__), 'aws', 'cfn_resources.rb')
         
     | 
| 
      
 49 
     | 
    
         
            +
                    load(AWS_RESOURCES)
         
     | 
| 
      
 50 
     | 
    
         
            +
                  end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                  # key:: string or symbol
         
     | 
| 
      
 53 
     | 
    
         
            +
                  # Return matching registry key. Uses snaked resource type for
         
     | 
| 
      
 54 
     | 
    
         
            +
                  # matching and will attempt all parts for match
         
     | 
| 
      
 55 
     | 
    
         
            +
                  def registry_key(key)
         
     | 
| 
      
 56 
     | 
    
         
            +
                    key = key.to_s
         
     | 
| 
      
 57 
     | 
    
         
            +
                    @@registry.keys.detect do |ref|
         
     | 
| 
      
 58 
     | 
    
         
            +
                      ref = ref.tr('::', '_')
         
     | 
| 
      
 59 
     | 
    
         
            +
                      snake_ref = snake(ref).to_s.gsub('__', '_')
         
     | 
| 
      
 60 
     | 
    
         
            +
                      snake_parts = snake_ref.split('_')
         
     | 
| 
      
 61 
     | 
    
         
            +
                      until(snake_parts.empty?)
         
     | 
| 
      
 62 
     | 
    
         
            +
                        break if snake_parts.join('_') == key
         
     | 
| 
      
 63 
     | 
    
         
            +
                        snake_parts.shift
         
     | 
| 
      
 64 
     | 
    
         
            +
                      end
         
     | 
| 
      
 65 
     | 
    
         
            +
                      !snake_parts.empty?
         
     | 
| 
      
 66 
     | 
    
         
            +
                    end
         
     | 
| 
      
 67 
     | 
    
         
            +
                  end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                  # key:: string or symbol
         
     | 
| 
      
 70 
     | 
    
         
            +
                  # Returns resource information of type discovered via matching
         
     | 
| 
      
 71 
     | 
    
         
            +
                  # using #registry_key
         
     | 
| 
      
 72 
     | 
    
         
            +
                  def lookup(key)
         
     | 
| 
      
 73 
     | 
    
         
            +
                    @@registry[registry_key(key)]
         
     | 
| 
      
 74 
     | 
    
         
            +
                  end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                  # Return the currently loaded AWS registry
         
     | 
| 
      
 77 
     | 
    
         
            +
                  def registry
         
     | 
| 
      
 78 
     | 
    
         
            +
                    if(class_variable_defined?(:@@registry))
         
     | 
| 
      
 79 
     | 
    
         
            +
                      @@registry
         
     | 
| 
      
 80 
     | 
    
         
            +
                    else
         
     | 
| 
      
 81 
     | 
    
         
            +
                      {}
         
     | 
| 
      
 82 
     | 
    
         
            +
                    end
         
     | 
| 
      
 83 
     | 
    
         
            +
                  end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
      
 86 
     | 
    
         
            +
              end
         
     | 
| 
      
 87 
     | 
    
         
            +
            end
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
            SfnAws = SparkleFormation::Aws
         
     | 
| 
         @@ -0,0 +1,461 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            AWS_RESOURCES = {"AWS::IAM::InstanceProfile"=>
         
     | 
| 
      
 2 
     | 
    
         
            +
              {:properties=>["Path", "Roles"],
         
     | 
| 
      
 3 
     | 
    
         
            +
                :path=>"aws-resource-iam-instanceprofile.html"},
         
     | 
| 
      
 4 
     | 
    
         
            +
              "AWS::EC2::EIP"=>
         
     | 
| 
      
 5 
     | 
    
         
            +
              {:properties=>["InstanceId", "Domain"],
         
     | 
| 
      
 6 
     | 
    
         
            +
                :path=>"aws-properties-ec2-eip.html"},
         
     | 
| 
      
 7 
     | 
    
         
            +
              "AWS::IAM::Group"=>
         
     | 
| 
      
 8 
     | 
    
         
            +
              {:properties=>["Path", "Policies"], :path=>"aws-properties-iam-group.html"},
         
     | 
| 
      
 9 
     | 
    
         
            +
              "AWS::EC2::NetworkInterface"=>
         
     | 
| 
      
 10 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 11 
     | 
    
         
            +
                ["Description",
         
     | 
| 
      
 12 
     | 
    
         
            +
                  "GroupSet",
         
     | 
| 
      
 13 
     | 
    
         
            +
                  "PrivateIpAddress",
         
     | 
| 
      
 14 
     | 
    
         
            +
                  "PrivateIpAddresses",
         
     | 
| 
      
 15 
     | 
    
         
            +
                  "SecondaryPrivateIpAddressCount",
         
     | 
| 
      
 16 
     | 
    
         
            +
                  "SourceDestCheck",
         
     | 
| 
      
 17 
     | 
    
         
            +
                  "SubnetId",
         
     | 
| 
      
 18 
     | 
    
         
            +
                  "Tags"],
         
     | 
| 
      
 19 
     | 
    
         
            +
                :path=>"aws-resource-ec2-network-interface.html"},
         
     | 
| 
      
 20 
     | 
    
         
            +
              "AWS::CloudFormation::Stack"=>
         
     | 
| 
      
 21 
     | 
    
         
            +
              {:properties=>["TemplateURL", "TimeoutInMinutes", "Parameters"],
         
     | 
| 
      
 22 
     | 
    
         
            +
                :path=>"aws-properties-stack.html"},
         
     | 
| 
      
 23 
     | 
    
         
            +
              "AWS::SDB::Domain"=>{:properties=>[], :path=>"aws-properties-simpledb.html"},
         
     | 
| 
      
 24 
     | 
    
         
            +
              "AWS::IAM::AccessKey"=>
         
     | 
| 
      
 25 
     | 
    
         
            +
              {:properties=>["Serial", "Status", "UserName"],
         
     | 
| 
      
 26 
     | 
    
         
            +
                :path=>"aws-properties-iam-accesskey.html"},
         
     | 
| 
      
 27 
     | 
    
         
            +
              "AWS::EC2::DHCPOptions"=>
         
     | 
| 
      
 28 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 29 
     | 
    
         
            +
                ["DomainName",
         
     | 
| 
      
 30 
     | 
    
         
            +
                  "DomainNameServers",
         
     | 
| 
      
 31 
     | 
    
         
            +
                  "NetbiosNameServers",
         
     | 
| 
      
 32 
     | 
    
         
            +
                  "NetbiosNodeType",
         
     | 
| 
      
 33 
     | 
    
         
            +
                  "NtpServers",
         
     | 
| 
      
 34 
     | 
    
         
            +
                  "Tags"],
         
     | 
| 
      
 35 
     | 
    
         
            +
                :path=>"aws-resource-ec2-dhcp-options.html"},
         
     | 
| 
      
 36 
     | 
    
         
            +
              "AWS::EC2::SubnetRouteTableAssociation"=>
         
     | 
| 
      
 37 
     | 
    
         
            +
              {:properties=>["RouteTableId", "SubnetId"],
         
     | 
| 
      
 38 
     | 
    
         
            +
                :path=>"aws-resource-ec2-subnet-route-table-assoc.html"},
         
     | 
| 
      
 39 
     | 
    
         
            +
              "AWS::IAM::Policy"=>
         
     | 
| 
      
 40 
     | 
    
         
            +
              {:properties=>["Groups", "PolicyDocument", "PolicyName", "Roles", "Users"],
         
     | 
| 
      
 41 
     | 
    
         
            +
                :path=>"aws-properties-iam-policy.html"},
         
     | 
| 
      
 42 
     | 
    
         
            +
              "AWS::CloudFront::Distribution"=>
         
     | 
| 
      
 43 
     | 
    
         
            +
              {:properties=>["DistributionConfig"],
         
     | 
| 
      
 44 
     | 
    
         
            +
                :path=>"aws-properties-cloudfront-distribution.html"},
         
     | 
| 
      
 45 
     | 
    
         
            +
              "AWS::RDS::DBSubnetGroup"=>
         
     | 
| 
      
 46 
     | 
    
         
            +
              {:properties=>["DBSubnetGroupDescription", "SubnetIds", "Tags"],
         
     | 
| 
      
 47 
     | 
    
         
            +
                :path=>"aws-resource-rds-dbsubnet-group.html"},
         
     | 
| 
      
 48 
     | 
    
         
            +
              "AWS::EC2::CustomerGateway"=>
         
     | 
| 
      
 49 
     | 
    
         
            +
              {:properties=>["BgpAsn", "IpAddress", "Tags", "Type"],
         
     | 
| 
      
 50 
     | 
    
         
            +
                :path=>"aws-resource-ec2-customer-gateway.html"},
         
     | 
| 
      
 51 
     | 
    
         
            +
              "AWS::EC2::NetworkInterfaceAttachment"=>
         
     | 
| 
      
 52 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 53 
     | 
    
         
            +
                ["DeleteOnTermination", "DeviceIndex", "InstanceId", "NetworkInterfaceId"],
         
     | 
| 
      
 54 
     | 
    
         
            +
                :path=>"aws-resource-ec2-network-interface-attachment.html"},
         
     | 
| 
      
 55 
     | 
    
         
            +
              "AWS::S3::Bucket"=>
         
     | 
| 
      
 56 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 57 
     | 
    
         
            +
                ["AccessControl", "BucketName", "Tags", "WebsiteConfiguration"],
         
     | 
| 
      
 58 
     | 
    
         
            +
                :path=>"aws-properties-s3-bucket.html"},
         
     | 
| 
      
 59 
     | 
    
         
            +
              "AWS::Route53::RecordSet"=>
         
     | 
| 
      
 60 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 61 
     | 
    
         
            +
                ["AliasTarget",
         
     | 
| 
      
 62 
     | 
    
         
            +
                  "Comment",
         
     | 
| 
      
 63 
     | 
    
         
            +
                  "HostedZoneId",
         
     | 
| 
      
 64 
     | 
    
         
            +
                  "HostedZoneName",
         
     | 
| 
      
 65 
     | 
    
         
            +
                  "Name",
         
     | 
| 
      
 66 
     | 
    
         
            +
                  "Region",
         
     | 
| 
      
 67 
     | 
    
         
            +
                  "ResourceRecords",
         
     | 
| 
      
 68 
     | 
    
         
            +
                  "SetIdentifier",
         
     | 
| 
      
 69 
     | 
    
         
            +
                  "TTL",
         
     | 
| 
      
 70 
     | 
    
         
            +
                  "Type",
         
     | 
| 
      
 71 
     | 
    
         
            +
                  "Weight"],
         
     | 
| 
      
 72 
     | 
    
         
            +
                :path=>"aws-properties-route53-recordset.html"},
         
     | 
| 
      
 73 
     | 
    
         
            +
              "AWS::CloudFormation::WaitCondition"=>
         
     | 
| 
      
 74 
     | 
    
         
            +
              {:properties=>["Count", "Handle", "Timeout"],
         
     | 
| 
      
 75 
     | 
    
         
            +
                :path=>"aws-properties-waitcondition.html"},
         
     | 
| 
      
 76 
     | 
    
         
            +
              "AWS::EC2::Volume"=>
         
     | 
| 
      
 77 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 78 
     | 
    
         
            +
                ["AvailabilityZone", "Iops", "Size", "SnapshotId", "Tags", "VolumeType"],
         
     | 
| 
      
 79 
     | 
    
         
            +
                :path=>"aws-properties-ec2-ebs-volume.html"},
         
     | 
| 
      
 80 
     | 
    
         
            +
              "AWS::IAM::User"=>
         
     | 
| 
      
 81 
     | 
    
         
            +
              {:properties=>["Path", "Groups", "LoginProfile", "Policies"],
         
     | 
| 
      
 82 
     | 
    
         
            +
                :path=>"aws-properties-iam-user.html"},
         
     | 
| 
      
 83 
     | 
    
         
            +
              "AWS::ElastiCache::SecurityGroupIngress"=>
         
     | 
| 
      
 84 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 85 
     | 
    
         
            +
                ["CacheSecurityGroupName",
         
     | 
| 
      
 86 
     | 
    
         
            +
                  "EC2SecurityGroupName",
         
     | 
| 
      
 87 
     | 
    
         
            +
                  "EC2SecurityGroupOwnerId"],
         
     | 
| 
      
 88 
     | 
    
         
            +
                :path=>"aws-properties-elasticache-security-group-ingress.html"},
         
     | 
| 
      
 89 
     | 
    
         
            +
              "AWS::EC2::SecurityGroup"=>
         
     | 
| 
      
 90 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 91 
     | 
    
         
            +
                ["GroupDescription",
         
     | 
| 
      
 92 
     | 
    
         
            +
                  "SecurityGroupEgress",
         
     | 
| 
      
 93 
     | 
    
         
            +
                  "SecurityGroupIngress",
         
     | 
| 
      
 94 
     | 
    
         
            +
                  "Tags",
         
     | 
| 
      
 95 
     | 
    
         
            +
                  "VpcId"],
         
     | 
| 
      
 96 
     | 
    
         
            +
                :path=>"aws-properties-ec2-security-group.html"},
         
     | 
| 
      
 97 
     | 
    
         
            +
              "AWS::Route53::RecordSetGroup"=>
         
     | 
| 
      
 98 
     | 
    
         
            +
              {:properties=>["HostedZoneId", "HostedZoneName", "RecordSets", "Comment"],
         
     | 
| 
      
 99 
     | 
    
         
            +
                :path=>"aws-properties-route53-recordsetgroup.html"},
         
     | 
| 
      
 100 
     | 
    
         
            +
              "AWS::RDS::DBParameterGroup"=>
         
     | 
| 
      
 101 
     | 
    
         
            +
              {:properties=>["Description", "Family", "Parameters", "Tags"],
         
     | 
| 
      
 102 
     | 
    
         
            +
                :path=>"aws-properties-rds-dbparametergroup.html"},
         
     | 
| 
      
 103 
     | 
    
         
            +
              "AWS::DynamoDB::Table"=>
         
     | 
| 
      
 104 
     | 
    
         
            +
              {:properties=>["KeySchema", "ProvisionedThroughput", "TableName"],
         
     | 
| 
      
 105 
     | 
    
         
            +
                :path=>"aws-resource-dynamodb-table.html"},
         
     | 
| 
      
 106 
     | 
    
         
            +
              "AWS::EC2::VolumeAttachment"=>
         
     | 
| 
      
 107 
     | 
    
         
            +
              {:properties=>["Device", "InstanceId", "VolumeId"],
         
     | 
| 
      
 108 
     | 
    
         
            +
                :path=>"aws-properties-ec2-ebs-volumeattachment.html"},
         
     | 
| 
      
 109 
     | 
    
         
            +
              "AWS::EC2::NetworkAcl"=>
         
     | 
| 
      
 110 
     | 
    
         
            +
              {:properties=>["Tags", "VpcId"], :path=>"aws-resource-ec2-network-acl.html"},
         
     | 
| 
      
 111 
     | 
    
         
            +
              "AWS::ElastiCache::ParameterGroup"=>
         
     | 
| 
      
 112 
     | 
    
         
            +
              {:properties=>["CacheParameterGroupFamily", "Description", "Properties"],
         
     | 
| 
      
 113 
     | 
    
         
            +
                :path=>"aws-properties-elasticache-parameter-group.html"},
         
     | 
| 
      
 114 
     | 
    
         
            +
              "AWS::EC2::SubnetNetworkAclAssociation"=>
         
     | 
| 
      
 115 
     | 
    
         
            +
              {:properties=>["SubnetId", "NetworkAclId"],
         
     | 
| 
      
 116 
     | 
    
         
            +
                :path=>"aws-resource-ec2-subnet-network-acl-assoc.html"},
         
     | 
| 
      
 117 
     | 
    
         
            +
              "AWS::ElastiCache::SecurityGroup"=>
         
     | 
| 
      
 118 
     | 
    
         
            +
              {:properties=>["Description"],
         
     | 
| 
      
 119 
     | 
    
         
            +
                :path=>"aws-properties-elasticache-security-group.html"},
         
     | 
| 
      
 120 
     | 
    
         
            +
              "AWS::EC2::VPCDHCPOptionsAssociation"=>
         
     | 
| 
      
 121 
     | 
    
         
            +
              {:properties=>["DhcpOptionsId", "VpcId"],
         
     | 
| 
      
 122 
     | 
    
         
            +
                :path=>"aws-resource-ec2-vpc-dhcp-options-assoc.html"},
         
     | 
| 
      
 123 
     | 
    
         
            +
              "AWS::EC2::VPNGateway"=>
         
     | 
| 
      
 124 
     | 
    
         
            +
              {:properties=>["Type", "Tags"], :path=>"aws-resource-ec2-vpn-gateway.html"},
         
     | 
| 
      
 125 
     | 
    
         
            +
              "AWS::RDS::DBSecurityGroup"=>
         
     | 
| 
      
 126 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 127 
     | 
    
         
            +
                ["EC2VpcId", "DBSecurityGroupIngress", "GroupDescription", "Tags"],
         
     | 
| 
      
 128 
     | 
    
         
            +
                :path=>"aws-properties-rds-security-group.html"},
         
     | 
| 
      
 129 
     | 
    
         
            +
              "AWS::EC2::VPCGatewayAttachment"=>
         
     | 
| 
      
 130 
     | 
    
         
            +
              {:properties=>["InternetGatewayId", "VpcId", "VpnGatewayId"],
         
     | 
| 
      
 131 
     | 
    
         
            +
                :path=>"aws-resource-ec2-vpc-gateway-attachment.html"},
         
     | 
| 
      
 132 
     | 
    
         
            +
              "AWS::EC2::VPNConnectionRoute"=>
         
     | 
| 
      
 133 
     | 
    
         
            +
              {:properties=>["DestinationCidrBlock", "VpnConnectionId"],
         
     | 
| 
      
 134 
     | 
    
         
            +
                :path=>"aws-resource-ec2-vpn-connection-route.html"},
         
     | 
| 
      
 135 
     | 
    
         
            +
              "AWS::CloudFormation::CustomResource"=>
         
     | 
| 
      
 136 
     | 
    
         
            +
              {:properties=>["ServiceToken"],
         
     | 
| 
      
 137 
     | 
    
         
            +
                :path=>"aws-resource-cfn-customresource.html"},
         
     | 
| 
      
 138 
     | 
    
         
            +
              "AWS::CloudFormation::Init"=>
         
     | 
| 
      
 139 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 140 
     | 
    
         
            +
                ["command",
         
     | 
| 
      
 141 
     | 
    
         
            +
                  "env",
         
     | 
| 
      
 142 
     | 
    
         
            +
                  "cwd",
         
     | 
| 
      
 143 
     | 
    
         
            +
                  "test",
         
     | 
| 
      
 144 
     | 
    
         
            +
                  "ignoreErrors",
         
     | 
| 
      
 145 
     | 
    
         
            +
                  "waitAfterCompletion",
         
     | 
| 
      
 146 
     | 
    
         
            +
                  "content",
         
     | 
| 
      
 147 
     | 
    
         
            +
                  "source",
         
     | 
| 
      
 148 
     | 
    
         
            +
                  "encoding",
         
     | 
| 
      
 149 
     | 
    
         
            +
                  "group",
         
     | 
| 
      
 150 
     | 
    
         
            +
                  "owner",
         
     | 
| 
      
 151 
     | 
    
         
            +
                  "mode",
         
     | 
| 
      
 152 
     | 
    
         
            +
                  "authentication",
         
     | 
| 
      
 153 
     | 
    
         
            +
                  "context",
         
     | 
| 
      
 154 
     | 
    
         
            +
                  "gid",
         
     | 
| 
      
 155 
     | 
    
         
            +
                  "ensureRunning",
         
     | 
| 
      
 156 
     | 
    
         
            +
                  "enabled",
         
     | 
| 
      
 157 
     | 
    
         
            +
                  "files",
         
     | 
| 
      
 158 
     | 
    
         
            +
                  "sources",
         
     | 
| 
      
 159 
     | 
    
         
            +
                  "packages",
         
     | 
| 
      
 160 
     | 
    
         
            +
                  "commands",
         
     | 
| 
      
 161 
     | 
    
         
            +
                  "uid",
         
     | 
| 
      
 162 
     | 
    
         
            +
                  "groups",
         
     | 
| 
      
 163 
     | 
    
         
            +
                  "homeDir"],
         
     | 
| 
      
 164 
     | 
    
         
            +
                :path=>"aws-resource-init.html"},
         
     | 
| 
      
 165 
     | 
    
         
            +
              "AWS::EC2::Instance"=>
         
     | 
| 
      
 166 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 167 
     | 
    
         
            +
                ["AvailabilityZone",
         
     | 
| 
      
 168 
     | 
    
         
            +
                  "BlockDeviceMappings",
         
     | 
| 
      
 169 
     | 
    
         
            +
                  "DisableApiTermination",
         
     | 
| 
      
 170 
     | 
    
         
            +
                  "EbsOptimized",
         
     | 
| 
      
 171 
     | 
    
         
            +
                  "IamInstanceProfile",
         
     | 
| 
      
 172 
     | 
    
         
            +
                  "ImageId",
         
     | 
| 
      
 173 
     | 
    
         
            +
                  "InstanceType",
         
     | 
| 
      
 174 
     | 
    
         
            +
                  "KernelId",
         
     | 
| 
      
 175 
     | 
    
         
            +
                  "KeyName",
         
     | 
| 
      
 176 
     | 
    
         
            +
                  "Monitoring",
         
     | 
| 
      
 177 
     | 
    
         
            +
                  "NetworkInterfaces",
         
     | 
| 
      
 178 
     | 
    
         
            +
                  "PlacementGroupName",
         
     | 
| 
      
 179 
     | 
    
         
            +
                  "PrivateIpAddress",
         
     | 
| 
      
 180 
     | 
    
         
            +
                  "RamdiskId",
         
     | 
| 
      
 181 
     | 
    
         
            +
                  "SecurityGroupIds",
         
     | 
| 
      
 182 
     | 
    
         
            +
                  "SecurityGroups",
         
     | 
| 
      
 183 
     | 
    
         
            +
                  "SourceDestCheck",
         
     | 
| 
      
 184 
     | 
    
         
            +
                  "SubnetId",
         
     | 
| 
      
 185 
     | 
    
         
            +
                  "Tags",
         
     | 
| 
      
 186 
     | 
    
         
            +
                  "Tenancy",
         
     | 
| 
      
 187 
     | 
    
         
            +
                  "UserData",
         
     | 
| 
      
 188 
     | 
    
         
            +
                  "Volumes"],
         
     | 
| 
      
 189 
     | 
    
         
            +
                :path=>"aws-properties-ec2-instance.html"},
         
     | 
| 
      
 190 
     | 
    
         
            +
              "AWS::S3::BucketPolicy"=>
         
     | 
| 
      
 191 
     | 
    
         
            +
              {:properties=>["PolicyDocument", "Bucket"],
         
     | 
| 
      
 192 
     | 
    
         
            +
                :path=>"aws-properties-s3-policy.html"},
         
     | 
| 
      
 193 
     | 
    
         
            +
              "AWS::CloudWatch::Alarm"=>
         
     | 
| 
      
 194 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 195 
     | 
    
         
            +
                ["ActionsEnabled",
         
     | 
| 
      
 196 
     | 
    
         
            +
                  "AlarmActions",
         
     | 
| 
      
 197 
     | 
    
         
            +
                  "AlarmDescription",
         
     | 
| 
      
 198 
     | 
    
         
            +
                  "AlarmName",
         
     | 
| 
      
 199 
     | 
    
         
            +
                  "ComparisonOperator",
         
     | 
| 
      
 200 
     | 
    
         
            +
                  "Dimensions",
         
     | 
| 
      
 201 
     | 
    
         
            +
                  "EvaluationPeriods",
         
     | 
| 
      
 202 
     | 
    
         
            +
                  "InsufficientDataActions",
         
     | 
| 
      
 203 
     | 
    
         
            +
                  "MetricName",
         
     | 
| 
      
 204 
     | 
    
         
            +
                  "Namespace",
         
     | 
| 
      
 205 
     | 
    
         
            +
                  "OKActions",
         
     | 
| 
      
 206 
     | 
    
         
            +
                  "Period",
         
     | 
| 
      
 207 
     | 
    
         
            +
                  "Statistic",
         
     | 
| 
      
 208 
     | 
    
         
            +
                  "Threshold",
         
     | 
| 
      
 209 
     | 
    
         
            +
                  "Unit",
         
     | 
| 
      
 210 
     | 
    
         
            +
                  "Ref"],
         
     | 
| 
      
 211 
     | 
    
         
            +
                :path=>"aws-properties-cw-alarm.html"},
         
     | 
| 
      
 212 
     | 
    
         
            +
              "AWS::EC2::SecurityGroupEgress"=>
         
     | 
| 
      
 213 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 214 
     | 
    
         
            +
                ["CidrIp",
         
     | 
| 
      
 215 
     | 
    
         
            +
                  "DestinationSecurityGroupId",
         
     | 
| 
      
 216 
     | 
    
         
            +
                  "FromPort",
         
     | 
| 
      
 217 
     | 
    
         
            +
                  "GroupId",
         
     | 
| 
      
 218 
     | 
    
         
            +
                  "IpProtocol",
         
     | 
| 
      
 219 
     | 
    
         
            +
                  "ToPort"],
         
     | 
| 
      
 220 
     | 
    
         
            +
                :path=>"aws-resource-ec2-security-group-egress.html"},
         
     | 
| 
      
 221 
     | 
    
         
            +
              "AWS::ElasticBeanstalk::Environment"=>
         
     | 
| 
      
 222 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 223 
     | 
    
         
            +
                ["ApplicationName",
         
     | 
| 
      
 224 
     | 
    
         
            +
                  "CNAMEPrefix",
         
     | 
| 
      
 225 
     | 
    
         
            +
                  "Description",
         
     | 
| 
      
 226 
     | 
    
         
            +
                  "EnvironmentName",
         
     | 
| 
      
 227 
     | 
    
         
            +
                  "OptionSettings",
         
     | 
| 
      
 228 
     | 
    
         
            +
                  "OptionsToRemove",
         
     | 
| 
      
 229 
     | 
    
         
            +
                  "SolutionStackName",
         
     | 
| 
      
 230 
     | 
    
         
            +
                  "TemplateName",
         
     | 
| 
      
 231 
     | 
    
         
            +
                  "Tier",
         
     | 
| 
      
 232 
     | 
    
         
            +
                  "VersionLabel"],
         
     | 
| 
      
 233 
     | 
    
         
            +
                :path=>"aws-properties-beanstalk-environment.html"},
         
     | 
| 
      
 234 
     | 
    
         
            +
              "AWS::ElasticLoadBalancing::LoadBalancer"=>
         
     | 
| 
      
 235 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 236 
     | 
    
         
            +
                ["AppCookieStickinessPolicy",
         
     | 
| 
      
 237 
     | 
    
         
            +
                  "AvailabilityZones",
         
     | 
| 
      
 238 
     | 
    
         
            +
                  "CrossZone",
         
     | 
| 
      
 239 
     | 
    
         
            +
                  "HealthCheck",
         
     | 
| 
      
 240 
     | 
    
         
            +
                  "Instances",
         
     | 
| 
      
 241 
     | 
    
         
            +
                  "LBCookieStickinessPolicy",
         
     | 
| 
      
 242 
     | 
    
         
            +
                  "LoadBalancerName",
         
     | 
| 
      
 243 
     | 
    
         
            +
                  "Listeners",
         
     | 
| 
      
 244 
     | 
    
         
            +
                  "Policies",
         
     | 
| 
      
 245 
     | 
    
         
            +
                  "Scheme",
         
     | 
| 
      
 246 
     | 
    
         
            +
                  "SecurityGroups",
         
     | 
| 
      
 247 
     | 
    
         
            +
                  "Subnets"],
         
     | 
| 
      
 248 
     | 
    
         
            +
                :path=>"aws-properties-ec2-elb.html"},
         
     | 
| 
      
 249 
     | 
    
         
            +
              "AWS::EC2::Route"=>
         
     | 
| 
      
 250 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 251 
     | 
    
         
            +
                ["DestinationCidrBlock",
         
     | 
| 
      
 252 
     | 
    
         
            +
                  "GatewayId",
         
     | 
| 
      
 253 
     | 
    
         
            +
                  "InstanceId",
         
     | 
| 
      
 254 
     | 
    
         
            +
                  "NetworkInterfaceId",
         
     | 
| 
      
 255 
     | 
    
         
            +
                  "RouteTableId"],
         
     | 
| 
      
 256 
     | 
    
         
            +
                :path=>"aws-resource-ec2-route.html"},
         
     | 
| 
      
 257 
     | 
    
         
            +
              "AWS::EC2::EIPAssociation"=>
         
     | 
| 
      
 258 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 259 
     | 
    
         
            +
                ["AllocationId",
         
     | 
| 
      
 260 
     | 
    
         
            +
                  "EIP",
         
     | 
| 
      
 261 
     | 
    
         
            +
                  "InstanceId",
         
     | 
| 
      
 262 
     | 
    
         
            +
                  "NetworkInterfaceId",
         
     | 
| 
      
 263 
     | 
    
         
            +
                  "PrivateIpAddress"],
         
     | 
| 
      
 264 
     | 
    
         
            +
                :path=>"aws-properties-ec2-eip-association.html"},
         
     | 
| 
      
 265 
     | 
    
         
            +
              "AWS::SQS::QueuePolicy"=>
         
     | 
| 
      
 266 
     | 
    
         
            +
              {:properties=>["PolicyDocument", "Queues"],
         
     | 
| 
      
 267 
     | 
    
         
            +
                :path=>"aws-properties-sqs-policy.html"},
         
     | 
| 
      
 268 
     | 
    
         
            +
              "AWS::EC2::NetworkAclEntry"=>
         
     | 
| 
      
 269 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 270 
     | 
    
         
            +
                ["CidrBlock",
         
     | 
| 
      
 271 
     | 
    
         
            +
                  "Egress",
         
     | 
| 
      
 272 
     | 
    
         
            +
                  "Icmp",
         
     | 
| 
      
 273 
     | 
    
         
            +
                  "NetworkAclId",
         
     | 
| 
      
 274 
     | 
    
         
            +
                  "PortRange",
         
     | 
| 
      
 275 
     | 
    
         
            +
                  "Protocol",
         
     | 
| 
      
 276 
     | 
    
         
            +
                  "RuleAction",
         
     | 
| 
      
 277 
     | 
    
         
            +
                  "RuleNumber"],
         
     | 
| 
      
 278 
     | 
    
         
            +
                :path=>"aws-resource-ec2-network-acl-entry.html"},
         
     | 
| 
      
 279 
     | 
    
         
            +
              "AWS::ElastiCache::CacheCluster"=>
         
     | 
| 
      
 280 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 281 
     | 
    
         
            +
                ["AutoMinorVersionUpgrade",
         
     | 
| 
      
 282 
     | 
    
         
            +
                  "CacheNodeType",
         
     | 
| 
      
 283 
     | 
    
         
            +
                  "CacheParameterGroupName",
         
     | 
| 
      
 284 
     | 
    
         
            +
                  "CacheSecurityGroupNames",
         
     | 
| 
      
 285 
     | 
    
         
            +
                  "CacheSubnetGroupName",
         
     | 
| 
      
 286 
     | 
    
         
            +
                  "ClusterName",
         
     | 
| 
      
 287 
     | 
    
         
            +
                  "Engine",
         
     | 
| 
      
 288 
     | 
    
         
            +
                  "EngineVersion",
         
     | 
| 
      
 289 
     | 
    
         
            +
                  "NotificationTopicArn",
         
     | 
| 
      
 290 
     | 
    
         
            +
                  "NumCacheNodes",
         
     | 
| 
      
 291 
     | 
    
         
            +
                  "Port",
         
     | 
| 
      
 292 
     | 
    
         
            +
                  "PreferredAvailabilityZone",
         
     | 
| 
      
 293 
     | 
    
         
            +
                  "PreferredMaintenanceWindow",
         
     | 
| 
      
 294 
     | 
    
         
            +
                  "SnapshotArns",
         
     | 
| 
      
 295 
     | 
    
         
            +
                  " VpcSecurityGroupIds "],
         
     | 
| 
      
 296 
     | 
    
         
            +
                :path=>"aws-properties-elasticache-cache-cluster.html"},
         
     | 
| 
      
 297 
     | 
    
         
            +
              "AWS::CloudFormation::WaitConditionHandle"=>
         
     | 
| 
      
 298 
     | 
    
         
            +
              {:properties=>[], :path=>"aws-properties-waitconditionhandle.html"},
         
     | 
| 
      
 299 
     | 
    
         
            +
              "AWS::EC2::VPC"=>
         
     | 
| 
      
 300 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 301 
     | 
    
         
            +
                ["CidrBlock",
         
     | 
| 
      
 302 
     | 
    
         
            +
                  "EnableDnsSupport",
         
     | 
| 
      
 303 
     | 
    
         
            +
                  "EnableDnsHostnames",
         
     | 
| 
      
 304 
     | 
    
         
            +
                  "InstanceTenancy",
         
     | 
| 
      
 305 
     | 
    
         
            +
                  "Tags"],
         
     | 
| 
      
 306 
     | 
    
         
            +
                :path=>"aws-resource-ec2-vpc.html"},
         
     | 
| 
      
 307 
     | 
    
         
            +
              "AWS::EC2::VPNConnection"=>
         
     | 
| 
      
 308 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 309 
     | 
    
         
            +
                ["Type", "CustomerGatewayId", "StaticRoutesOnly", "Tags", "VpnGatewayId"],
         
     | 
| 
      
 310 
     | 
    
         
            +
                :path=>"aws-resource-ec2-vpn-connection.html"},
         
     | 
| 
      
 311 
     | 
    
         
            +
              "AWS::ElasticBeanstalk::Application"=>
         
     | 
| 
      
 312 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 313 
     | 
    
         
            +
                ["ApplicationName",
         
     | 
| 
      
 314 
     | 
    
         
            +
                  "ApplicationVersions",
         
     | 
| 
      
 315 
     | 
    
         
            +
                  "ConfigurationTemplates",
         
     | 
| 
      
 316 
     | 
    
         
            +
                  "Description"],
         
     | 
| 
      
 317 
     | 
    
         
            +
                :path=>"aws-properties-beanstalk.html"},
         
     | 
| 
      
 318 
     | 
    
         
            +
              "AWS::SNS::TopicPolicy"=>
         
     | 
| 
      
 319 
     | 
    
         
            +
              {:properties=>["PolicyDocument", "Topics"],
         
     | 
| 
      
 320 
     | 
    
         
            +
                :path=>"aws-properties-sns-policy.html"},
         
     | 
| 
      
 321 
     | 
    
         
            +
              "AWS::EC2::Subnet"=>
         
     | 
| 
      
 322 
     | 
    
         
            +
              {:properties=>["AvailabilityZone", "CidrBlock", "Tags", "VpcId"],
         
     | 
| 
      
 323 
     | 
    
         
            +
                :path=>"aws-resource-ec2-subnet.html"},
         
     | 
| 
      
 324 
     | 
    
         
            +
              "AWS::AutoScaling::ScalingPolicy"=>
         
     | 
| 
      
 325 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 326 
     | 
    
         
            +
                ["AdjustmentType",
         
     | 
| 
      
 327 
     | 
    
         
            +
                  "AutoScalingGroupName",
         
     | 
| 
      
 328 
     | 
    
         
            +
                  "Cooldown",
         
     | 
| 
      
 329 
     | 
    
         
            +
                  "ScalingAdjustment"],
         
     | 
| 
      
 330 
     | 
    
         
            +
                :path=>"aws-properties-as-policy.html"},
         
     | 
| 
      
 331 
     | 
    
         
            +
              "AWS::SQS::Queue"=>
         
     | 
| 
      
 332 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 333 
     | 
    
         
            +
                ["DelaySeconds",
         
     | 
| 
      
 334 
     | 
    
         
            +
                  "MaximumMessageSize",
         
     | 
| 
      
 335 
     | 
    
         
            +
                  "MessageRetentionPeriod",
         
     | 
| 
      
 336 
     | 
    
         
            +
                  "QueueName",
         
     | 
| 
      
 337 
     | 
    
         
            +
                  "ReceiveMessageWaitTimeSeconds",
         
     | 
| 
      
 338 
     | 
    
         
            +
                  "VisibilityTimeout"],
         
     | 
| 
      
 339 
     | 
    
         
            +
                :path=>"aws-properties-sqs-queues.html"},
         
     | 
| 
      
 340 
     | 
    
         
            +
              "AWS::AutoScaling::Trigger"=>
         
     | 
| 
      
 341 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 342 
     | 
    
         
            +
                ["AutoScalingGroupName",
         
     | 
| 
      
 343 
     | 
    
         
            +
                  "BreachDuration",
         
     | 
| 
      
 344 
     | 
    
         
            +
                  "Dimensions",
         
     | 
| 
      
 345 
     | 
    
         
            +
                  "LowerBreachScaleIncrement",
         
     | 
| 
      
 346 
     | 
    
         
            +
                  "LowerThreshold",
         
     | 
| 
      
 347 
     | 
    
         
            +
                  "MetricName",
         
     | 
| 
      
 348 
     | 
    
         
            +
                  "Namespace",
         
     | 
| 
      
 349 
     | 
    
         
            +
                  "Period",
         
     | 
| 
      
 350 
     | 
    
         
            +
                  "Statistic",
         
     | 
| 
      
 351 
     | 
    
         
            +
                  "Unit",
         
     | 
| 
      
 352 
     | 
    
         
            +
                  "UpperBreachScaleIncrement",
         
     | 
| 
      
 353 
     | 
    
         
            +
                  "UpperThreshold"],
         
     | 
| 
      
 354 
     | 
    
         
            +
                :path=>"aws-properties-as-trigger.html"},
         
     | 
| 
      
 355 
     | 
    
         
            +
              "AWS::IAM::UserToGroupAddition"=>
         
     | 
| 
      
 356 
     | 
    
         
            +
              {:properties=>["GroupName", "Users"],
         
     | 
| 
      
 357 
     | 
    
         
            +
                :path=>"aws-properties-iam-addusertogroup.html"},
         
     | 
| 
      
 358 
     | 
    
         
            +
              "AWS::EC2::SecurityGroupIngress"=>
         
     | 
| 
      
 359 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 360 
     | 
    
         
            +
                ["GroupName",
         
     | 
| 
      
 361 
     | 
    
         
            +
                  "GroupId",
         
     | 
| 
      
 362 
     | 
    
         
            +
                  "IpProtocol",
         
     | 
| 
      
 363 
     | 
    
         
            +
                  "CidrIp",
         
     | 
| 
      
 364 
     | 
    
         
            +
                  "SourceSecurityGroupName",
         
     | 
| 
      
 365 
     | 
    
         
            +
                  "SourceSecurityGroupId",
         
     | 
| 
      
 366 
     | 
    
         
            +
                  "SourceSecurityGroupOwnerId",
         
     | 
| 
      
 367 
     | 
    
         
            +
                  "FromPort",
         
     | 
| 
      
 368 
     | 
    
         
            +
                  "ToPort"],
         
     | 
| 
      
 369 
     | 
    
         
            +
                :path=>"aws-properties-ec2-security-group-ingress.html"},
         
     | 
| 
      
 370 
     | 
    
         
            +
              "AWS::IAM::Role"=>
         
     | 
| 
      
 371 
     | 
    
         
            +
              {:properties=>["AssumeRolePolicyDocument", "Path", "Policies"],
         
     | 
| 
      
 372 
     | 
    
         
            +
                :path=>"aws-resource-iam-role.html"},
         
     | 
| 
      
 373 
     | 
    
         
            +
              "AWS::EC2::VPNGatewayRoutePropagation"=>
         
     | 
| 
      
 374 
     | 
    
         
            +
              {:properties=>["RouteTableIds", "VpnGatewayId"],
         
     | 
| 
      
 375 
     | 
    
         
            +
                :path=>"aws-resource-ec2-vpn-gatewayrouteprop.html"},
         
     | 
| 
      
 376 
     | 
    
         
            +
              "AWS::AutoScaling::AutoScalingGroup"=>
         
     | 
| 
      
 377 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 378 
     | 
    
         
            +
                ["AvailabilityZones",
         
     | 
| 
      
 379 
     | 
    
         
            +
                  "Cooldown",
         
     | 
| 
      
 380 
     | 
    
         
            +
                  "DesiredCapacity",
         
     | 
| 
      
 381 
     | 
    
         
            +
                  "HealthCheckGracePeriod",
         
     | 
| 
      
 382 
     | 
    
         
            +
                  "HealthCheckType",
         
     | 
| 
      
 383 
     | 
    
         
            +
                  "LaunchConfigurationName",
         
     | 
| 
      
 384 
     | 
    
         
            +
                  "LoadBalancerNames",
         
     | 
| 
      
 385 
     | 
    
         
            +
                  "MaxSize",
         
     | 
| 
      
 386 
     | 
    
         
            +
                  "MinSize",
         
     | 
| 
      
 387 
     | 
    
         
            +
                  "NotificationConfiguration",
         
     | 
| 
      
 388 
     | 
    
         
            +
                  "Tags",
         
     | 
| 
      
 389 
     | 
    
         
            +
                  "TerminationPolicies",
         
     | 
| 
      
 390 
     | 
    
         
            +
                  "VPCZoneIdentifier"],
         
     | 
| 
      
 391 
     | 
    
         
            +
                :path=>"aws-properties-as-group.html"},
         
     | 
| 
      
 392 
     | 
    
         
            +
              "AWS::RDS::DBSecurityGroupIngress"=>
         
     | 
| 
      
 393 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 394 
     | 
    
         
            +
                ["CIDRIP",
         
     | 
| 
      
 395 
     | 
    
         
            +
                  "DBSecurityGroupName",
         
     | 
| 
      
 396 
     | 
    
         
            +
                  "EC2SecurityGroupId",
         
     | 
| 
      
 397 
     | 
    
         
            +
                  "EC2SecurityGroupName",
         
     | 
| 
      
 398 
     | 
    
         
            +
                  "EC2SecurityGroupOwnerId"],
         
     | 
| 
      
 399 
     | 
    
         
            +
                :path=>"aws-resource-rds-security-group-ingress.html"},
         
     | 
| 
      
 400 
     | 
    
         
            +
              "AWS::RDS::DBInstance"=>
         
     | 
| 
      
 401 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 402 
     | 
    
         
            +
                ["AllocatedStorage",
         
     | 
| 
      
 403 
     | 
    
         
            +
                  "AllowMajorVersionUpgrade",
         
     | 
| 
      
 404 
     | 
    
         
            +
                  "AutoMinorVersionUpgrade",
         
     | 
| 
      
 405 
     | 
    
         
            +
                  "AvailabilityZone",
         
     | 
| 
      
 406 
     | 
    
         
            +
                  "BackupRetentionPeriod",
         
     | 
| 
      
 407 
     | 
    
         
            +
                  "DBInstanceClass",
         
     | 
| 
      
 408 
     | 
    
         
            +
                  "DBInstanceIdentifier",
         
     | 
| 
      
 409 
     | 
    
         
            +
                  "DBName",
         
     | 
| 
      
 410 
     | 
    
         
            +
                  "DBParameterGroupName",
         
     | 
| 
      
 411 
     | 
    
         
            +
                  "DBSecurityGroups",
         
     | 
| 
      
 412 
     | 
    
         
            +
                  "DBSnapshotIdentifier",
         
     | 
| 
      
 413 
     | 
    
         
            +
                  "DBSubnetGroupName",
         
     | 
| 
      
 414 
     | 
    
         
            +
                  "Engine",
         
     | 
| 
      
 415 
     | 
    
         
            +
                  "EngineVersion",
         
     | 
| 
      
 416 
     | 
    
         
            +
                  "Iops",
         
     | 
| 
      
 417 
     | 
    
         
            +
                  "LicenseModel",
         
     | 
| 
      
 418 
     | 
    
         
            +
                  "MasterUsername",
         
     | 
| 
      
 419 
     | 
    
         
            +
                  "MasterUserPassword",
         
     | 
| 
      
 420 
     | 
    
         
            +
                  "MultiAZ",
         
     | 
| 
      
 421 
     | 
    
         
            +
                  "Port",
         
     | 
| 
      
 422 
     | 
    
         
            +
                  "PreferredBackupWindow",
         
     | 
| 
      
 423 
     | 
    
         
            +
                  "PreferredMaintenanceWindow",
         
     | 
| 
      
 424 
     | 
    
         
            +
                  "SourceDBInstanceIdentifier",
         
     | 
| 
      
 425 
     | 
    
         
            +
                  "Tags",
         
     | 
| 
      
 426 
     | 
    
         
            +
                  "VPCSecurityGroups"],
         
     | 
| 
      
 427 
     | 
    
         
            +
                :path=>"aws-properties-rds-database-instance.html"},
         
     | 
| 
      
 428 
     | 
    
         
            +
              "AWS::EC2::InternetGateway"=>
         
     | 
| 
      
 429 
     | 
    
         
            +
              {:properties=>["Tags"], :path=>"aws-resource-ec2-internet-gateway.html"},
         
     | 
| 
      
 430 
     | 
    
         
            +
              "AWS::EC2::RouteTable"=>
         
     | 
| 
      
 431 
     | 
    
         
            +
              {:properties=>["VpcId", "Tags"], :path=>"aws-resource-ec2-route-table.html"},
         
     | 
| 
      
 432 
     | 
    
         
            +
              "AWS::AutoScaling::LaunchConfiguration"=>
         
     | 
| 
      
 433 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 434 
     | 
    
         
            +
                ["AssociatePublicIpAddress",
         
     | 
| 
      
 435 
     | 
    
         
            +
                  "BlockDeviceMappings",
         
     | 
| 
      
 436 
     | 
    
         
            +
                  "EbsOptimized",
         
     | 
| 
      
 437 
     | 
    
         
            +
                  "IamInstanceProfile",
         
     | 
| 
      
 438 
     | 
    
         
            +
                  "ImageId",
         
     | 
| 
      
 439 
     | 
    
         
            +
                  "InstanceMonitoring",
         
     | 
| 
      
 440 
     | 
    
         
            +
                  "InstanceType",
         
     | 
| 
      
 441 
     | 
    
         
            +
                  "KernelId",
         
     | 
| 
      
 442 
     | 
    
         
            +
                  "KeyName",
         
     | 
| 
      
 443 
     | 
    
         
            +
                  "RamDiskId",
         
     | 
| 
      
 444 
     | 
    
         
            +
                  "SecurityGroups",
         
     | 
| 
      
 445 
     | 
    
         
            +
                  "SpotPrice",
         
     | 
| 
      
 446 
     | 
    
         
            +
                  "UserData"],
         
     | 
| 
      
 447 
     | 
    
         
            +
                :path=>"aws-properties-as-launchconfig.html"},
         
     | 
| 
      
 448 
     | 
    
         
            +
              "AWS::SNS::Topic"=>
         
     | 
| 
      
 449 
     | 
    
         
            +
              {:properties=>["DisplayName", "Subscription", "TopicName"],
         
     | 
| 
      
 450 
     | 
    
         
            +
                :path=>"aws-properties-sns-topic.html"},
         
     | 
| 
      
 451 
     | 
    
         
            +
              "AWS::CloudFormation::Authentication"=>
         
     | 
| 
      
 452 
     | 
    
         
            +
              {:properties=>
         
     | 
| 
      
 453 
     | 
    
         
            +
                ["accessKeyId",
         
     | 
| 
      
 454 
     | 
    
         
            +
                  "buckets",
         
     | 
| 
      
 455 
     | 
    
         
            +
                  "password",
         
     | 
| 
      
 456 
     | 
    
         
            +
                  "secretKey",
         
     | 
| 
      
 457 
     | 
    
         
            +
                  "type",
         
     | 
| 
      
 458 
     | 
    
         
            +
                  "uris",
         
     | 
| 
      
 459 
     | 
    
         
            +
                  "username",
         
     | 
| 
      
 460 
     | 
    
         
            +
                  "roleName"],
         
     | 
| 
      
 461 
     | 
    
         
            +
                :path=>"aws-resource-authentication.html"}}
         
     |