'Create a new zone.
:param domain: Zone domain name (e.g. example.com)
:type domain: ``str``
:param type: Zone type (master / slave).
:type  type: ``str``
:param ttl: TTL for new records. (optional)
:type  ttl: ``int``
:param extra: Extra attributes (driver specific). (optional). Possible
parameter in here should be *DYN* which values should be
1 for standart and 2 for dynamic. Default is 1.
:type extra: ``dict``
:rtype: :class:`Zone`
For more info, please see
https://www.worldwidedns.net/dns_api_protocol_new_domain.asp
or
https://www.worldwidedns.net/dns_api_protocol_new_domain_reseller.asp'

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

    if (type == 'master'):
        _type = 0
    elif (type == 'slave'):
        _type = 1
    if extra:
        dyn = (extra.get('DYN') or 1)
    else:
        dyn = 1
    params = {'DOMAIN': domain, 'TYPE': _type}
    action = '/api_dns_new_domain.asp'
    if (self.reseller_id is not None):
        params['DYN'] = dyn
        action = '/api_dns_new_domain_reseller.asp'
    self.connection.request(action, params=params)
    zone = self.get_zone(domain)
    if (ttl is not None):
        zone = self.update_zone(zone, zone.domain, ttl=ttl)
    return zone
