from parallels.core.utils.entity import Entity


class DnsZone(Entity):
    def __init__(
        self, dns_zone_id, name, email, status, dns_zone_type, ttl, ttl_unit, refresh, refresh_unit, retry, retry_unit,
        expire, expire_unit, minimum, minimum_unit, serial_format
    ):
        self._dns_zone_id = dns_zone_id
        self._name = name
        self._email = email
        self._status = status
        self._dns_zone_type = dns_zone_type
        self._ttl = ttl
        self._ttl_unit = ttl_unit
        self._refresh = refresh
        self._refresh_unit = refresh_unit
        self._retry = retry
        self._retry_unit = retry_unit
        self._expire = expire
        self._expire_unit = expire_unit
        self._minimum = minimum
        self._minimum_unit = minimum_unit
        self._serial_format = serial_format

    @property
    def dns_zone_id(self):
        """
        :rtype: str | unicode
        """
        return self._dns_zone_id

    @property
    def name(self):
        """
        :rtype: str | unicode
        """
        return self._name

    @property
    def email(self):
        """
        :rtype: str | unicode
        """
        return self._email

    @property
    def status(self):
        """
        :rtype: str | unicode
        """
        return self._status

    @property
    def dns_zone_type(self):
        """
        :rtype: str | unicode
        """
        return self._dns_zone_type

    @property
    def ttl(self):
        """
        :rtype: str | unicode
        """
        return self._ttl

    @property
    def ttl_unit(self):
        """
        :rtype: str | unicode
        """
        return self._ttl_unit

    @property
    def refresh(self):
        """
        :rtype: str | unicode
        """
        return self._refresh

    @property
    def refresh_unit(self):
        """
        :rtype: str | unicode
        """
        return self._refresh_unit

    @property
    def retry(self):
        """
        :rtype: str | unicode
        """
        return self._retry

    @property
    def retry_unit(self):
        """
        :rtype: str | unicode
        """
        return self._retry_unit

    @property
    def expire(self):
        """
        :rtype: str | unicode
        """
        return self._expire

    @property
    def expire_unit(self):
        """
        :rtype: str | unicode
        """
        return self._expire_unit

    @property
    def minimum(self):
        """
        :rtype: str | unicode
        """
        return self._minimum

    @property
    def minimum_unit(self):
        """
        :rtype: str | unicode
        """
        return self._minimum_unit

    @property
    def serial_format(self):
        """
        :rtype: str | unicode
        """
        return self._serial_format
