# File lib/aws/ec2/security_group/ip_permission.rb, line 36
        def initialize security_group, protocol, ports, options = {}

          @security_group = security_group

          @protocol = protocol == '-1' ?  :any : protocol.to_s.downcase.to_sym

          @ip_ranges = Array(options[:ip_ranges])

          @groups = Array(options[:groups])

          @egress = options[:egress] || false

          # not all egress permissions require port ranges, depends on the
          # protocol
          if ports
            if ports.is_a?(Range)
              @port_range = ports
            else
              @port_range = Array(ports).first.to_i..Array(ports).last.to_i
            end
          end

          super

        end