def __init__(self, name=None, protocol=None,  <EOL>source_mac=None, source_ip=None,<EOL>target_ip=None, port_range_start=None,<EOL>port_range_end=None, icmp_type=None,<EOL>icmp_code=None, **kwargs):
self.name = name<EOL>self.protocol = protocol<EOL>self.source_mac = source_mac<EOL>self.source_ip = source_ip<EOL>self.target_ip = target_ip<EOL>self.port_range_start = port_range_start<EOL>self.port_range_end = port_range_end<EOL>if icmp_type is not None:<EOL><INDENT>icmp_type = str(icmp_type)<EOL><DEDENT>self.icmp_type = icmp_type<EOL>if icmp_code is not None:<EOL><INDENT>icmp_code = str(icmp_code)<EOL><DEDENT>self.icmp_code = icmp_code<EOL>
FirewallRule class initializer.

:param      name: The name of the firewall rule.
:type       name: ``str``

:param      protocol: Either TCP or UDP
:type       protocol: ``str``

:param      source_mac: Source MAC you want to restrict.
:type       source_mac: ``str``

:param      source_ip: Source IP you want to restrict.
:type       source_ip: ``str``

:param      target_ip: Target IP you want to restrict.
:type       target_ip: ``str``

:param      port_range_start: Optional port range.
:type       port_range_start: ``str``

:param      port_range_end: Optional port range.
:type       port_range_end: ``str``

:param      icmp_type: Defines the allowed type.
:type       icmp_type: ``str``

:param      icmp_code: Defines the allowed code.
:type       icmp_code: ``str``