# coding: utf-8

"""
    Prompt.io APIs

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

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

import pprint
import re  # noqa: F401

import six

class AnalyticsErrorReportModel(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 = {
        'timestamp_epoch': 'int',
        'message_delivery_failed': 'int',
        'message_delivery_undelivered': 'int',
        'instant_app_delivery_failed': 'int',
        'instant_app_delivery_undelivered': 'int',
        'instant_app_snippet_errors': 'int',
        'instant_app_action_errors': 'int',
        'api_caller_errors': 'int',
        'bulk_messages_failed': 'int',
        'bulk_messages_undelivered': 'int',
        'scheduled_message_failed': 'int',
        'scheduled_message_undelivered': 'int',
        'console_warnings': 'int',
        'console_errors': 'int',
        'total_errors': 'int'
    }

    attribute_map = {
        'timestamp_epoch': 'timestampEpoch',
        'message_delivery_failed': 'messageDeliveryFailed',
        'message_delivery_undelivered': 'messageDeliveryUndelivered',
        'instant_app_delivery_failed': 'instantAppDeliveryFailed',
        'instant_app_delivery_undelivered': 'instantAppDeliveryUndelivered',
        'instant_app_snippet_errors': 'instantAppSnippetErrors',
        'instant_app_action_errors': 'instantAppActionErrors',
        'api_caller_errors': 'apiCallerErrors',
        'bulk_messages_failed': 'bulkMessagesFailed',
        'bulk_messages_undelivered': 'bulkMessagesUndelivered',
        'scheduled_message_failed': 'scheduledMessageFailed',
        'scheduled_message_undelivered': 'scheduledMessageUndelivered',
        'console_warnings': 'consoleWarnings',
        'console_errors': 'consoleErrors',
        'total_errors': 'totalErrors'
    }

    def __init__(self, timestamp_epoch=None, message_delivery_failed=None, message_delivery_undelivered=None, instant_app_delivery_failed=None, instant_app_delivery_undelivered=None, instant_app_snippet_errors=None, instant_app_action_errors=None, api_caller_errors=None, bulk_messages_failed=None, bulk_messages_undelivered=None, scheduled_message_failed=None, scheduled_message_undelivered=None, console_warnings=None, console_errors=None, total_errors=None):  # noqa: E501
        """AnalyticsErrorReportModel - a model defined in Swagger"""  # noqa: E501
        self._timestamp_epoch = None
        self._message_delivery_failed = None
        self._message_delivery_undelivered = None
        self._instant_app_delivery_failed = None
        self._instant_app_delivery_undelivered = None
        self._instant_app_snippet_errors = None
        self._instant_app_action_errors = None
        self._api_caller_errors = None
        self._bulk_messages_failed = None
        self._bulk_messages_undelivered = None
        self._scheduled_message_failed = None
        self._scheduled_message_undelivered = None
        self._console_warnings = None
        self._console_errors = None
        self._total_errors = None
        self.discriminator = None
        if timestamp_epoch is not None:
            self.timestamp_epoch = timestamp_epoch
        if message_delivery_failed is not None:
            self.message_delivery_failed = message_delivery_failed
        if message_delivery_undelivered is not None:
            self.message_delivery_undelivered = message_delivery_undelivered
        if instant_app_delivery_failed is not None:
            self.instant_app_delivery_failed = instant_app_delivery_failed
        if instant_app_delivery_undelivered is not None:
            self.instant_app_delivery_undelivered = instant_app_delivery_undelivered
        if instant_app_snippet_errors is not None:
            self.instant_app_snippet_errors = instant_app_snippet_errors
        if instant_app_action_errors is not None:
            self.instant_app_action_errors = instant_app_action_errors
        if api_caller_errors is not None:
            self.api_caller_errors = api_caller_errors
        if bulk_messages_failed is not None:
            self.bulk_messages_failed = bulk_messages_failed
        if bulk_messages_undelivered is not None:
            self.bulk_messages_undelivered = bulk_messages_undelivered
        if scheduled_message_failed is not None:
            self.scheduled_message_failed = scheduled_message_failed
        if scheduled_message_undelivered is not None:
            self.scheduled_message_undelivered = scheduled_message_undelivered
        if console_warnings is not None:
            self.console_warnings = console_warnings
        if console_errors is not None:
            self.console_errors = console_errors
        if total_errors is not None:
            self.total_errors = total_errors

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

        The timestamp at the start of the default group-by window as a Unix timestamp.  # noqa: E501

        :return: The timestamp_epoch of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._timestamp_epoch

    @timestamp_epoch.setter
    def timestamp_epoch(self, timestamp_epoch):
        """Sets the timestamp_epoch of this AnalyticsErrorReportModel.

        The timestamp at the start of the default group-by window as a Unix timestamp.  # noqa: E501

        :param timestamp_epoch: The timestamp_epoch of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._timestamp_epoch = timestamp_epoch

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

        The number of Messages which failed with status 'FAILED' in this group-by window.  # noqa: E501

        :return: The message_delivery_failed of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._message_delivery_failed

    @message_delivery_failed.setter
    def message_delivery_failed(self, message_delivery_failed):
        """Sets the message_delivery_failed of this AnalyticsErrorReportModel.

        The number of Messages which failed with status 'FAILED' in this group-by window.  # noqa: E501

        :param message_delivery_failed: The message_delivery_failed of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._message_delivery_failed = message_delivery_failed

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

        The number of Messages which failed with status 'UNDELIVERABLE' in this group-by window.  # noqa: E501

        :return: The message_delivery_undelivered of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._message_delivery_undelivered

    @message_delivery_undelivered.setter
    def message_delivery_undelivered(self, message_delivery_undelivered):
        """Sets the message_delivery_undelivered of this AnalyticsErrorReportModel.

        The number of Messages which failed with status 'UNDELIVERABLE' in this group-by window.  # noqa: E501

        :param message_delivery_undelivered: The message_delivery_undelivered of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._message_delivery_undelivered = message_delivery_undelivered

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

        The number of Instant Apps which failed with status 'FAILED' in this group-by window.  # noqa: E501

        :return: The instant_app_delivery_failed of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._instant_app_delivery_failed

    @instant_app_delivery_failed.setter
    def instant_app_delivery_failed(self, instant_app_delivery_failed):
        """Sets the instant_app_delivery_failed of this AnalyticsErrorReportModel.

        The number of Instant Apps which failed with status 'FAILED' in this group-by window.  # noqa: E501

        :param instant_app_delivery_failed: The instant_app_delivery_failed of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._instant_app_delivery_failed = instant_app_delivery_failed

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

        The number of Instant Apps which failed with status 'UNDELIVERABLE' in this group-by window.  # noqa: E501

        :return: The instant_app_delivery_undelivered of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._instant_app_delivery_undelivered

    @instant_app_delivery_undelivered.setter
    def instant_app_delivery_undelivered(self, instant_app_delivery_undelivered):
        """Sets the instant_app_delivery_undelivered of this AnalyticsErrorReportModel.

        The number of Instant Apps which failed with status 'UNDELIVERABLE' in this group-by window.  # noqa: E501

        :param instant_app_delivery_undelivered: The instant_app_delivery_undelivered of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._instant_app_delivery_undelivered = instant_app_delivery_undelivered

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

        The number of Snippet executions which failed with any error in this group-by window.  # noqa: E501

        :return: The instant_app_snippet_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._instant_app_snippet_errors

    @instant_app_snippet_errors.setter
    def instant_app_snippet_errors(self, instant_app_snippet_errors):
        """Sets the instant_app_snippet_errors of this AnalyticsErrorReportModel.

        The number of Snippet executions which failed with any error in this group-by window.  # noqa: E501

        :param instant_app_snippet_errors: The instant_app_snippet_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._instant_app_snippet_errors = instant_app_snippet_errors

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

        The number of Action executions which failed with any error in this group-by window.  # noqa: E501

        :return: The instant_app_action_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._instant_app_action_errors

    @instant_app_action_errors.setter
    def instant_app_action_errors(self, instant_app_action_errors):
        """Sets the instant_app_action_errors of this AnalyticsErrorReportModel.

        The number of Action executions which failed with any error in this group-by window.  # noqa: E501

        :param instant_app_action_errors: The instant_app_action_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._instant_app_action_errors = instant_app_action_errors

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

        The number of API calls which returned any non-200 response in this group-by window.  # noqa: E501

        :return: The api_caller_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._api_caller_errors

    @api_caller_errors.setter
    def api_caller_errors(self, api_caller_errors):
        """Sets the api_caller_errors of this AnalyticsErrorReportModel.

        The number of API calls which returned any non-200 response in this group-by window.  # noqa: E501

        :param api_caller_errors: The api_caller_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._api_caller_errors = api_caller_errors

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

        The number of Bulk Messages which failed with status 'FAILED' in this group-by window.  # noqa: E501

        :return: The bulk_messages_failed of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._bulk_messages_failed

    @bulk_messages_failed.setter
    def bulk_messages_failed(self, bulk_messages_failed):
        """Sets the bulk_messages_failed of this AnalyticsErrorReportModel.

        The number of Bulk Messages which failed with status 'FAILED' in this group-by window.  # noqa: E501

        :param bulk_messages_failed: The bulk_messages_failed of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._bulk_messages_failed = bulk_messages_failed

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

        The number of Bulk Messages which failed with status 'UNDELIVERED' in this group-by window.  # noqa: E501

        :return: The bulk_messages_undelivered of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._bulk_messages_undelivered

    @bulk_messages_undelivered.setter
    def bulk_messages_undelivered(self, bulk_messages_undelivered):
        """Sets the bulk_messages_undelivered of this AnalyticsErrorReportModel.

        The number of Bulk Messages which failed with status 'UNDELIVERED' in this group-by window.  # noqa: E501

        :param bulk_messages_undelivered: The bulk_messages_undelivered of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._bulk_messages_undelivered = bulk_messages_undelivered

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

        The number of Scheduled Messages which failed with status 'FAILED' in this group-by window.  # noqa: E501

        :return: The scheduled_message_failed of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._scheduled_message_failed

    @scheduled_message_failed.setter
    def scheduled_message_failed(self, scheduled_message_failed):
        """Sets the scheduled_message_failed of this AnalyticsErrorReportModel.

        The number of Scheduled Messages which failed with status 'FAILED' in this group-by window.  # noqa: E501

        :param scheduled_message_failed: The scheduled_message_failed of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._scheduled_message_failed = scheduled_message_failed

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

        The number of Scheduled Messages which failed with status 'UNDELIVERED' in this group-by window.  # noqa: E501

        :return: The scheduled_message_undelivered of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._scheduled_message_undelivered

    @scheduled_message_undelivered.setter
    def scheduled_message_undelivered(self, scheduled_message_undelivered):
        """Sets the scheduled_message_undelivered of this AnalyticsErrorReportModel.

        The number of Scheduled Messages which failed with status 'UNDELIVERED' in this group-by window.  # noqa: E501

        :param scheduled_message_undelivered: The scheduled_message_undelivered of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._scheduled_message_undelivered = scheduled_message_undelivered

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

        The number of console warnings in this group-by window.  # noqa: E501

        :return: The console_warnings of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._console_warnings

    @console_warnings.setter
    def console_warnings(self, console_warnings):
        """Sets the console_warnings of this AnalyticsErrorReportModel.

        The number of console warnings in this group-by window.  # noqa: E501

        :param console_warnings: The console_warnings of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._console_warnings = console_warnings

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

        The number of console errors in this group-by window.  # noqa: E501

        :return: The console_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._console_errors

    @console_errors.setter
    def console_errors(self, console_errors):
        """Sets the console_errors of this AnalyticsErrorReportModel.

        The number of console errors in this group-by window.  # noqa: E501

        :param console_errors: The console_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._console_errors = console_errors

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

        The total number of errors of all tracked types in this group-by window.  # noqa: E501

        :return: The total_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :rtype: int
        """
        return self._total_errors

    @total_errors.setter
    def total_errors(self, total_errors):
        """Sets the total_errors of this AnalyticsErrorReportModel.

        The total number of errors of all tracked types in this group-by window.  # noqa: E501

        :param total_errors: The total_errors of this AnalyticsErrorReportModel.  # noqa: E501
        :type: int
        """

        self._total_errors = total_errors

    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(AnalyticsErrorReportModel, 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, AnalyticsErrorReportModel):
            return False

        return self.__dict__ == other.__dict__

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