class Ufo::Stack::Builder::Resources::Elb

Public Instance Methods

build() click to toggle source
# File lib/ufo/stack/builder/resources/elb.rb, line 3
def build
  {
    Type: "AWS::ElasticLoadBalancingV2::LoadBalancer",
    Condition: "CreateElbIsTrue",
    Properties: properties,
  }
end
properties() click to toggle source
# File lib/ufo/stack/builder/resources/elb.rb, line 11
def properties
  props = {
    Type: @elb_type,
    Tags: [
      {Key: "Name", Value: @stack_name}
    ],
    Subnets: {Ref: "ElbSubnets"},
    Scheme: "internet-facing"
  }

  props[:SecurityGroups] = security_groups(:elb) if @elb_type == "application"
  subnets(props)

  props
end
subnet_mappings() click to toggle source
# File lib/ufo/stack/builder/resources/elb.rb, line 36
def subnet_mappings
  @subnet_mappings.map do |allocation_id, subnet_id|
    {
      AllocationId: allocation_id,
      SubnetId: subnet_id,
    }
  end
end
subnets(props) click to toggle source
# File lib/ufo/stack/builder/resources/elb.rb, line 27
def subnets(props)
  mappings = @elb_type == "network" && @subnet_mappings && !@subnet_mappings.empty?
  if mappings
    props[:SubnetMappings] = subnet_mappings
  else
    props[:Subnets] = {Ref: "ElbSubnets"}
  end
end