'A Firewall rule.
@note: This is a non-standard extension API, and only works for
CloudStack.
:param      id: Firewall Rule ID
:type       id: ``int``
:param      address: External IP address
:type       address: :class:`CloudStackAddress`
:param      cidr_list: cidr list
:type       cidr_list: ``str``
:param      protocol: TCP/IP Protocol (TCP, UDP)
:type       protocol: ``str``
:param      icmp_code: Error code for this icmp message
:type       icmp_code: ``int``
:param      icmp_type: Type of the icmp message being sent
:type       icmp_type: ``int``
:param      start_port: start of port range
:type       start_port: ``int``
:param      end_port: end of port range
:type       end_port: ``int``
:rtype: :class:`CloudStackFirewallRule`'

def __init__(self, id, address, cidr_list, protocol, icmp_code=None, icmp_type=None, start_port=None, end_port=None):

    self.id = id
    self.address = address
    self.cidr_list = cidr_list
    self.protocol = protocol
    self.icmp_code = icmp_code
    self.icmp_type = icmp_type
    self.start_port = start_port
    self.end_port = end_port
