# coding: utf-8

"""
    Seeq REST API

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

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

from pprint import pformat
from six import iteritems
import re


class NotificationConfigurationOutputV1(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 = {
        'bcc_email_recipients': 'list[EmailNotificationRecipientOutputV1]',
        'capsule_grouping': 'str',
        'capsule_properties': 'list[str]',
        'cc_email_recipients': 'list[EmailNotificationRecipientOutputV1]',
        'contextual_text': 'str',
        'reply_to_email_recipients': 'list[EmailNotificationRecipientOutputV1]',
        'report_format': 'str',
        'subject': 'str',
        'timezone': 'str',
        'to_email_recipients': 'list[EmailNotificationRecipientOutputV1]'
    }

    attribute_map = {
        'bcc_email_recipients': 'bccEmailRecipients',
        'capsule_grouping': 'capsuleGrouping',
        'capsule_properties': 'capsuleProperties',
        'cc_email_recipients': 'ccEmailRecipients',
        'contextual_text': 'contextualText',
        'reply_to_email_recipients': 'replyToEmailRecipients',
        'report_format': 'reportFormat',
        'subject': 'subject',
        'timezone': 'timezone',
        'to_email_recipients': 'toEmailRecipients'
    }

    def __init__(self, bcc_email_recipients=None, capsule_grouping=None, capsule_properties=None, cc_email_recipients=None, contextual_text=None, reply_to_email_recipients=None, report_format=None, subject=None, timezone=None, to_email_recipients=None):
        """
        NotificationConfigurationOutputV1 - a model defined in Swagger
        """

        self._bcc_email_recipients = None
        self._capsule_grouping = None
        self._capsule_properties = None
        self._cc_email_recipients = None
        self._contextual_text = None
        self._reply_to_email_recipients = None
        self._report_format = None
        self._subject = None
        self._timezone = None
        self._to_email_recipients = None

        if bcc_email_recipients is not None:
          self.bcc_email_recipients = bcc_email_recipients
        if capsule_grouping is not None:
          self.capsule_grouping = capsule_grouping
        if capsule_properties is not None:
          self.capsule_properties = capsule_properties
        if cc_email_recipients is not None:
          self.cc_email_recipients = cc_email_recipients
        if contextual_text is not None:
          self.contextual_text = contextual_text
        if reply_to_email_recipients is not None:
          self.reply_to_email_recipients = reply_to_email_recipients
        if report_format is not None:
          self.report_format = report_format
        if subject is not None:
          self.subject = subject
        if timezone is not None:
          self.timezone = timezone
        if to_email_recipients is not None:
          self.to_email_recipients = to_email_recipients

    @property
    def bcc_email_recipients(self):
        """
        Gets the bcc_email_recipients of this NotificationConfigurationOutputV1.
        Email addresses or User IDs that will be in the Bcc list of the email

        :return: The bcc_email_recipients of this NotificationConfigurationOutputV1.
        :rtype: list[EmailNotificationRecipientOutputV1]
        """
        return self._bcc_email_recipients

    @bcc_email_recipients.setter
    def bcc_email_recipients(self, bcc_email_recipients):
        """
        Sets the bcc_email_recipients of this NotificationConfigurationOutputV1.
        Email addresses or User IDs that will be in the Bcc list of the email

        :param bcc_email_recipients: The bcc_email_recipients of this NotificationConfigurationOutputV1.
        :type: list[EmailNotificationRecipientOutputV1]
        """
        if bcc_email_recipients is None:
            raise ValueError("Invalid value for `bcc_email_recipients`, must not be `None`")

        self._bcc_email_recipients = bcc_email_recipients

    @property
    def capsule_grouping(self):
        """
        Gets the capsule_grouping of this NotificationConfigurationOutputV1.
        The format in which capsules are grouped in the notification

        :return: The capsule_grouping of this NotificationConfigurationOutputV1.
        :rtype: str
        """
        return self._capsule_grouping

    @capsule_grouping.setter
    def capsule_grouping(self, capsule_grouping):
        """
        Sets the capsule_grouping of this NotificationConfigurationOutputV1.
        The format in which capsules are grouped in the notification

        :param capsule_grouping: The capsule_grouping of this NotificationConfigurationOutputV1.
        :type: str
        """

        self._capsule_grouping = capsule_grouping

    @property
    def capsule_properties(self):
        """
        Gets the capsule_properties of this NotificationConfigurationOutputV1.
        The list of properties included in the notification

        :return: The capsule_properties of this NotificationConfigurationOutputV1.
        :rtype: list[str]
        """
        return self._capsule_properties

    @capsule_properties.setter
    def capsule_properties(self, capsule_properties):
        """
        Sets the capsule_properties of this NotificationConfigurationOutputV1.
        The list of properties included in the notification

        :param capsule_properties: The capsule_properties of this NotificationConfigurationOutputV1.
        :type: list[str]
        """
        if capsule_properties is None:
            raise ValueError("Invalid value for `capsule_properties`, must not be `None`")

        self._capsule_properties = capsule_properties

    @property
    def cc_email_recipients(self):
        """
        Gets the cc_email_recipients of this NotificationConfigurationOutputV1.
        Email addresses or User IDs that will be in the Cc list of the email

        :return: The cc_email_recipients of this NotificationConfigurationOutputV1.
        :rtype: list[EmailNotificationRecipientOutputV1]
        """
        return self._cc_email_recipients

    @cc_email_recipients.setter
    def cc_email_recipients(self, cc_email_recipients):
        """
        Sets the cc_email_recipients of this NotificationConfigurationOutputV1.
        Email addresses or User IDs that will be in the Cc list of the email

        :param cc_email_recipients: The cc_email_recipients of this NotificationConfigurationOutputV1.
        :type: list[EmailNotificationRecipientOutputV1]
        """
        if cc_email_recipients is None:
            raise ValueError("Invalid value for `cc_email_recipients`, must not be `None`")

        self._cc_email_recipients = cc_email_recipients

    @property
    def contextual_text(self):
        """
        Gets the contextual_text of this NotificationConfigurationOutputV1.
        Text that provides additional context in the notification

        :return: The contextual_text of this NotificationConfigurationOutputV1.
        :rtype: str
        """
        return self._contextual_text

    @contextual_text.setter
    def contextual_text(self, contextual_text):
        """
        Sets the contextual_text of this NotificationConfigurationOutputV1.
        Text that provides additional context in the notification

        :param contextual_text: The contextual_text of this NotificationConfigurationOutputV1.
        :type: str
        """

        self._contextual_text = contextual_text

    @property
    def reply_to_email_recipients(self):
        """
        Gets the reply_to_email_recipients of this NotificationConfigurationOutputV1.
        Email addresses or User IDs that will be in the Reply-To list of the email

        :return: The reply_to_email_recipients of this NotificationConfigurationOutputV1.
        :rtype: list[EmailNotificationRecipientOutputV1]
        """
        return self._reply_to_email_recipients

    @reply_to_email_recipients.setter
    def reply_to_email_recipients(self, reply_to_email_recipients):
        """
        Sets the reply_to_email_recipients of this NotificationConfigurationOutputV1.
        Email addresses or User IDs that will be in the Reply-To list of the email

        :param reply_to_email_recipients: The reply_to_email_recipients of this NotificationConfigurationOutputV1.
        :type: list[EmailNotificationRecipientOutputV1]
        """
        if reply_to_email_recipients is None:
            raise ValueError("Invalid value for `reply_to_email_recipients`, must not be `None`")

        self._reply_to_email_recipients = reply_to_email_recipients

    @property
    def report_format(self):
        """
        Gets the report_format of this NotificationConfigurationOutputV1.
        The format of the report in the notification

        :return: The report_format of this NotificationConfigurationOutputV1.
        :rtype: str
        """
        return self._report_format

    @report_format.setter
    def report_format(self, report_format):
        """
        Sets the report_format of this NotificationConfigurationOutputV1.
        The format of the report in the notification

        :param report_format: The report_format of this NotificationConfigurationOutputV1.
        :type: str
        """

        self._report_format = report_format

    @property
    def subject(self):
        """
        Gets the subject of this NotificationConfigurationOutputV1.
        Subject for the notification email

        :return: The subject of this NotificationConfigurationOutputV1.
        :rtype: str
        """
        return self._subject

    @subject.setter
    def subject(self, subject):
        """
        Sets the subject of this NotificationConfigurationOutputV1.
        Subject for the notification email

        :param subject: The subject of this NotificationConfigurationOutputV1.
        :type: str
        """

        self._subject = subject

    @property
    def timezone(self):
        """
        Gets the timezone of this NotificationConfigurationOutputV1.
        The IANA timezone used for formatting the start and end times of capsules, defaults to UTC

        :return: The timezone of this NotificationConfigurationOutputV1.
        :rtype: str
        """
        return self._timezone

    @timezone.setter
    def timezone(self, timezone):
        """
        Sets the timezone of this NotificationConfigurationOutputV1.
        The IANA timezone used for formatting the start and end times of capsules, defaults to UTC

        :param timezone: The timezone of this NotificationConfigurationOutputV1.
        :type: str
        """

        self._timezone = timezone

    @property
    def to_email_recipients(self):
        """
        Gets the to_email_recipients of this NotificationConfigurationOutputV1.
        Email addresses or User IDs that will be in the To list of the email

        :return: The to_email_recipients of this NotificationConfigurationOutputV1.
        :rtype: list[EmailNotificationRecipientOutputV1]
        """
        return self._to_email_recipients

    @to_email_recipients.setter
    def to_email_recipients(self, to_email_recipients):
        """
        Sets the to_email_recipients of this NotificationConfigurationOutputV1.
        Email addresses or User IDs that will be in the To list of the email

        :param to_email_recipients: The to_email_recipients of this NotificationConfigurationOutputV1.
        :type: list[EmailNotificationRecipientOutputV1]
        """
        if to_email_recipients is None:
            raise ValueError("Invalid value for `to_email_recipients`, must not be `None`")

        self._to_email_recipients = to_email_recipients

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

        for attr, _ in 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

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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, NotificationConfigurationOutputV1):
            return False

        return self.__dict__ == other.__dict__

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