# coding: utf-8

"""

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

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


from pprint import pformat
from six import iteritems
import re


class ChronoStratigraphy(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 = {
        'young_regional_substage': 'str',
        'young_regional_stage': 'str',
        'young_regional_series': 'str',
        'young_dating_qualifier': 'str',
        'young_intern_system': 'str',
        'young_intern_substage': 'str',
        'young_intern_stage': 'str',
        'young_intern_series': 'str',
        'young_intern_erathem': 'str',
        'young_intern_eonothem': 'str',
        'young_chrono_name': 'str',
        'young_certainty': 'str',
        'old_dating_qualifier': 'str',
        'chrono_preferred_flag': 'bool',
        'old_regional_substage': 'str',
        'old_regional_stage': 'str',
        'old_regional_series': 'str',
        'old_intern_system': 'str',
        'old_intern_substage': 'str',
        'old_intern_stage': 'str',
        'old_intern_series': 'str',
        'old_intern_erathem': 'str',
        'old_intern_eonothem': 'str',
        'old_chrono_name': 'str',
        'chrono_identifier': 'str',
        'old_certainty': 'str'
    }

    attribute_map = {
        'young_regional_substage': 'youngRegionalSubstage',
        'young_regional_stage': 'youngRegionalStage',
        'young_regional_series': 'youngRegionalSeries',
        'young_dating_qualifier': 'youngDatingQualifier',
        'young_intern_system': 'youngInternSystem',
        'young_intern_substage': 'youngInternSubstage',
        'young_intern_stage': 'youngInternStage',
        'young_intern_series': 'youngInternSeries',
        'young_intern_erathem': 'youngInternErathem',
        'young_intern_eonothem': 'youngInternEonothem',
        'young_chrono_name': 'youngChronoName',
        'young_certainty': 'youngCertainty',
        'old_dating_qualifier': 'oldDatingQualifier',
        'chrono_preferred_flag': 'chronoPreferredFlag',
        'old_regional_substage': 'oldRegionalSubstage',
        'old_regional_stage': 'oldRegionalStage',
        'old_regional_series': 'oldRegionalSeries',
        'old_intern_system': 'oldInternSystem',
        'old_intern_substage': 'oldInternSubstage',
        'old_intern_stage': 'oldInternStage',
        'old_intern_series': 'oldInternSeries',
        'old_intern_erathem': 'oldInternErathem',
        'old_intern_eonothem': 'oldInternEonothem',
        'old_chrono_name': 'oldChronoName',
        'chrono_identifier': 'chronoIdentifier',
        'old_certainty': 'oldCertainty'
    }

    def __init__(self, young_regional_substage=None, young_regional_stage=None, young_regional_series=None, young_dating_qualifier=None, young_intern_system=None, young_intern_substage=None, young_intern_stage=None, young_intern_series=None, young_intern_erathem=None, young_intern_eonothem=None, young_chrono_name=None, young_certainty=None, old_dating_qualifier=None, chrono_preferred_flag=None, old_regional_substage=None, old_regional_stage=None, old_regional_series=None, old_intern_system=None, old_intern_substage=None, old_intern_stage=None, old_intern_series=None, old_intern_erathem=None, old_intern_eonothem=None, old_chrono_name=None, chrono_identifier=None, old_certainty=None):
        """
        ChronoStratigraphy - a model defined in Swagger
        """

        self._young_regional_substage = None
        self._young_regional_stage = None
        self._young_regional_series = None
        self._young_dating_qualifier = None
        self._young_intern_system = None
        self._young_intern_substage = None
        self._young_intern_stage = None
        self._young_intern_series = None
        self._young_intern_erathem = None
        self._young_intern_eonothem = None
        self._young_chrono_name = None
        self._young_certainty = None
        self._old_dating_qualifier = None
        self._chrono_preferred_flag = None
        self._old_regional_substage = None
        self._old_regional_stage = None
        self._old_regional_series = None
        self._old_intern_system = None
        self._old_intern_substage = None
        self._old_intern_stage = None
        self._old_intern_series = None
        self._old_intern_erathem = None
        self._old_intern_eonothem = None
        self._old_chrono_name = None
        self._chrono_identifier = None
        self._old_certainty = None
        self.discriminator = None

        if young_regional_substage is not None:
          self.young_regional_substage = young_regional_substage
        if young_regional_stage is not None:
          self.young_regional_stage = young_regional_stage
        if young_regional_series is not None:
          self.young_regional_series = young_regional_series
        if young_dating_qualifier is not None:
          self.young_dating_qualifier = young_dating_qualifier
        if young_intern_system is not None:
          self.young_intern_system = young_intern_system
        if young_intern_substage is not None:
          self.young_intern_substage = young_intern_substage
        if young_intern_stage is not None:
          self.young_intern_stage = young_intern_stage
        if young_intern_series is not None:
          self.young_intern_series = young_intern_series
        if young_intern_erathem is not None:
          self.young_intern_erathem = young_intern_erathem
        if young_intern_eonothem is not None:
          self.young_intern_eonothem = young_intern_eonothem
        if young_chrono_name is not None:
          self.young_chrono_name = young_chrono_name
        if young_certainty is not None:
          self.young_certainty = young_certainty
        if old_dating_qualifier is not None:
          self.old_dating_qualifier = old_dating_qualifier
        if chrono_preferred_flag is not None:
          self.chrono_preferred_flag = chrono_preferred_flag
        if old_regional_substage is not None:
          self.old_regional_substage = old_regional_substage
        if old_regional_stage is not None:
          self.old_regional_stage = old_regional_stage
        if old_regional_series is not None:
          self.old_regional_series = old_regional_series
        if old_intern_system is not None:
          self.old_intern_system = old_intern_system
        if old_intern_substage is not None:
          self.old_intern_substage = old_intern_substage
        if old_intern_stage is not None:
          self.old_intern_stage = old_intern_stage
        if old_intern_series is not None:
          self.old_intern_series = old_intern_series
        if old_intern_erathem is not None:
          self.old_intern_erathem = old_intern_erathem
        if old_intern_eonothem is not None:
          self.old_intern_eonothem = old_intern_eonothem
        if old_chrono_name is not None:
          self.old_chrono_name = old_chrono_name
        if chrono_identifier is not None:
          self.chrono_identifier = chrono_identifier
        if old_certainty is not None:
          self.old_certainty = old_certainty

    @property
    def young_regional_substage(self):
        """
        Gets the young_regional_substage of this ChronoStratigraphy.

        :return: The young_regional_substage of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_regional_substage

    @young_regional_substage.setter
    def young_regional_substage(self, young_regional_substage):
        """
        Sets the young_regional_substage of this ChronoStratigraphy.

        :param young_regional_substage: The young_regional_substage of this ChronoStratigraphy.
        :type: str
        """

        self._young_regional_substage = young_regional_substage

    @property
    def young_regional_stage(self):
        """
        Gets the young_regional_stage of this ChronoStratigraphy.

        :return: The young_regional_stage of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_regional_stage

    @young_regional_stage.setter
    def young_regional_stage(self, young_regional_stage):
        """
        Sets the young_regional_stage of this ChronoStratigraphy.

        :param young_regional_stage: The young_regional_stage of this ChronoStratigraphy.
        :type: str
        """

        self._young_regional_stage = young_regional_stage

    @property
    def young_regional_series(self):
        """
        Gets the young_regional_series of this ChronoStratigraphy.

        :return: The young_regional_series of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_regional_series

    @young_regional_series.setter
    def young_regional_series(self, young_regional_series):
        """
        Sets the young_regional_series of this ChronoStratigraphy.

        :param young_regional_series: The young_regional_series of this ChronoStratigraphy.
        :type: str
        """

        self._young_regional_series = young_regional_series

    @property
    def young_dating_qualifier(self):
        """
        Gets the young_dating_qualifier of this ChronoStratigraphy.

        :return: The young_dating_qualifier of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_dating_qualifier

    @young_dating_qualifier.setter
    def young_dating_qualifier(self, young_dating_qualifier):
        """
        Sets the young_dating_qualifier of this ChronoStratigraphy.

        :param young_dating_qualifier: The young_dating_qualifier of this ChronoStratigraphy.
        :type: str
        """

        self._young_dating_qualifier = young_dating_qualifier

    @property
    def young_intern_system(self):
        """
        Gets the young_intern_system of this ChronoStratigraphy.

        :return: The young_intern_system of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_intern_system

    @young_intern_system.setter
    def young_intern_system(self, young_intern_system):
        """
        Sets the young_intern_system of this ChronoStratigraphy.

        :param young_intern_system: The young_intern_system of this ChronoStratigraphy.
        :type: str
        """

        self._young_intern_system = young_intern_system

    @property
    def young_intern_substage(self):
        """
        Gets the young_intern_substage of this ChronoStratigraphy.

        :return: The young_intern_substage of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_intern_substage

    @young_intern_substage.setter
    def young_intern_substage(self, young_intern_substage):
        """
        Sets the young_intern_substage of this ChronoStratigraphy.

        :param young_intern_substage: The young_intern_substage of this ChronoStratigraphy.
        :type: str
        """

        self._young_intern_substage = young_intern_substage

    @property
    def young_intern_stage(self):
        """
        Gets the young_intern_stage of this ChronoStratigraphy.

        :return: The young_intern_stage of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_intern_stage

    @young_intern_stage.setter
    def young_intern_stage(self, young_intern_stage):
        """
        Sets the young_intern_stage of this ChronoStratigraphy.

        :param young_intern_stage: The young_intern_stage of this ChronoStratigraphy.
        :type: str
        """

        self._young_intern_stage = young_intern_stage

    @property
    def young_intern_series(self):
        """
        Gets the young_intern_series of this ChronoStratigraphy.

        :return: The young_intern_series of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_intern_series

    @young_intern_series.setter
    def young_intern_series(self, young_intern_series):
        """
        Sets the young_intern_series of this ChronoStratigraphy.

        :param young_intern_series: The young_intern_series of this ChronoStratigraphy.
        :type: str
        """

        self._young_intern_series = young_intern_series

    @property
    def young_intern_erathem(self):
        """
        Gets the young_intern_erathem of this ChronoStratigraphy.

        :return: The young_intern_erathem of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_intern_erathem

    @young_intern_erathem.setter
    def young_intern_erathem(self, young_intern_erathem):
        """
        Sets the young_intern_erathem of this ChronoStratigraphy.

        :param young_intern_erathem: The young_intern_erathem of this ChronoStratigraphy.
        :type: str
        """

        self._young_intern_erathem = young_intern_erathem

    @property
    def young_intern_eonothem(self):
        """
        Gets the young_intern_eonothem of this ChronoStratigraphy.

        :return: The young_intern_eonothem of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_intern_eonothem

    @young_intern_eonothem.setter
    def young_intern_eonothem(self, young_intern_eonothem):
        """
        Sets the young_intern_eonothem of this ChronoStratigraphy.

        :param young_intern_eonothem: The young_intern_eonothem of this ChronoStratigraphy.
        :type: str
        """

        self._young_intern_eonothem = young_intern_eonothem

    @property
    def young_chrono_name(self):
        """
        Gets the young_chrono_name of this ChronoStratigraphy.

        :return: The young_chrono_name of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_chrono_name

    @young_chrono_name.setter
    def young_chrono_name(self, young_chrono_name):
        """
        Sets the young_chrono_name of this ChronoStratigraphy.

        :param young_chrono_name: The young_chrono_name of this ChronoStratigraphy.
        :type: str
        """

        self._young_chrono_name = young_chrono_name

    @property
    def young_certainty(self):
        """
        Gets the young_certainty of this ChronoStratigraphy.

        :return: The young_certainty of this ChronoStratigraphy.
        :rtype: str
        """
        return self._young_certainty

    @young_certainty.setter
    def young_certainty(self, young_certainty):
        """
        Sets the young_certainty of this ChronoStratigraphy.

        :param young_certainty: The young_certainty of this ChronoStratigraphy.
        :type: str
        """

        self._young_certainty = young_certainty

    @property
    def old_dating_qualifier(self):
        """
        Gets the old_dating_qualifier of this ChronoStratigraphy.

        :return: The old_dating_qualifier of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_dating_qualifier

    @old_dating_qualifier.setter
    def old_dating_qualifier(self, old_dating_qualifier):
        """
        Sets the old_dating_qualifier of this ChronoStratigraphy.

        :param old_dating_qualifier: The old_dating_qualifier of this ChronoStratigraphy.
        :type: str
        """

        self._old_dating_qualifier = old_dating_qualifier

    @property
    def chrono_preferred_flag(self):
        """
        Gets the chrono_preferred_flag of this ChronoStratigraphy.

        :return: The chrono_preferred_flag of this ChronoStratigraphy.
        :rtype: bool
        """
        return self._chrono_preferred_flag

    @chrono_preferred_flag.setter
    def chrono_preferred_flag(self, chrono_preferred_flag):
        """
        Sets the chrono_preferred_flag of this ChronoStratigraphy.

        :param chrono_preferred_flag: The chrono_preferred_flag of this ChronoStratigraphy.
        :type: bool
        """

        self._chrono_preferred_flag = chrono_preferred_flag

    @property
    def old_regional_substage(self):
        """
        Gets the old_regional_substage of this ChronoStratigraphy.

        :return: The old_regional_substage of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_regional_substage

    @old_regional_substage.setter
    def old_regional_substage(self, old_regional_substage):
        """
        Sets the old_regional_substage of this ChronoStratigraphy.

        :param old_regional_substage: The old_regional_substage of this ChronoStratigraphy.
        :type: str
        """

        self._old_regional_substage = old_regional_substage

    @property
    def old_regional_stage(self):
        """
        Gets the old_regional_stage of this ChronoStratigraphy.

        :return: The old_regional_stage of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_regional_stage

    @old_regional_stage.setter
    def old_regional_stage(self, old_regional_stage):
        """
        Sets the old_regional_stage of this ChronoStratigraphy.

        :param old_regional_stage: The old_regional_stage of this ChronoStratigraphy.
        :type: str
        """

        self._old_regional_stage = old_regional_stage

    @property
    def old_regional_series(self):
        """
        Gets the old_regional_series of this ChronoStratigraphy.

        :return: The old_regional_series of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_regional_series

    @old_regional_series.setter
    def old_regional_series(self, old_regional_series):
        """
        Sets the old_regional_series of this ChronoStratigraphy.

        :param old_regional_series: The old_regional_series of this ChronoStratigraphy.
        :type: str
        """

        self._old_regional_series = old_regional_series

    @property
    def old_intern_system(self):
        """
        Gets the old_intern_system of this ChronoStratigraphy.

        :return: The old_intern_system of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_intern_system

    @old_intern_system.setter
    def old_intern_system(self, old_intern_system):
        """
        Sets the old_intern_system of this ChronoStratigraphy.

        :param old_intern_system: The old_intern_system of this ChronoStratigraphy.
        :type: str
        """

        self._old_intern_system = old_intern_system

    @property
    def old_intern_substage(self):
        """
        Gets the old_intern_substage of this ChronoStratigraphy.

        :return: The old_intern_substage of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_intern_substage

    @old_intern_substage.setter
    def old_intern_substage(self, old_intern_substage):
        """
        Sets the old_intern_substage of this ChronoStratigraphy.

        :param old_intern_substage: The old_intern_substage of this ChronoStratigraphy.
        :type: str
        """

        self._old_intern_substage = old_intern_substage

    @property
    def old_intern_stage(self):
        """
        Gets the old_intern_stage of this ChronoStratigraphy.

        :return: The old_intern_stage of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_intern_stage

    @old_intern_stage.setter
    def old_intern_stage(self, old_intern_stage):
        """
        Sets the old_intern_stage of this ChronoStratigraphy.

        :param old_intern_stage: The old_intern_stage of this ChronoStratigraphy.
        :type: str
        """

        self._old_intern_stage = old_intern_stage

    @property
    def old_intern_series(self):
        """
        Gets the old_intern_series of this ChronoStratigraphy.

        :return: The old_intern_series of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_intern_series

    @old_intern_series.setter
    def old_intern_series(self, old_intern_series):
        """
        Sets the old_intern_series of this ChronoStratigraphy.

        :param old_intern_series: The old_intern_series of this ChronoStratigraphy.
        :type: str
        """

        self._old_intern_series = old_intern_series

    @property
    def old_intern_erathem(self):
        """
        Gets the old_intern_erathem of this ChronoStratigraphy.

        :return: The old_intern_erathem of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_intern_erathem

    @old_intern_erathem.setter
    def old_intern_erathem(self, old_intern_erathem):
        """
        Sets the old_intern_erathem of this ChronoStratigraphy.

        :param old_intern_erathem: The old_intern_erathem of this ChronoStratigraphy.
        :type: str
        """

        self._old_intern_erathem = old_intern_erathem

    @property
    def old_intern_eonothem(self):
        """
        Gets the old_intern_eonothem of this ChronoStratigraphy.

        :return: The old_intern_eonothem of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_intern_eonothem

    @old_intern_eonothem.setter
    def old_intern_eonothem(self, old_intern_eonothem):
        """
        Sets the old_intern_eonothem of this ChronoStratigraphy.

        :param old_intern_eonothem: The old_intern_eonothem of this ChronoStratigraphy.
        :type: str
        """

        self._old_intern_eonothem = old_intern_eonothem

    @property
    def old_chrono_name(self):
        """
        Gets the old_chrono_name of this ChronoStratigraphy.

        :return: The old_chrono_name of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_chrono_name

    @old_chrono_name.setter
    def old_chrono_name(self, old_chrono_name):
        """
        Sets the old_chrono_name of this ChronoStratigraphy.

        :param old_chrono_name: The old_chrono_name of this ChronoStratigraphy.
        :type: str
        """

        self._old_chrono_name = old_chrono_name

    @property
    def chrono_identifier(self):
        """
        Gets the chrono_identifier of this ChronoStratigraphy.

        :return: The chrono_identifier of this ChronoStratigraphy.
        :rtype: str
        """
        return self._chrono_identifier

    @chrono_identifier.setter
    def chrono_identifier(self, chrono_identifier):
        """
        Sets the chrono_identifier of this ChronoStratigraphy.

        :param chrono_identifier: The chrono_identifier of this ChronoStratigraphy.
        :type: str
        """

        self._chrono_identifier = chrono_identifier

    @property
    def old_certainty(self):
        """
        Gets the old_certainty of this ChronoStratigraphy.

        :return: The old_certainty of this ChronoStratigraphy.
        :rtype: str
        """
        return self._old_certainty

    @old_certainty.setter
    def old_certainty(self, old_certainty):
        """
        Sets the old_certainty of this ChronoStratigraphy.

        :param old_certainty: The old_certainty of this ChronoStratigraphy.
        :type: str
        """

        self._old_certainty = old_certainty

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

        for attr, _ in 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

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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, ChronoStratigraphy):
            return False

        return self.__dict__ == other.__dict__

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