class Convection::Model::Template::Resource::EC2SecurityGroup::Rule

@example Egress rule

ec2_security_group 'SuperSecretSecurityGroup' do
  # other properties...

  egress_rule :tcp, 443 do
    # The source CIDR block.
    destination '10.10.10.0/24'
  end
end

@example Ingress rule

ec2_security_group 'SuperSecretSecurityGroup' do
  # other properties...

  ingress_rule :tcp, 8080 do
    # The source security group ID.
    source_group stack.get('security-groups', 'HttpProxy')
  end
end

Public Instance Methods

render() click to toggle source
# File lib/convection/model/template/resource/aws_ec2_security_group.rb, line 86
def render
  {
    'IpProtocol' => Mixin::Protocol.lookup(protocol)
  }.tap do |rule|
    rule['FromPort'] = from unless from.nil?
    rule['ToPort'] = to unless to.nil?
    rule['CidrIp'] = source unless source.nil?
    rule['CidrIp'] = destination unless destination.nil?
    rule['DestinationSecurityGroupId'] = destination_group unless destination_group.nil?
    rule['SourceSecurityGroupId'] = source_group unless source_group.nil?
    rule['SourceSecurityGroupOwnerId'] = source_group_owner unless source_group_owner.nil?
  end
end