'Create a new zone.
:param domain: Zone domain name (e.g. example.com.) with a \'.\'
at the end.
:type domain: ``str``
:param type: Zone type (master is the only one supported).
:type  type: ``str``
:param ttl: TTL for new records. (unused)
:type  ttl: ``int``
:param extra: Extra attributes (driver specific). (optional)
:type extra: ``dict``
:rtype: :class:`Zone`'

def create_zone(self, domain, type='master', ttl=None, extra=None):

    name = None
    description = ''
    if extra:
        description = extra.get('description')
        name = extra.get('name')
    if (name is None):
        name = self._cleanup_domain(domain)
    data = {'dnsName': domain, 'name': name, 'description': description}
    request = '/managedZones'
    response = self.connection.request(request, method='POST', data=data).object
    return self._to_zone(response)
