# coding: utf-8

"""
    Adobe Experience Manager OSGI config (AEM) API

    Swagger AEM OSGI is an OpenAPI specification for Adobe Experience Manager (AEM) OSGI Configurations API  # noqa: E501

    OpenAPI spec version: 1.0.0-pre.0
    Contact: opensource@shinesolutions.com
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six


class ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties(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 = {
        'translate_language': 'ConfigNodePropertyDropDown',
        'translate_display': 'ConfigNodePropertyDropDown',
        'translate_attribution': 'ConfigNodePropertyBoolean',
        'translate_caching': 'ConfigNodePropertyDropDown',
        'translate_smart_rendering': 'ConfigNodePropertyDropDown',
        'translate_caching_duration': 'ConfigNodePropertyString',
        'translate_session_save_interval': 'ConfigNodePropertyString',
        'translate_session_save_batch_limit': 'ConfigNodePropertyString'
    }

    attribute_map = {
        'translate_language': 'translate.language',
        'translate_display': 'translate.display',
        'translate_attribution': 'translate.attribution',
        'translate_caching': 'translate.caching',
        'translate_smart_rendering': 'translate.smart.rendering',
        'translate_caching_duration': 'translate.caching.duration',
        'translate_session_save_interval': 'translate.session.save.interval',
        'translate_session_save_batch_limit': 'translate.session.save.batchLimit'
    }

    def __init__(self, translate_language=None, translate_display=None, translate_attribution=None, translate_caching=None, translate_smart_rendering=None, translate_caching_duration=None, translate_session_save_interval=None, translate_session_save_batch_limit=None):  # noqa: E501
        """ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties - a model defined in OpenAPI"""  # noqa: E501

        self._translate_language = None
        self._translate_display = None
        self._translate_attribution = None
        self._translate_caching = None
        self._translate_smart_rendering = None
        self._translate_caching_duration = None
        self._translate_session_save_interval = None
        self._translate_session_save_batch_limit = None
        self.discriminator = None

        if translate_language is not None:
            self.translate_language = translate_language
        if translate_display is not None:
            self.translate_display = translate_display
        if translate_attribution is not None:
            self.translate_attribution = translate_attribution
        if translate_caching is not None:
            self.translate_caching = translate_caching
        if translate_smart_rendering is not None:
            self.translate_smart_rendering = translate_smart_rendering
        if translate_caching_duration is not None:
            self.translate_caching_duration = translate_caching_duration
        if translate_session_save_interval is not None:
            self.translate_session_save_interval = translate_session_save_interval
        if translate_session_save_batch_limit is not None:
            self.translate_session_save_batch_limit = translate_session_save_batch_limit

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


        :return: The translate_language of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :rtype: ConfigNodePropertyDropDown
        """
        return self._translate_language

    @translate_language.setter
    def translate_language(self, translate_language):
        """Sets the translate_language of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.


        :param translate_language: The translate_language of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :type: ConfigNodePropertyDropDown
        """

        self._translate_language = translate_language

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


        :return: The translate_display of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :rtype: ConfigNodePropertyDropDown
        """
        return self._translate_display

    @translate_display.setter
    def translate_display(self, translate_display):
        """Sets the translate_display of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.


        :param translate_display: The translate_display of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :type: ConfigNodePropertyDropDown
        """

        self._translate_display = translate_display

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


        :return: The translate_attribution of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :rtype: ConfigNodePropertyBoolean
        """
        return self._translate_attribution

    @translate_attribution.setter
    def translate_attribution(self, translate_attribution):
        """Sets the translate_attribution of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.


        :param translate_attribution: The translate_attribution of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :type: ConfigNodePropertyBoolean
        """

        self._translate_attribution = translate_attribution

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


        :return: The translate_caching of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :rtype: ConfigNodePropertyDropDown
        """
        return self._translate_caching

    @translate_caching.setter
    def translate_caching(self, translate_caching):
        """Sets the translate_caching of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.


        :param translate_caching: The translate_caching of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :type: ConfigNodePropertyDropDown
        """

        self._translate_caching = translate_caching

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


        :return: The translate_smart_rendering of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :rtype: ConfigNodePropertyDropDown
        """
        return self._translate_smart_rendering

    @translate_smart_rendering.setter
    def translate_smart_rendering(self, translate_smart_rendering):
        """Sets the translate_smart_rendering of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.


        :param translate_smart_rendering: The translate_smart_rendering of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :type: ConfigNodePropertyDropDown
        """

        self._translate_smart_rendering = translate_smart_rendering

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


        :return: The translate_caching_duration of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._translate_caching_duration

    @translate_caching_duration.setter
    def translate_caching_duration(self, translate_caching_duration):
        """Sets the translate_caching_duration of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.


        :param translate_caching_duration: The translate_caching_duration of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._translate_caching_duration = translate_caching_duration

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


        :return: The translate_session_save_interval of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._translate_session_save_interval

    @translate_session_save_interval.setter
    def translate_session_save_interval(self, translate_session_save_interval):
        """Sets the translate_session_save_interval of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.


        :param translate_session_save_interval: The translate_session_save_interval of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._translate_session_save_interval = translate_session_save_interval

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


        :return: The translate_session_save_batch_limit of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :rtype: ConfigNodePropertyString
        """
        return self._translate_session_save_batch_limit

    @translate_session_save_batch_limit.setter
    def translate_session_save_batch_limit(self, translate_session_save_batch_limit):
        """Sets the translate_session_save_batch_limit of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.


        :param translate_session_save_batch_limit: The translate_session_save_batch_limit of this ComAdobeCqSocialTranslationImplTranslationServiceConfigManagerProperties.  # noqa: E501
        :type: ConfigNodePropertyString
        """

        self._translate_session_save_batch_limit = translate_session_save_batch_limit

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

        return self.__dict__ == other.__dict__

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