# coding: utf-8

"""
    Command Center operations

    Command Center operations  # noqa: E501

    OpenAPI spec version: 23.03-sp1
    Contact: support@zadarastorage.com
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from CommandCenter.configuration import Configuration


class InlineResponse20054General(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 = {
        'domain_name': 'str',
        'support_tickets': 'InlineResponse20054SupportTickets',
        'zsnap_settings': 'InlineResponse20054ZsnapSettings',
        'cache_or_afa_meta_drives_settings': 'InlineResponse20054CacheOrAfaMetaDrivesSettings',
        'ticket_threshold': 'InlineResponse20054TicketThreshold',
        'default_ccvm_engine': 'InlineResponse20054DefaultCcvmEngine'
    }

    attribute_map = {
        'domain_name': 'domain_name',
        'support_tickets': 'support_tickets',
        'zsnap_settings': 'zsnap_settings',
        'cache_or_afa_meta_drives_settings': 'cache_or_afa_meta_drives_settings',
        'ticket_threshold': 'ticket_threshold',
        'default_ccvm_engine': 'default_ccvm_engine'
    }

    def __init__(self, domain_name=None, support_tickets=None, zsnap_settings=None, cache_or_afa_meta_drives_settings=None, ticket_threshold=None, default_ccvm_engine=None, _configuration=None):  # noqa: E501
        """InlineResponse20054General - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._domain_name = None
        self._support_tickets = None
        self._zsnap_settings = None
        self._cache_or_afa_meta_drives_settings = None
        self._ticket_threshold = None
        self._default_ccvm_engine = None
        self.discriminator = None

        if domain_name is not None:
            self.domain_name = domain_name
        if support_tickets is not None:
            self.support_tickets = support_tickets
        if zsnap_settings is not None:
            self.zsnap_settings = zsnap_settings
        if cache_or_afa_meta_drives_settings is not None:
            self.cache_or_afa_meta_drives_settings = cache_or_afa_meta_drives_settings
        if ticket_threshold is not None:
            self.ticket_threshold = ticket_threshold
        if default_ccvm_engine is not None:
            self.default_ccvm_engine = default_ccvm_engine

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


        :return: The domain_name of this InlineResponse20054General.  # noqa: E501
        :rtype: str
        """
        return self._domain_name

    @domain_name.setter
    def domain_name(self, domain_name):
        """Sets the domain_name of this InlineResponse20054General.


        :param domain_name: The domain_name of this InlineResponse20054General.  # noqa: E501
        :type: str
        """

        self._domain_name = domain_name

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


        :return: The support_tickets of this InlineResponse20054General.  # noqa: E501
        :rtype: InlineResponse20054SupportTickets
        """
        return self._support_tickets

    @support_tickets.setter
    def support_tickets(self, support_tickets):
        """Sets the support_tickets of this InlineResponse20054General.


        :param support_tickets: The support_tickets of this InlineResponse20054General.  # noqa: E501
        :type: InlineResponse20054SupportTickets
        """

        self._support_tickets = support_tickets

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


        :return: The zsnap_settings of this InlineResponse20054General.  # noqa: E501
        :rtype: InlineResponse20054ZsnapSettings
        """
        return self._zsnap_settings

    @zsnap_settings.setter
    def zsnap_settings(self, zsnap_settings):
        """Sets the zsnap_settings of this InlineResponse20054General.


        :param zsnap_settings: The zsnap_settings of this InlineResponse20054General.  # noqa: E501
        :type: InlineResponse20054ZsnapSettings
        """

        self._zsnap_settings = zsnap_settings

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


        :return: The cache_or_afa_meta_drives_settings of this InlineResponse20054General.  # noqa: E501
        :rtype: InlineResponse20054CacheOrAfaMetaDrivesSettings
        """
        return self._cache_or_afa_meta_drives_settings

    @cache_or_afa_meta_drives_settings.setter
    def cache_or_afa_meta_drives_settings(self, cache_or_afa_meta_drives_settings):
        """Sets the cache_or_afa_meta_drives_settings of this InlineResponse20054General.


        :param cache_or_afa_meta_drives_settings: The cache_or_afa_meta_drives_settings of this InlineResponse20054General.  # noqa: E501
        :type: InlineResponse20054CacheOrAfaMetaDrivesSettings
        """

        self._cache_or_afa_meta_drives_settings = cache_or_afa_meta_drives_settings

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


        :return: The ticket_threshold of this InlineResponse20054General.  # noqa: E501
        :rtype: InlineResponse20054TicketThreshold
        """
        return self._ticket_threshold

    @ticket_threshold.setter
    def ticket_threshold(self, ticket_threshold):
        """Sets the ticket_threshold of this InlineResponse20054General.


        :param ticket_threshold: The ticket_threshold of this InlineResponse20054General.  # noqa: E501
        :type: InlineResponse20054TicketThreshold
        """

        self._ticket_threshold = ticket_threshold

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


        :return: The default_ccvm_engine of this InlineResponse20054General.  # noqa: E501
        :rtype: InlineResponse20054DefaultCcvmEngine
        """
        return self._default_ccvm_engine

    @default_ccvm_engine.setter
    def default_ccvm_engine(self, default_ccvm_engine):
        """Sets the default_ccvm_engine of this InlineResponse20054General.


        :param default_ccvm_engine: The default_ccvm_engine of this InlineResponse20054General.  # noqa: E501
        :type: InlineResponse20054DefaultCcvmEngine
        """

        self._default_ccvm_engine = default_ccvm_engine

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

        return self.to_dict() == other.to_dict()

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

        return self.to_dict() != other.to_dict()
