# coding: utf-8

"""
    Gmail API

    The Gmail API lets you view and manage Gmail mailbox data like threads, messages, and labels.  # noqa: E501

    OpenAPI spec version: v1
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class VacationSettings(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'enable_auto_reply': 'bool',
        'end_time': 'str',
        'response_body_html': 'str',
        'response_body_plain_text': 'str',
        'response_subject': 'str',
        'restrict_to_contacts': 'bool',
        'restrict_to_domain': 'bool',
        'start_time': 'str'
    }

    attribute_map = {
        'enable_auto_reply': 'enableAutoReply',
        'end_time': 'endTime',
        'response_body_html': 'responseBodyHtml',
        'response_body_plain_text': 'responseBodyPlainText',
        'response_subject': 'responseSubject',
        'restrict_to_contacts': 'restrictToContacts',
        'restrict_to_domain': 'restrictToDomain',
        'start_time': 'startTime'
    }

    def __init__(self, enable_auto_reply=None, end_time=None, response_body_html=None, response_body_plain_text=None, response_subject=None, restrict_to_contacts=None, restrict_to_domain=None, start_time=None):  # noqa: E501
        """VacationSettings - a model defined in Swagger"""  # noqa: E501
        self._enable_auto_reply = None
        self._end_time = None
        self._response_body_html = None
        self._response_body_plain_text = None
        self._response_subject = None
        self._restrict_to_contacts = None
        self._restrict_to_domain = None
        self._start_time = None
        self.discriminator = None
        if enable_auto_reply is not None:
            self.enable_auto_reply = enable_auto_reply
        if end_time is not None:
            self.end_time = end_time
        if response_body_html is not None:
            self.response_body_html = response_body_html
        if response_body_plain_text is not None:
            self.response_body_plain_text = response_body_plain_text
        if response_subject is not None:
            self.response_subject = response_subject
        if restrict_to_contacts is not None:
            self.restrict_to_contacts = restrict_to_contacts
        if restrict_to_domain is not None:
            self.restrict_to_domain = restrict_to_domain
        if start_time is not None:
            self.start_time = start_time

    @property
    def enable_auto_reply(self):
        """Gets the enable_auto_reply of this VacationSettings.  # noqa: E501

        Flag that controls whether Gmail automatically replies to messages.  # noqa: E501

        :return: The enable_auto_reply of this VacationSettings.  # noqa: E501
        :rtype: bool
        """
        return self._enable_auto_reply

    @enable_auto_reply.setter
    def enable_auto_reply(self, enable_auto_reply):
        """Sets the enable_auto_reply of this VacationSettings.

        Flag that controls whether Gmail automatically replies to messages.  # noqa: E501

        :param enable_auto_reply: The enable_auto_reply of this VacationSettings.  # noqa: E501
        :type: bool
        """

        self._enable_auto_reply = enable_auto_reply

    @property
    def end_time(self):
        """Gets the end_time of this VacationSettings.  # noqa: E501

        An optional end time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives before the end time. If both `startTime` and `endTime` are specified, `startTime` must precede `endTime`.  # noqa: E501

        :return: The end_time of this VacationSettings.  # noqa: E501
        :rtype: str
        """
        return self._end_time

    @end_time.setter
    def end_time(self, end_time):
        """Sets the end_time of this VacationSettings.

        An optional end time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives before the end time. If both `startTime` and `endTime` are specified, `startTime` must precede `endTime`.  # noqa: E501

        :param end_time: The end_time of this VacationSettings.  # noqa: E501
        :type: str
        """

        self._end_time = end_time

    @property
    def response_body_html(self):
        """Gets the response_body_html of this VacationSettings.  # noqa: E501

        Response body in HTML format. Gmail will sanitize the HTML before storing it. If both `response_body_plain_text` and `response_body_html` are specified, `response_body_html` will be used.  # noqa: E501

        :return: The response_body_html of this VacationSettings.  # noqa: E501
        :rtype: str
        """
        return self._response_body_html

    @response_body_html.setter
    def response_body_html(self, response_body_html):
        """Sets the response_body_html of this VacationSettings.

        Response body in HTML format. Gmail will sanitize the HTML before storing it. If both `response_body_plain_text` and `response_body_html` are specified, `response_body_html` will be used.  # noqa: E501

        :param response_body_html: The response_body_html of this VacationSettings.  # noqa: E501
        :type: str
        """

        self._response_body_html = response_body_html

    @property
    def response_body_plain_text(self):
        """Gets the response_body_plain_text of this VacationSettings.  # noqa: E501

        Response body in plain text format. If both `response_body_plain_text` and `response_body_html` are specified, `response_body_html` will be used.  # noqa: E501

        :return: The response_body_plain_text of this VacationSettings.  # noqa: E501
        :rtype: str
        """
        return self._response_body_plain_text

    @response_body_plain_text.setter
    def response_body_plain_text(self, response_body_plain_text):
        """Sets the response_body_plain_text of this VacationSettings.

        Response body in plain text format. If both `response_body_plain_text` and `response_body_html` are specified, `response_body_html` will be used.  # noqa: E501

        :param response_body_plain_text: The response_body_plain_text of this VacationSettings.  # noqa: E501
        :type: str
        """

        self._response_body_plain_text = response_body_plain_text

    @property
    def response_subject(self):
        """Gets the response_subject of this VacationSettings.  # noqa: E501

        Optional text to prepend to the subject line in vacation responses. In order to enable auto-replies, either the response subject or the response body must be nonempty.  # noqa: E501

        :return: The response_subject of this VacationSettings.  # noqa: E501
        :rtype: str
        """
        return self._response_subject

    @response_subject.setter
    def response_subject(self, response_subject):
        """Sets the response_subject of this VacationSettings.

        Optional text to prepend to the subject line in vacation responses. In order to enable auto-replies, either the response subject or the response body must be nonempty.  # noqa: E501

        :param response_subject: The response_subject of this VacationSettings.  # noqa: E501
        :type: str
        """

        self._response_subject = response_subject

    @property
    def restrict_to_contacts(self):
        """Gets the restrict_to_contacts of this VacationSettings.  # noqa: E501

        Flag that determines whether responses are sent to recipients who are not in the user's list of contacts.  # noqa: E501

        :return: The restrict_to_contacts of this VacationSettings.  # noqa: E501
        :rtype: bool
        """
        return self._restrict_to_contacts

    @restrict_to_contacts.setter
    def restrict_to_contacts(self, restrict_to_contacts):
        """Sets the restrict_to_contacts of this VacationSettings.

        Flag that determines whether responses are sent to recipients who are not in the user's list of contacts.  # noqa: E501

        :param restrict_to_contacts: The restrict_to_contacts of this VacationSettings.  # noqa: E501
        :type: bool
        """

        self._restrict_to_contacts = restrict_to_contacts

    @property
    def restrict_to_domain(self):
        """Gets the restrict_to_domain of this VacationSettings.  # noqa: E501

        Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for Google Workspace users.  # noqa: E501

        :return: The restrict_to_domain of this VacationSettings.  # noqa: E501
        :rtype: bool
        """
        return self._restrict_to_domain

    @restrict_to_domain.setter
    def restrict_to_domain(self, restrict_to_domain):
        """Sets the restrict_to_domain of this VacationSettings.

        Flag that determines whether responses are sent to recipients who are outside of the user's domain. This feature is only available for Google Workspace users.  # noqa: E501

        :param restrict_to_domain: The restrict_to_domain of this VacationSettings.  # noqa: E501
        :type: bool
        """

        self._restrict_to_domain = restrict_to_domain

    @property
    def start_time(self):
        """Gets the start_time of this VacationSettings.  # noqa: E501

        An optional start time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives after the start time. If both `startTime` and `endTime` are specified, `startTime` must precede `endTime`.  # noqa: E501

        :return: The start_time of this VacationSettings.  # noqa: E501
        :rtype: str
        """
        return self._start_time

    @start_time.setter
    def start_time(self, start_time):
        """Sets the start_time of this VacationSettings.

        An optional start time for sending auto-replies (epoch ms). When this is specified, Gmail will automatically reply only to messages that it receives after the start time. If both `startTime` and `endTime` are specified, `startTime` must precede `endTime`.  # noqa: E501

        :param start_time: The start_time of this VacationSettings.  # noqa: E501
        :type: str
        """

        self._start_time = start_time

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(VacationSettings, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, VacationSettings):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
