# coding: utf-8

"""
    Trip Planner

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

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


import pprint
import re  # noqa: F401

import six


class CoordRequestResponseLocationProperties(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 = {
        'distance': 'str',
        'poi_draw_class_type': 'str',
        'poi_draw_class': 'str',
        'poi_hierarchy_key': 'str',
        'poi_hierarchy_0': 'str',
        'gis_draw_class_type': 'str',
        'gis_draw_class': 'str',
        'gis_niveau': 'str'
    }

    attribute_map = {
        'distance': 'distance',
        'poi_draw_class_type': 'POI_DRAW_CLASS_TYPE',
        'poi_draw_class': 'POI_DRAW_CLASS',
        'poi_hierarchy_key': 'POI_HIERARCHY_KEY',
        'poi_hierarchy_0': 'POI_HIERARCHY_0',
        'gis_draw_class_type': 'GIS_DRAW_CLASS_TYPE',
        'gis_draw_class': 'GIS_DRAW_CLASS',
        'gis_niveau': 'GIS_NIVEAU'
    }

    def __init__(self, distance=None, poi_draw_class_type=None, poi_draw_class=None, poi_hierarchy_key=None, poi_hierarchy_0=None, gis_draw_class_type=None, gis_draw_class=None, gis_niveau=None):  # noqa: E501
        """CoordRequestResponseLocationProperties - a model defined in Swagger"""  # noqa: E501

        self._distance = None
        self._poi_draw_class_type = None
        self._poi_draw_class = None
        self._poi_hierarchy_key = None
        self._poi_hierarchy_0 = None
        self._gis_draw_class_type = None
        self._gis_draw_class = None
        self._gis_niveau = None
        self.discriminator = None

        if distance is not None:
            self.distance = distance
        if poi_draw_class_type is not None:
            self.poi_draw_class_type = poi_draw_class_type
        if poi_draw_class is not None:
            self.poi_draw_class = poi_draw_class
        if poi_hierarchy_key is not None:
            self.poi_hierarchy_key = poi_hierarchy_key
        if poi_hierarchy_0 is not None:
            self.poi_hierarchy_0 = poi_hierarchy_0
        if gis_draw_class_type is not None:
            self.gis_draw_class_type = gis_draw_class_type
        if gis_draw_class is not None:
            self.gis_draw_class = gis_draw_class
        if gis_niveau is not None:
            self.gis_niveau = gis_niveau

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

        This is the distance in metres to this location from the search location.  # noqa: E501

        :return: The distance of this CoordRequestResponseLocationProperties.  # noqa: E501
        :rtype: str
        """
        return self._distance

    @distance.setter
    def distance(self, distance):
        """Sets the distance of this CoordRequestResponseLocationProperties.

        This is the distance in metres to this location from the search location.  # noqa: E501

        :param distance: The distance of this CoordRequestResponseLocationProperties.  # noqa: E501
        :type: str
        """

        self._distance = distance

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

        This value typically either empty or `POINT`.  # noqa: E501

        :return: The poi_draw_class_type of this CoordRequestResponseLocationProperties.  # noqa: E501
        :rtype: str
        """
        return self._poi_draw_class_type

    @poi_draw_class_type.setter
    def poi_draw_class_type(self, poi_draw_class_type):
        """Sets the poi_draw_class_type of this CoordRequestResponseLocationProperties.

        This value typically either empty or `POINT`.  # noqa: E501

        :param poi_draw_class_type: The poi_draw_class_type of this CoordRequestResponseLocationProperties.  # noqa: E501
        :type: str
        """
        allowed_values = ["POINT"]  # noqa: E501
        if poi_draw_class_type not in allowed_values:
            raise ValueError(
                "Invalid value for `poi_draw_class_type` ({0}), must be one of {1}"  # noqa: E501
                .format(poi_draw_class_type, allowed_values)
            )

        self._poi_draw_class_type = poi_draw_class_type

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

        This value indicates how the given point can be represented on a map. For example, if you have different icons for different categories, use this to determine which icon to use.  * `PoiCemetry` * `PoiCulture` * `PoiGastro` * `PoiGeneral` * `PoiGovernment` * `PoiHotel` * `PoiMedicine` * `PoiOthers` * `PoiPark` * `PoiParking` * `PoiPublicBuilding` * `PoiReligion` * `PoiSchool` * `PoiSport` * `PoiSwimming` * `PoiTrafficSpecial`   # noqa: E501

        :return: The poi_draw_class of this CoordRequestResponseLocationProperties.  # noqa: E501
        :rtype: str
        """
        return self._poi_draw_class

    @poi_draw_class.setter
    def poi_draw_class(self, poi_draw_class):
        """Sets the poi_draw_class of this CoordRequestResponseLocationProperties.

        This value indicates how the given point can be represented on a map. For example, if you have different icons for different categories, use this to determine which icon to use.  * `PoiCemetry` * `PoiCulture` * `PoiGastro` * `PoiGeneral` * `PoiGovernment` * `PoiHotel` * `PoiMedicine` * `PoiOthers` * `PoiPark` * `PoiParking` * `PoiPublicBuilding` * `PoiReligion` * `PoiSchool` * `PoiSport` * `PoiSwimming` * `PoiTrafficSpecial`   # noqa: E501

        :param poi_draw_class: The poi_draw_class of this CoordRequestResponseLocationProperties.  # noqa: E501
        :type: str
        """

        self._poi_draw_class = poi_draw_class

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

        This field contains a constant value for the category to which this category belongs.  * `A`: Accommodation * `B`: Caravan and Camping * `C`: Cemetary * `D`: Education * `E`: Emergency or Defence * `F`: Entertainment * `G`: Gardens or Parklands * `H`: Golf Clubs  * `I`: Historical or Religious * `K`: Local Government * `L`: Medical and Care * `O`: Sporting or Recreation * `Q`: Tourist Attraction * `R`: Transport * `S`: Utilities and Facilities * `T`: Others   # noqa: E501

        :return: The poi_hierarchy_key of this CoordRequestResponseLocationProperties.  # noqa: E501
        :rtype: str
        """
        return self._poi_hierarchy_key

    @poi_hierarchy_key.setter
    def poi_hierarchy_key(self, poi_hierarchy_key):
        """Sets the poi_hierarchy_key of this CoordRequestResponseLocationProperties.

        This field contains a constant value for the category to which this category belongs.  * `A`: Accommodation * `B`: Caravan and Camping * `C`: Cemetary * `D`: Education * `E`: Emergency or Defence * `F`: Entertainment * `G`: Gardens or Parklands * `H`: Golf Clubs  * `I`: Historical or Religious * `K`: Local Government * `L`: Medical and Care * `O`: Sporting or Recreation * `Q`: Tourist Attraction * `R`: Transport * `S`: Utilities and Facilities * `T`: Others   # noqa: E501

        :param poi_hierarchy_key: The poi_hierarchy_key of this CoordRequestResponseLocationProperties.  # noqa: E501
        :type: str
        """

        self._poi_hierarchy_key = poi_hierarchy_key

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

        This field contains a human-readable description of the category to which this location belongs. See the description for `POI_HIERARCHY_KEY` for example values that correspond to the given keys.   # noqa: E501

        :return: The poi_hierarchy_0 of this CoordRequestResponseLocationProperties.  # noqa: E501
        :rtype: str
        """
        return self._poi_hierarchy_0

    @poi_hierarchy_0.setter
    def poi_hierarchy_0(self, poi_hierarchy_0):
        """Sets the poi_hierarchy_0 of this CoordRequestResponseLocationProperties.

        This field contains a human-readable description of the category to which this location belongs. See the description for `POI_HIERARCHY_KEY` for example values that correspond to the given keys.   # noqa: E501

        :param poi_hierarchy_0: The poi_hierarchy_0 of this CoordRequestResponseLocationProperties.  # noqa: E501
        :type: str
        """

        self._poi_hierarchy_0 = poi_hierarchy_0

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

        This value typically either empty or `POINT`.  # noqa: E501

        :return: The gis_draw_class_type of this CoordRequestResponseLocationProperties.  # noqa: E501
        :rtype: str
        """
        return self._gis_draw_class_type

    @gis_draw_class_type.setter
    def gis_draw_class_type(self, gis_draw_class_type):
        """Sets the gis_draw_class_type of this CoordRequestResponseLocationProperties.

        This value typically either empty or `POINT`.  # noqa: E501

        :param gis_draw_class_type: The gis_draw_class_type of this CoordRequestResponseLocationProperties.  # noqa: E501
        :type: str
        """
        allowed_values = ["POINT"]  # noqa: E501
        if gis_draw_class_type not in allowed_values:
            raise ValueError(
                "Invalid value for `gis_draw_class_type` ({0}), must be one of {1}"  # noqa: E501
                .format(gis_draw_class_type, allowed_values)
            )

        self._gis_draw_class_type = gis_draw_class_type

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

        This value indicates how the given point can be represented on a map. For example, if you have different icons for different categories, use this to determine which icon to use.  * `CityL` * `CityM` * `CityS` * `CityXL` * `CityXS` * `Generic7` * `Generic8` * `Generic9` * `Generic20` * `PoiAirportPublic` * `PoiCemetry` * `PoiCulture` * `PoiGastro` * `PoiGeneral` * `PoiGovernment` * `PoiHistoric` * `PoiHotel` * `PoiMedicine` * `PoiOthers` * `PoiPark` * `PoiParking` * `PoiPublicBuilding` * `PoiReligion` * `PoiSchool` * `PoiSport` * `PoiSwimming` * `PoiTrafficSpecial`   # noqa: E501

        :return: The gis_draw_class of this CoordRequestResponseLocationProperties.  # noqa: E501
        :rtype: str
        """
        return self._gis_draw_class

    @gis_draw_class.setter
    def gis_draw_class(self, gis_draw_class):
        """Sets the gis_draw_class of this CoordRequestResponseLocationProperties.

        This value indicates how the given point can be represented on a map. For example, if you have different icons for different categories, use this to determine which icon to use.  * `CityL` * `CityM` * `CityS` * `CityXL` * `CityXS` * `Generic7` * `Generic8` * `Generic9` * `Generic20` * `PoiAirportPublic` * `PoiCemetry` * `PoiCulture` * `PoiGastro` * `PoiGeneral` * `PoiGovernment` * `PoiHistoric` * `PoiHotel` * `PoiMedicine` * `PoiOthers` * `PoiPark` * `PoiParking` * `PoiPublicBuilding` * `PoiReligion` * `PoiSchool` * `PoiSport` * `PoiSwimming` * `PoiTrafficSpecial`   # noqa: E501

        :param gis_draw_class: The gis_draw_class of this CoordRequestResponseLocationProperties.  # noqa: E501
        :type: str
        """

        self._gis_draw_class = gis_draw_class

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

        This data is not used at this time.  # noqa: E501

        :return: The gis_niveau of this CoordRequestResponseLocationProperties.  # noqa: E501
        :rtype: str
        """
        return self._gis_niveau

    @gis_niveau.setter
    def gis_niveau(self, gis_niveau):
        """Sets the gis_niveau of this CoordRequestResponseLocationProperties.

        This data is not used at this time.  # noqa: E501

        :param gis_niveau: The gis_niveau of this CoordRequestResponseLocationProperties.  # noqa: E501
        :type: str
        """

        self._gis_niveau = gis_niveau

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

        return self.__dict__ == other.__dict__

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