Sha256: 055b4d1aab579d42b0926a601e6b2ffee1eed19514079ad513888b592b3673db

Contents?: true

Size: 1.59 KB

Versions: 32

Compression:

Stored size: 1.59 KB

Contents

require_relative '../resource'
require_relative 'aws_ec2_subnet_route_table_association'

module Convection
  module DSL
    module Template
      module Resource
        ##
        # Add DSL for RouteTableAssocaition
        ##
        module EC2Subnet
          def route_table(table, &block)
            assoc = Model::Template::Resource::EC2SubnetRouteTableAssociation.new("#{ name }RouteTableAssociation#{ table.name }", template)
            assoc.route_table(table)
            assoc.subnet(self)

            assoc.instance_exec(&block) if block
            @template.resources[assoc.name] = assoc
          end

          def acl(acl_entity, &block)
            assoc = Model::Template::Resource::EC2SubnetNetworkACLAssociation.new("#{ name }ACLAssociation#{ acl_entity.name }", template)
            assoc.acl(acl_entity)
            assoc.subnet(self)

            assoc.instance_exec(&block) if block
            @template.resources[assoc.name] = assoc
          end
        end
      end
    end
  end

  module Model
    class Template
      class Resource
        ##
        # AWS::EC2::Subnet
        ##
        class EC2Subnet < Resource
          include DSL::Template::Resource::EC2Subnet
          include Model::Mixin::Taggable
          extend Mixin::CIDRBlock

          type 'AWS::EC2::Subnet'
          property :availability_zone, 'AvailabilityZone'
          property :vpc, 'VpcId'
          cidr_property :network, 'CidrBlock'

          def render(*args)
            super.tap do |resource|
              render_tags(resource)
            end
          end
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
convection-0.2.32 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.31 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.30 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.29 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.28 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.27 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.26 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.25 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.24 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.23 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.22 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.21 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.20 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.19 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.18 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.17 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.16 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.15 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.14 lib/convection/model/template/resource/aws_ec2_subnet.rb
convection-0.2.13 lib/convection/model/template/resource/aws_ec2_subnet.rb