':param id: Record id
:type id: ``str``
:param name: Hostname or FQDN.
:type name: ``str``
:param type: DNS record type (A, AAAA, ...).
:type type: :class:`RecordType`
:param data: Data for the record (depends on the record type).
:type data: ``str``
:param zone: Zone instance.
:type zone: :class:`Zone`
:param driver: DNSDriver instance.
:type driver: :class:`DNSDriver`
:param ttl: Record TTL.
:type ttl: ``int``
:param extra: (optional) Extra attributes (driver specific).
:type extra: ``dict``'

def __init__(self, id, name, type, data, zone, driver, ttl=None, extra=None):

    self.id = (str(id) if id else None)
    self.name = name
    self.type = type
    self.data = data
    self.zone = zone
    self.driver = driver
    self.ttl = ttl
    self.extra = (extra or {})
