':param id: Node ID.
:type id: ``str``
:param name: Node name.
:type name: ``str``
:param state: Node state.
:type state: :class:`libcloud.compute.types.NodeState`
:param public_ips: Public IP addresses associated with this node.
:type public_ips: ``list``
:param private_ips: Private IP addresses associated with this node.
:type private_ips: ``list``
:param driver: Driver this node belongs to.
:type driver: :class:`.NodeDriver`
:param size: Size of this node. (optional)
:type size: :class:`.NodeSize`
:param image: Image of this node. (optional)
:type image: :class:`.NodeImage`
:param created_at: The datetime this node was created (optional)
:type created_at: :class: `datetime.datetime`
:param extra: Optional provider specific attributes associated with
this node.
:type extra: ``dict``'

def __init__(self, id, name, state, public_ips, private_ips, driver, size=None, image=None, extra=None, created_at=None):

    self.id = (str(id) if id else None)
    self.name = name
    self.state = state
    self.public_ips = (public_ips if public_ips else [])
    self.private_ips = (private_ips if private_ips else [])
    self.driver = driver
    self.size = size
    self.created_at = created_at
    self.image = image
    self.extra = (extra or {})
    UuidMixin.__init__(self)
