# coding: utf-8

"""
    Robust Intelligence REST API

    API methods for Robust Intelligence. Users must authenticate using the `X-Firewall-Api-Key` for all the firewall methods and `rime-api-key` for all other methods.  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class FirewallScheduledCTInfo(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 = {
        'eval_data_integration_id': 'RimeUUID',
        'eval_data_info': 'RegistryDataInfo',
        'eval_pred_integration_id': 'RimeUUID',
        'eval_pred_info': 'RegistryPredInfo',
        'last_ct_scheduled': 'datetime',
        'activated_time': 'datetime',
        'disable_scheduled_ct': 'bool'
    }

    attribute_map = {
        'eval_data_integration_id': 'evalDataIntegrationId',
        'eval_data_info': 'evalDataInfo',
        'eval_pred_integration_id': 'evalPredIntegrationId',
        'eval_pred_info': 'evalPredInfo',
        'last_ct_scheduled': 'lastCtScheduled',
        'activated_time': 'activatedTime',
        'disable_scheduled_ct': 'disableScheduledCt'
    }

    def __init__(self, eval_data_integration_id=None, eval_data_info=None, eval_pred_integration_id=None, eval_pred_info=None, last_ct_scheduled=None, activated_time=None, disable_scheduled_ct=None):  # noqa: E501
        """FirewallScheduledCTInfo - a model defined in Swagger"""  # noqa: E501
        self._eval_data_integration_id = None
        self._eval_data_info = None
        self._eval_pred_integration_id = None
        self._eval_pred_info = None
        self._last_ct_scheduled = None
        self._activated_time = None
        self._disable_scheduled_ct = None
        self.discriminator = None
        if eval_data_integration_id is not None:
            self.eval_data_integration_id = eval_data_integration_id
        if eval_data_info is not None:
            self.eval_data_info = eval_data_info
        if eval_pred_integration_id is not None:
            self.eval_pred_integration_id = eval_pred_integration_id
        if eval_pred_info is not None:
            self.eval_pred_info = eval_pred_info
        if last_ct_scheduled is not None:
            self.last_ct_scheduled = last_ct_scheduled
        if activated_time is not None:
            self.activated_time = activated_time
        if disable_scheduled_ct is not None:
            self.disable_scheduled_ct = disable_scheduled_ct

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


        :return: The eval_data_integration_id of this FirewallScheduledCTInfo.  # noqa: E501
        :rtype: RimeUUID
        """
        return self._eval_data_integration_id

    @eval_data_integration_id.setter
    def eval_data_integration_id(self, eval_data_integration_id):
        """Sets the eval_data_integration_id of this FirewallScheduledCTInfo.


        :param eval_data_integration_id: The eval_data_integration_id of this FirewallScheduledCTInfo.  # noqa: E501
        :type: RimeUUID
        """

        self._eval_data_integration_id = eval_data_integration_id

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


        :return: The eval_data_info of this FirewallScheduledCTInfo.  # noqa: E501
        :rtype: RegistryDataInfo
        """
        return self._eval_data_info

    @eval_data_info.setter
    def eval_data_info(self, eval_data_info):
        """Sets the eval_data_info of this FirewallScheduledCTInfo.


        :param eval_data_info: The eval_data_info of this FirewallScheduledCTInfo.  # noqa: E501
        :type: RegistryDataInfo
        """

        self._eval_data_info = eval_data_info

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


        :return: The eval_pred_integration_id of this FirewallScheduledCTInfo.  # noqa: E501
        :rtype: RimeUUID
        """
        return self._eval_pred_integration_id

    @eval_pred_integration_id.setter
    def eval_pred_integration_id(self, eval_pred_integration_id):
        """Sets the eval_pred_integration_id of this FirewallScheduledCTInfo.


        :param eval_pred_integration_id: The eval_pred_integration_id of this FirewallScheduledCTInfo.  # noqa: E501
        :type: RimeUUID
        """

        self._eval_pred_integration_id = eval_pred_integration_id

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


        :return: The eval_pred_info of this FirewallScheduledCTInfo.  # noqa: E501
        :rtype: RegistryPredInfo
        """
        return self._eval_pred_info

    @eval_pred_info.setter
    def eval_pred_info(self, eval_pred_info):
        """Sets the eval_pred_info of this FirewallScheduledCTInfo.


        :param eval_pred_info: The eval_pred_info of this FirewallScheduledCTInfo.  # noqa: E501
        :type: RegistryPredInfo
        """

        self._eval_pred_info = eval_pred_info

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

        Specifies a timestamp based on the end time of the window for each run. The scheduler uses this timestamp to determine job start times and the time bin to use.  # noqa: E501

        :return: The last_ct_scheduled of this FirewallScheduledCTInfo.  # noqa: E501
        :rtype: datetime
        """
        return self._last_ct_scheduled

    @last_ct_scheduled.setter
    def last_ct_scheduled(self, last_ct_scheduled):
        """Sets the last_ct_scheduled of this FirewallScheduledCTInfo.

        Specifies a timestamp based on the end time of the window for each run. The scheduler uses this timestamp to determine job start times and the time bin to use.  # noqa: E501

        :param last_ct_scheduled: The last_ct_scheduled of this FirewallScheduledCTInfo.  # noqa: E501
        :type: datetime
        """

        self._last_ct_scheduled = last_ct_scheduled

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

        When the AI Firewall has no bins, this value is used as the start time. Otherwise, the end time of the last bin in the AI Firewall is used as the AI Firewall start time.  # noqa: E501

        :return: The activated_time of this FirewallScheduledCTInfo.  # noqa: E501
        :rtype: datetime
        """
        return self._activated_time

    @activated_time.setter
    def activated_time(self, activated_time):
        """Sets the activated_time of this FirewallScheduledCTInfo.

        When the AI Firewall has no bins, this value is used as the start time. Otherwise, the end time of the last bin in the AI Firewall is used as the AI Firewall start time.  # noqa: E501

        :param activated_time: The activated_time of this FirewallScheduledCTInfo.  # noqa: E501
        :type: datetime
        """

        self._activated_time = activated_time

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

        Option for disabling scheduled CT - this should be false by default. This enables users to suspend a scheduled CT while preserving existing settings.  # noqa: E501

        :return: The disable_scheduled_ct of this FirewallScheduledCTInfo.  # noqa: E501
        :rtype: bool
        """
        return self._disable_scheduled_ct

    @disable_scheduled_ct.setter
    def disable_scheduled_ct(self, disable_scheduled_ct):
        """Sets the disable_scheduled_ct of this FirewallScheduledCTInfo.

        Option for disabling scheduled CT - this should be false by default. This enables users to suspend a scheduled CT while preserving existing settings.  # noqa: E501

        :param disable_scheduled_ct: The disable_scheduled_ct of this FirewallScheduledCTInfo.  # noqa: E501
        :type: bool
        """

        self._disable_scheduled_ct = disable_scheduled_ct

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

        return self.__dict__ == other.__dict__

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