# 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 LithoStratigraphy(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 = {
        'qualifier': 'str',
        'preferred_flag': 'bool',
        'member2': 'str',
        'member': 'str',
        'informal_name2': 'str',
        'informal_name': 'str',
        'imported_name2': 'str',
        'imported_name1': 'str',
        'litho_identifier': 'str',
        'formation2': 'str',
        'formation_group2': 'str',
        'formation_group': 'str',
        'formation': 'str',
        'certainty2': 'str',
        'certainty': 'str',
        'bed2': 'str',
        'bed': 'str'
    }

    attribute_map = {
        'qualifier': 'qualifier',
        'preferred_flag': 'preferredFlag',
        'member2': 'member2',
        'member': 'member',
        'informal_name2': 'informalName2',
        'informal_name': 'informalName',
        'imported_name2': 'importedName2',
        'imported_name1': 'importedName1',
        'litho_identifier': 'lithoIdentifier',
        'formation2': 'formation2',
        'formation_group2': 'formationGroup2',
        'formation_group': 'formationGroup',
        'formation': 'formation',
        'certainty2': 'certainty2',
        'certainty': 'certainty',
        'bed2': 'bed2',
        'bed': 'bed'
    }

    def __init__(self, qualifier=None, preferred_flag=None, member2=None, member=None, informal_name2=None, informal_name=None, imported_name2=None, imported_name1=None, litho_identifier=None, formation2=None, formation_group2=None, formation_group=None, formation=None, certainty2=None, certainty=None, bed2=None, bed=None):
        """
        LithoStratigraphy - a model defined in Swagger
        """

        self._qualifier = None
        self._preferred_flag = None
        self._member2 = None
        self._member = None
        self._informal_name2 = None
        self._informal_name = None
        self._imported_name2 = None
        self._imported_name1 = None
        self._litho_identifier = None
        self._formation2 = None
        self._formation_group2 = None
        self._formation_group = None
        self._formation = None
        self._certainty2 = None
        self._certainty = None
        self._bed2 = None
        self._bed = None
        self.discriminator = None

        if qualifier is not None:
          self.qualifier = qualifier
        if preferred_flag is not None:
          self.preferred_flag = preferred_flag
        if member2 is not None:
          self.member2 = member2
        if member is not None:
          self.member = member
        if informal_name2 is not None:
          self.informal_name2 = informal_name2
        if informal_name is not None:
          self.informal_name = informal_name
        if imported_name2 is not None:
          self.imported_name2 = imported_name2
        if imported_name1 is not None:
          self.imported_name1 = imported_name1
        if litho_identifier is not None:
          self.litho_identifier = litho_identifier
        if formation2 is not None:
          self.formation2 = formation2
        if formation_group2 is not None:
          self.formation_group2 = formation_group2
        if formation_group is not None:
          self.formation_group = formation_group
        if formation is not None:
          self.formation = formation
        if certainty2 is not None:
          self.certainty2 = certainty2
        if certainty is not None:
          self.certainty = certainty
        if bed2 is not None:
          self.bed2 = bed2
        if bed is not None:
          self.bed = bed

    @property
    def qualifier(self):
        """
        Gets the qualifier of this LithoStratigraphy.

        :return: The qualifier of this LithoStratigraphy.
        :rtype: str
        """
        return self._qualifier

    @qualifier.setter
    def qualifier(self, qualifier):
        """
        Sets the qualifier of this LithoStratigraphy.

        :param qualifier: The qualifier of this LithoStratigraphy.
        :type: str
        """

        self._qualifier = qualifier

    @property
    def preferred_flag(self):
        """
        Gets the preferred_flag of this LithoStratigraphy.

        :return: The preferred_flag of this LithoStratigraphy.
        :rtype: bool
        """
        return self._preferred_flag

    @preferred_flag.setter
    def preferred_flag(self, preferred_flag):
        """
        Sets the preferred_flag of this LithoStratigraphy.

        :param preferred_flag: The preferred_flag of this LithoStratigraphy.
        :type: bool
        """

        self._preferred_flag = preferred_flag

    @property
    def member2(self):
        """
        Gets the member2 of this LithoStratigraphy.

        :return: The member2 of this LithoStratigraphy.
        :rtype: str
        """
        return self._member2

    @member2.setter
    def member2(self, member2):
        """
        Sets the member2 of this LithoStratigraphy.

        :param member2: The member2 of this LithoStratigraphy.
        :type: str
        """

        self._member2 = member2

    @property
    def member(self):
        """
        Gets the member of this LithoStratigraphy.

        :return: The member of this LithoStratigraphy.
        :rtype: str
        """
        return self._member

    @member.setter
    def member(self, member):
        """
        Sets the member of this LithoStratigraphy.

        :param member: The member of this LithoStratigraphy.
        :type: str
        """

        self._member = member

    @property
    def informal_name2(self):
        """
        Gets the informal_name2 of this LithoStratigraphy.

        :return: The informal_name2 of this LithoStratigraphy.
        :rtype: str
        """
        return self._informal_name2

    @informal_name2.setter
    def informal_name2(self, informal_name2):
        """
        Sets the informal_name2 of this LithoStratigraphy.

        :param informal_name2: The informal_name2 of this LithoStratigraphy.
        :type: str
        """

        self._informal_name2 = informal_name2

    @property
    def informal_name(self):
        """
        Gets the informal_name of this LithoStratigraphy.

        :return: The informal_name of this LithoStratigraphy.
        :rtype: str
        """
        return self._informal_name

    @informal_name.setter
    def informal_name(self, informal_name):
        """
        Sets the informal_name of this LithoStratigraphy.

        :param informal_name: The informal_name of this LithoStratigraphy.
        :type: str
        """

        self._informal_name = informal_name

    @property
    def imported_name2(self):
        """
        Gets the imported_name2 of this LithoStratigraphy.

        :return: The imported_name2 of this LithoStratigraphy.
        :rtype: str
        """
        return self._imported_name2

    @imported_name2.setter
    def imported_name2(self, imported_name2):
        """
        Sets the imported_name2 of this LithoStratigraphy.

        :param imported_name2: The imported_name2 of this LithoStratigraphy.
        :type: str
        """

        self._imported_name2 = imported_name2

    @property
    def imported_name1(self):
        """
        Gets the imported_name1 of this LithoStratigraphy.

        :return: The imported_name1 of this LithoStratigraphy.
        :rtype: str
        """
        return self._imported_name1

    @imported_name1.setter
    def imported_name1(self, imported_name1):
        """
        Sets the imported_name1 of this LithoStratigraphy.

        :param imported_name1: The imported_name1 of this LithoStratigraphy.
        :type: str
        """

        self._imported_name1 = imported_name1

    @property
    def litho_identifier(self):
        """
        Gets the litho_identifier of this LithoStratigraphy.

        :return: The litho_identifier of this LithoStratigraphy.
        :rtype: str
        """
        return self._litho_identifier

    @litho_identifier.setter
    def litho_identifier(self, litho_identifier):
        """
        Sets the litho_identifier of this LithoStratigraphy.

        :param litho_identifier: The litho_identifier of this LithoStratigraphy.
        :type: str
        """

        self._litho_identifier = litho_identifier

    @property
    def formation2(self):
        """
        Gets the formation2 of this LithoStratigraphy.

        :return: The formation2 of this LithoStratigraphy.
        :rtype: str
        """
        return self._formation2

    @formation2.setter
    def formation2(self, formation2):
        """
        Sets the formation2 of this LithoStratigraphy.

        :param formation2: The formation2 of this LithoStratigraphy.
        :type: str
        """

        self._formation2 = formation2

    @property
    def formation_group2(self):
        """
        Gets the formation_group2 of this LithoStratigraphy.

        :return: The formation_group2 of this LithoStratigraphy.
        :rtype: str
        """
        return self._formation_group2

    @formation_group2.setter
    def formation_group2(self, formation_group2):
        """
        Sets the formation_group2 of this LithoStratigraphy.

        :param formation_group2: The formation_group2 of this LithoStratigraphy.
        :type: str
        """

        self._formation_group2 = formation_group2

    @property
    def formation_group(self):
        """
        Gets the formation_group of this LithoStratigraphy.

        :return: The formation_group of this LithoStratigraphy.
        :rtype: str
        """
        return self._formation_group

    @formation_group.setter
    def formation_group(self, formation_group):
        """
        Sets the formation_group of this LithoStratigraphy.

        :param formation_group: The formation_group of this LithoStratigraphy.
        :type: str
        """

        self._formation_group = formation_group

    @property
    def formation(self):
        """
        Gets the formation of this LithoStratigraphy.

        :return: The formation of this LithoStratigraphy.
        :rtype: str
        """
        return self._formation

    @formation.setter
    def formation(self, formation):
        """
        Sets the formation of this LithoStratigraphy.

        :param formation: The formation of this LithoStratigraphy.
        :type: str
        """

        self._formation = formation

    @property
    def certainty2(self):
        """
        Gets the certainty2 of this LithoStratigraphy.

        :return: The certainty2 of this LithoStratigraphy.
        :rtype: str
        """
        return self._certainty2

    @certainty2.setter
    def certainty2(self, certainty2):
        """
        Sets the certainty2 of this LithoStratigraphy.

        :param certainty2: The certainty2 of this LithoStratigraphy.
        :type: str
        """

        self._certainty2 = certainty2

    @property
    def certainty(self):
        """
        Gets the certainty of this LithoStratigraphy.

        :return: The certainty of this LithoStratigraphy.
        :rtype: str
        """
        return self._certainty

    @certainty.setter
    def certainty(self, certainty):
        """
        Sets the certainty of this LithoStratigraphy.

        :param certainty: The certainty of this LithoStratigraphy.
        :type: str
        """

        self._certainty = certainty

    @property
    def bed2(self):
        """
        Gets the bed2 of this LithoStratigraphy.

        :return: The bed2 of this LithoStratigraphy.
        :rtype: str
        """
        return self._bed2

    @bed2.setter
    def bed2(self, bed2):
        """
        Sets the bed2 of this LithoStratigraphy.

        :param bed2: The bed2 of this LithoStratigraphy.
        :type: str
        """

        self._bed2 = bed2

    @property
    def bed(self):
        """
        Gets the bed of this LithoStratigraphy.

        :return: The bed of this LithoStratigraphy.
        :rtype: str
        """
        return self._bed

    @bed.setter
    def bed(self, bed):
        """
        Sets the bed of this LithoStratigraphy.

        :param bed: The bed of this LithoStratigraphy.
        :type: str
        """

        self._bed = bed

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

        return self.__dict__ == other.__dict__

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