# coding: utf-8

"""
    Vidispine API

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: 5.x
    Contact: info@vidispine.com
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six
from . import *

class IndexingConfigurationType(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        'field_default': 'list[IndexingConfigurationTypeFieldDefault]',
        'auto_soft_commit': 'bool',
        'query_timeout': 'int',
        'soft_commit_interval': 'int',
        'solr_path': 'str',
        'zookeeper_host': 'list[str]',
        'ping_timeout': 'int',
        'solr_collection': 'str',
        'commit_interval': 'int',
        'ping_attempts': 'int',
        'elasticsearch_path': 'str'
    }

    attribute_map = {
        'field_default': 'fieldDefault',
        'auto_soft_commit': 'autoSoftCommit',
        'query_timeout': 'queryTimeout',
        'soft_commit_interval': 'softCommitInterval',
        'solr_path': 'solrPath',
        'zookeeper_host': 'zookeeperHost',
        'ping_timeout': 'pingTimeout',
        'solr_collection': 'solrCollection',
        'commit_interval': 'commitInterval',
        'ping_attempts': 'pingAttempts',
        'elasticsearch_path': 'elasticsearchPath'
    }

    def __init__(self, field_default=None, auto_soft_commit=None, query_timeout=None, soft_commit_interval=None, solr_path=None, zookeeper_host=None, ping_timeout=None, solr_collection=None, commit_interval=None, ping_attempts=None, elasticsearch_path=None):  # noqa: E501
        """IndexingConfigurationType - a model defined in OpenAPI"""  # noqa: E501

        self._field_default = None
        self._auto_soft_commit = None
        self._query_timeout = None
        self._soft_commit_interval = None
        self._solr_path = None
        self._zookeeper_host = None
        self._ping_timeout = None
        self._solr_collection = None
        self._commit_interval = None
        self._ping_attempts = None
        self._elasticsearch_path = None
        self.discriminator = None

        if field_default is not None:
            self.field_default = field_default
        if auto_soft_commit is not None:
            self.auto_soft_commit = auto_soft_commit
        if query_timeout is not None:
            self.query_timeout = query_timeout
        if soft_commit_interval is not None:
            self.soft_commit_interval = soft_commit_interval
        if solr_path is not None:
            self.solr_path = solr_path
        if zookeeper_host is not None:
            self.zookeeper_host = zookeeper_host
        if ping_timeout is not None:
            self.ping_timeout = ping_timeout
        if solr_collection is not None:
            self.solr_collection = solr_collection
        if commit_interval is not None:
            self.commit_interval = commit_interval
        if ping_attempts is not None:
            self.ping_attempts = ping_attempts
        if elasticsearch_path is not None:
            self.elasticsearch_path = elasticsearch_path

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


        :return: The field_default of this IndexingConfigurationType.  # noqa: E501
        :rtype: list[IndexingConfigurationTypeFieldDefault]
        """
        return self._field_default

    @field_default.setter
    def field_default(self, field_default):
        """Sets the field_default of this IndexingConfigurationType.


        :param field_default: The field_default of this IndexingConfigurationType.  # noqa: E501
        :type: list[IndexingConfigurationTypeFieldDefault]
        """

        self._field_default = field_default

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


        :return: The auto_soft_commit of this IndexingConfigurationType.  # noqa: E501
        :rtype: bool
        """
        return self._auto_soft_commit

    @auto_soft_commit.setter
    def auto_soft_commit(self, auto_soft_commit):
        """Sets the auto_soft_commit of this IndexingConfigurationType.


        :param auto_soft_commit: The auto_soft_commit of this IndexingConfigurationType.  # noqa: E501
        :type: bool
        """

        self._auto_soft_commit = auto_soft_commit

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


        :return: The query_timeout of this IndexingConfigurationType.  # noqa: E501
        :rtype: int
        """
        return self._query_timeout

    @query_timeout.setter
    def query_timeout(self, query_timeout):
        """Sets the query_timeout of this IndexingConfigurationType.


        :param query_timeout: The query_timeout of this IndexingConfigurationType.  # noqa: E501
        :type: int
        """

        self._query_timeout = query_timeout

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


        :return: The soft_commit_interval of this IndexingConfigurationType.  # noqa: E501
        :rtype: int
        """
        return self._soft_commit_interval

    @soft_commit_interval.setter
    def soft_commit_interval(self, soft_commit_interval):
        """Sets the soft_commit_interval of this IndexingConfigurationType.


        :param soft_commit_interval: The soft_commit_interval of this IndexingConfigurationType.  # noqa: E501
        :type: int
        """

        self._soft_commit_interval = soft_commit_interval

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


        :return: The solr_path of this IndexingConfigurationType.  # noqa: E501
        :rtype: str
        """
        return self._solr_path

    @solr_path.setter
    def solr_path(self, solr_path):
        """Sets the solr_path of this IndexingConfigurationType.


        :param solr_path: The solr_path of this IndexingConfigurationType.  # noqa: E501
        :type: str
        """

        self._solr_path = solr_path

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


        :return: The zookeeper_host of this IndexingConfigurationType.  # noqa: E501
        :rtype: list[str]
        """
        return self._zookeeper_host

    @zookeeper_host.setter
    def zookeeper_host(self, zookeeper_host):
        """Sets the zookeeper_host of this IndexingConfigurationType.


        :param zookeeper_host: The zookeeper_host of this IndexingConfigurationType.  # noqa: E501
        :type: list[str]
        """

        self._zookeeper_host = zookeeper_host

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


        :return: The ping_timeout of this IndexingConfigurationType.  # noqa: E501
        :rtype: int
        """
        return self._ping_timeout

    @ping_timeout.setter
    def ping_timeout(self, ping_timeout):
        """Sets the ping_timeout of this IndexingConfigurationType.


        :param ping_timeout: The ping_timeout of this IndexingConfigurationType.  # noqa: E501
        :type: int
        """

        self._ping_timeout = ping_timeout

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


        :return: The solr_collection of this IndexingConfigurationType.  # noqa: E501
        :rtype: str
        """
        return self._solr_collection

    @solr_collection.setter
    def solr_collection(self, solr_collection):
        """Sets the solr_collection of this IndexingConfigurationType.


        :param solr_collection: The solr_collection of this IndexingConfigurationType.  # noqa: E501
        :type: str
        """

        self._solr_collection = solr_collection

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


        :return: The commit_interval of this IndexingConfigurationType.  # noqa: E501
        :rtype: int
        """
        return self._commit_interval

    @commit_interval.setter
    def commit_interval(self, commit_interval):
        """Sets the commit_interval of this IndexingConfigurationType.


        :param commit_interval: The commit_interval of this IndexingConfigurationType.  # noqa: E501
        :type: int
        """

        self._commit_interval = commit_interval

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


        :return: The ping_attempts of this IndexingConfigurationType.  # noqa: E501
        :rtype: int
        """
        return self._ping_attempts

    @ping_attempts.setter
    def ping_attempts(self, ping_attempts):
        """Sets the ping_attempts of this IndexingConfigurationType.


        :param ping_attempts: The ping_attempts of this IndexingConfigurationType.  # noqa: E501
        :type: int
        """

        self._ping_attempts = ping_attempts

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


        :return: The elasticsearch_path of this IndexingConfigurationType.  # noqa: E501
        :rtype: str
        """
        return self._elasticsearch_path

    @elasticsearch_path.setter
    def elasticsearch_path(self, elasticsearch_path):
        """Sets the elasticsearch_path of this IndexingConfigurationType.


        :param elasticsearch_path: The elasticsearch_path of this IndexingConfigurationType.  # noqa: E501
        :type: str
        """

        self._elasticsearch_path = elasticsearch_path

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

        for attr, _ in six.iteritems(self.openapi_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 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, IndexingConfigurationType):
            return False

        return self.__dict__ == other.__dict__

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