def METHOD_NAME(self, domain, type="master", ttl=None, extra=None):
    """
    :param domain: Zone domain name (e.g. example.com)
    :type domain: ``str``
    :param type: Zone type (This is not really used. See API docs for \
      extra parameters)
    :type type: ``str``
    :param ttl: TTL for new records (This is used through the extra param)
    :type ttl: ``int``
    :param extra: Extra attributes that are specific to the driver
    such as ttl.
    :type extra: ``dict``
    :rtype: :class:`Zone`
    Do not forget to pass the master in extra,
    extra = {'master':'65.55.37.62'} for example.
    """
    action = "/api/v2/zone/"
    data = {"name": domain}
    if extra is not None:
        data.update(extra)
    post_data = json.dumps(data)
    try:
        response = self.connection.request(action=action, method="POST", data=post_data)
    except BuddyNSException as e:
        if e.message == "Invalid zone submitted for addition.":
            raise ZoneAlreadyExistsError(value=e.message, driver=self, zone_id=domain)
        else:
            raise e
    zone = self._to_zone(response.parse_body())
    return zone