Sha256: 7ba3c43bf835bcb84f855d686a8a82ca1172f70215cb2e5b9bfcb613a7bfc103

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

require_relative '../resource'

module Convection
  module Model
    class Template
      class Resource
        ##
        # AWS::ElasticLoadBalancingV2::LoadBalancer
        ##
        class ELBV2LoadBalancer < Resource
          include Model::Mixin::Taggable

          type 'AWS::ElasticLoadBalancingV2::LoadBalancer', :elbv2_load_balancer
          property :load_balancer_attributes, 'LoadBalancerAttributes', :type => :list
          property :name, 'Name'
          property :scheme, 'Scheme'
          property :security_group, 'SecurityGroups', :type => :list
          alias security_groups security_group
          property :subnet, 'Subnets', :type => :list
          alias subnets subnet
          property :lb_type, 'Type'
          property :subnet_mappings, 'SubnetMappings', :type => :list

          # Append a load_balancer_attribute to load_balancer_attributes
          def load_balancer_attribute(&block)
            attribute = ResourceProperty::ELBV2LoadBalancerAttribute.new(self)
            attribute.instance_exec(&block) if block
            load_balancer_attributes << attribute
          end

          def subnet_mapping(&block)
            subnet_mapping = ResourceProperty::ELBV2LoadBalancerSubnetMapping.new(self)
            subnet_mapping.instance_exec(&block) if block
            subnet_mappings << subnet_mapping
          end

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
convection-2.3.1 lib/convection/model/template/resource/aws_elbv2_load_balancer.rb