# coding: utf-8

"""
    RegObs API

      ## Introduction    RegObs is a tool for collecting observations and events   related to natural hazards. It is currently used by the   Norwegian flood, landslide and avalanche warning service in   Norway, but the data is openly available for anyone through this API.    Regobs has been developed by the Norwegian Water resources and   Energy Directorate (NVE), in collaboration with the Norwegian   Meteorological Institute (MET) and the Norwegian Public Roads   Administration (NPRA).    You can check out our representation of the data at [regobs.no](http://regobs.no).    ## Authentication    Some endpoints require an api key.  You can get an API key by sending an email to   [raek@nve.no](mailto:raek@nve.no?subject=RegObs%20API%20Key).  To use the api key with the swagger ui, fill in the api\\_key input above.   It should then be included with every request in the   `regObs_apptoken` header.    ## Getting started    Get the last 10 observations using python:    ```python  import requests  r = requests.post('https://api.regobs.no/v4/Search',       data={'NumberOfRecords': 10},      headers={'Content-Type': 'application/json'}  )  data = r.json()  print(len(data))  # 10  ```      # noqa: E501

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

import pprint
import re  # noqa: F401

import six


class LandSlideObsDto(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 = {
        'start_lat': 'float',
        'start_long': 'float',
        'stop_lat': 'float',
        'stop_long': 'float',
        'dt_land_slide_time': 'datetime',
        'dt_land_slide_time_end': 'datetime',
        'utm_north_start': 'int',
        'utm_east_start': 'int',
        'utm_zone_start': 'int',
        'utm_north_stop': 'int',
        'utm_east_stop': 'int',
        'utm_zone_stop': 'int',
        'land_slide_tid': 'int',
        'land_slide_trigger_tid': 'int',
        'land_slide_size_tid': 'int',
        'usage_flag_tid': 'int',
        'geo_hazard_tid': 'int',
        'activity_influenced_tid': 'int',
        'forecast_accurate_tid': 'int',
        'damage_extent_tid': 'int',
        'comment': 'str',
        'urls': 'list[UrlViewModel]'
    }

    attribute_map = {
        'start_lat': 'StartLat',
        'start_long': 'StartLong',
        'stop_lat': 'StopLat',
        'stop_long': 'StopLong',
        'dt_land_slide_time': 'DtLandSlideTime',
        'dt_land_slide_time_end': 'DtLandSlideTimeEnd',
        'utm_north_start': 'UTMNorthStart',
        'utm_east_start': 'UTMEastStart',
        'utm_zone_start': 'UTMZoneStart',
        'utm_north_stop': 'UTMNorthStop',
        'utm_east_stop': 'UTMEastStop',
        'utm_zone_stop': 'UTMZoneStop',
        'land_slide_tid': 'LandSlideTID',
        'land_slide_trigger_tid': 'LandSlideTriggerTID',
        'land_slide_size_tid': 'LandSlideSizeTID',
        'usage_flag_tid': 'UsageFlagTID',
        'geo_hazard_tid': 'GeoHazardTID',
        'activity_influenced_tid': 'ActivityInfluencedTID',
        'forecast_accurate_tid': 'ForecastAccurateTID',
        'damage_extent_tid': 'DamageExtentTID',
        'comment': 'Comment',
        'urls': 'Urls'
    }

    def __init__(self, start_lat=None, start_long=None, stop_lat=None, stop_long=None, dt_land_slide_time=None, dt_land_slide_time_end=None, utm_north_start=None, utm_east_start=None, utm_zone_start=None, utm_north_stop=None, utm_east_stop=None, utm_zone_stop=None, land_slide_tid=None, land_slide_trigger_tid=None, land_slide_size_tid=None, usage_flag_tid=None, geo_hazard_tid=None, activity_influenced_tid=None, forecast_accurate_tid=None, damage_extent_tid=None, comment=None, urls=None):  # noqa: E501
        """LandSlideObsDto - a model defined in Swagger"""  # noqa: E501
        self._start_lat = None
        self._start_long = None
        self._stop_lat = None
        self._stop_long = None
        self._dt_land_slide_time = None
        self._dt_land_slide_time_end = None
        self._utm_north_start = None
        self._utm_east_start = None
        self._utm_zone_start = None
        self._utm_north_stop = None
        self._utm_east_stop = None
        self._utm_zone_stop = None
        self._land_slide_tid = None
        self._land_slide_trigger_tid = None
        self._land_slide_size_tid = None
        self._usage_flag_tid = None
        self._geo_hazard_tid = None
        self._activity_influenced_tid = None
        self._forecast_accurate_tid = None
        self._damage_extent_tid = None
        self._comment = None
        self._urls = None
        self.discriminator = None
        if start_lat is not None:
            self.start_lat = start_lat
        if start_long is not None:
            self.start_long = start_long
        if stop_lat is not None:
            self.stop_lat = stop_lat
        if stop_long is not None:
            self.stop_long = stop_long
        self.dt_land_slide_time = dt_land_slide_time
        if dt_land_slide_time_end is not None:
            self.dt_land_slide_time_end = dt_land_slide_time_end
        if utm_north_start is not None:
            self.utm_north_start = utm_north_start
        if utm_east_start is not None:
            self.utm_east_start = utm_east_start
        if utm_zone_start is not None:
            self.utm_zone_start = utm_zone_start
        if utm_north_stop is not None:
            self.utm_north_stop = utm_north_stop
        if utm_east_stop is not None:
            self.utm_east_stop = utm_east_stop
        if utm_zone_stop is not None:
            self.utm_zone_stop = utm_zone_stop
        if land_slide_tid is not None:
            self.land_slide_tid = land_slide_tid
        if land_slide_trigger_tid is not None:
            self.land_slide_trigger_tid = land_slide_trigger_tid
        if land_slide_size_tid is not None:
            self.land_slide_size_tid = land_slide_size_tid
        if usage_flag_tid is not None:
            self.usage_flag_tid = usage_flag_tid
        if geo_hazard_tid is not None:
            self.geo_hazard_tid = geo_hazard_tid
        if activity_influenced_tid is not None:
            self.activity_influenced_tid = activity_influenced_tid
        if forecast_accurate_tid is not None:
            self.forecast_accurate_tid = forecast_accurate_tid
        if damage_extent_tid is not None:
            self.damage_extent_tid = damage_extent_tid
        if comment is not None:
            self.comment = comment
        if urls is not None:
            self.urls = urls

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

        Latitude start posisjon  # noqa: E501

        :return: The start_lat of this LandSlideObsDto.  # noqa: E501
        :rtype: float
        """
        return self._start_lat

    @start_lat.setter
    def start_lat(self, start_lat):
        """Sets the start_lat of this LandSlideObsDto.

        Latitude start posisjon  # noqa: E501

        :param start_lat: The start_lat of this LandSlideObsDto.  # noqa: E501
        :type: float
        """

        self._start_lat = start_lat

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

        Long start posisjon  # noqa: E501

        :return: The start_long of this LandSlideObsDto.  # noqa: E501
        :rtype: float
        """
        return self._start_long

    @start_long.setter
    def start_long(self, start_long):
        """Sets the start_long of this LandSlideObsDto.

        Long start posisjon  # noqa: E501

        :param start_long: The start_long of this LandSlideObsDto.  # noqa: E501
        :type: float
        """

        self._start_long = start_long

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

        Latitude stopp posisjon  # noqa: E501

        :return: The stop_lat of this LandSlideObsDto.  # noqa: E501
        :rtype: float
        """
        return self._stop_lat

    @stop_lat.setter
    def stop_lat(self, stop_lat):
        """Sets the stop_lat of this LandSlideObsDto.

        Latitude stopp posisjon  # noqa: E501

        :param stop_lat: The stop_lat of this LandSlideObsDto.  # noqa: E501
        :type: float
        """

        self._stop_lat = stop_lat

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

        Long stopp posisjon  # noqa: E501

        :return: The stop_long of this LandSlideObsDto.  # noqa: E501
        :rtype: float
        """
        return self._stop_long

    @stop_long.setter
    def stop_long(self, stop_long):
        """Sets the stop_long of this LandSlideObsDto.

        Long stopp posisjon  # noqa: E501

        :param stop_long: The stop_long of this LandSlideObsDto.  # noqa: E501
        :type: float
        """

        self._stop_long = stop_long

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

        Når gikk skredet? Dette er ikke det samme tidspunktet da skredet ble observert.  # noqa: E501

        :return: The dt_land_slide_time of this LandSlideObsDto.  # noqa: E501
        :rtype: datetime
        """
        return self._dt_land_slide_time

    @dt_land_slide_time.setter
    def dt_land_slide_time(self, dt_land_slide_time):
        """Sets the dt_land_slide_time of this LandSlideObsDto.

        Når gikk skredet? Dette er ikke det samme tidspunktet da skredet ble observert.  # noqa: E501

        :param dt_land_slide_time: The dt_land_slide_time of this LandSlideObsDto.  # noqa: E501
        :type: datetime
        """
        if dt_land_slide_time is None:
            raise ValueError("Invalid value for `dt_land_slide_time`, must not be `None`")  # noqa: E501

        self._dt_land_slide_time = dt_land_slide_time

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

        Når stoppet skredet?  # noqa: E501

        :return: The dt_land_slide_time_end of this LandSlideObsDto.  # noqa: E501
        :rtype: datetime
        """
        return self._dt_land_slide_time_end

    @dt_land_slide_time_end.setter
    def dt_land_slide_time_end(self, dt_land_slide_time_end):
        """Sets the dt_land_slide_time_end of this LandSlideObsDto.

        Når stoppet skredet?  # noqa: E501

        :param dt_land_slide_time_end: The dt_land_slide_time_end of this LandSlideObsDto.  # noqa: E501
        :type: datetime
        """

        self._dt_land_slide_time_end = dt_land_slide_time_end

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

        Hvor startet skredet? Nordlig UTM sone uten desimaler.  # noqa: E501

        :return: The utm_north_start of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._utm_north_start

    @utm_north_start.setter
    def utm_north_start(self, utm_north_start):
        """Sets the utm_north_start of this LandSlideObsDto.

        Hvor startet skredet? Nordlig UTM sone uten desimaler.  # noqa: E501

        :param utm_north_start: The utm_north_start of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._utm_north_start = utm_north_start

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

        Hvor startet skredet? Østlig UTM sone uten desimaler.  # noqa: E501

        :return: The utm_east_start of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._utm_east_start

    @utm_east_start.setter
    def utm_east_start(self, utm_east_start):
        """Sets the utm_east_start of this LandSlideObsDto.

        Hvor startet skredet? Østlig UTM sone uten desimaler.  # noqa: E501

        :param utm_east_start: The utm_east_start of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._utm_east_start = utm_east_start

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

        Hvor startet skredet? UTM sone. Merk at kartene i norge ligger mellom UTM32 og 34.  # noqa: E501

        :return: The utm_zone_start of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._utm_zone_start

    @utm_zone_start.setter
    def utm_zone_start(self, utm_zone_start):
        """Sets the utm_zone_start of this LandSlideObsDto.

        Hvor startet skredet? UTM sone. Merk at kartene i norge ligger mellom UTM32 og 34.  # noqa: E501

        :param utm_zone_start: The utm_zone_start of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._utm_zone_start = utm_zone_start

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

        Hvor stoppet skredet? Nordlig UTM sone uten desimaler.  # noqa: E501

        :return: The utm_north_stop of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._utm_north_stop

    @utm_north_stop.setter
    def utm_north_stop(self, utm_north_stop):
        """Sets the utm_north_stop of this LandSlideObsDto.

        Hvor stoppet skredet? Nordlig UTM sone uten desimaler.  # noqa: E501

        :param utm_north_stop: The utm_north_stop of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._utm_north_stop = utm_north_stop

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

        Hvor stoppet skredet? Østlig UTM sone uten desimaler.  # noqa: E501

        :return: The utm_east_stop of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._utm_east_stop

    @utm_east_stop.setter
    def utm_east_stop(self, utm_east_stop):
        """Sets the utm_east_stop of this LandSlideObsDto.

        Hvor stoppet skredet? Østlig UTM sone uten desimaler.  # noqa: E501

        :param utm_east_stop: The utm_east_stop of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._utm_east_stop = utm_east_stop

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

        Hvor stoppet skredet? UTM sone. Merk at kartene i norge ligger mellom UTM32 og 34.  # noqa: E501

        :return: The utm_zone_stop of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._utm_zone_stop

    @utm_zone_stop.setter
    def utm_zone_stop(self, utm_zone_stop):
        """Sets the utm_zone_stop of this LandSlideObsDto.

        Hvor stoppet skredet? UTM sone. Merk at kartene i norge ligger mellom UTM32 og 34.  # noqa: E501

        :param utm_zone_stop: The utm_zone_stop of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._utm_zone_stop = utm_zone_stop

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

        Hva slags type skred er det snakk om? Valg gitt i LandSlideKD. The LandSlideKD unique identifier  # noqa: E501

        :return: The land_slide_tid of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._land_slide_tid

    @land_slide_tid.setter
    def land_slide_tid(self, land_slide_tid):
        """Sets the land_slide_tid of this LandSlideObsDto.

        Hva slags type skred er det snakk om? Valg gitt i LandSlideKD. The LandSlideKD unique identifier  # noqa: E501

        :param land_slide_tid: The land_slide_tid of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._land_slide_tid = land_slide_tid

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

        Hva utløste skredet? The LandSlideTriggerKD unique identifier  # noqa: E501

        :return: The land_slide_trigger_tid of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._land_slide_trigger_tid

    @land_slide_trigger_tid.setter
    def land_slide_trigger_tid(self, land_slide_trigger_tid):
        """Sets the land_slide_trigger_tid of this LandSlideObsDto.

        Hva utløste skredet? The LandSlideTriggerKD unique identifier  # noqa: E501

        :param land_slide_trigger_tid: The land_slide_trigger_tid of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._land_slide_trigger_tid = land_slide_trigger_tid

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

        Hvor stort er skredet? The LandSlideSizeKD unique identifier  # noqa: E501

        :return: The land_slide_size_tid of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._land_slide_size_tid

    @land_slide_size_tid.setter
    def land_slide_size_tid(self, land_slide_size_tid):
        """Sets the land_slide_size_tid of this LandSlideObsDto.

        Hvor stort er skredet? The LandSlideSizeKD unique identifier  # noqa: E501

        :param land_slide_size_tid: The land_slide_size_tid of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._land_slide_size_tid = land_slide_size_tid

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

        Bruksflagg er ikke implementert enda. Hensikten er å kunne flagge en observasjon som godkjent, underkjent, overført historisk database mm. The UsageFlagKD unique identifier  # noqa: E501

        :return: The usage_flag_tid of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._usage_flag_tid

    @usage_flag_tid.setter
    def usage_flag_tid(self, usage_flag_tid):
        """Sets the usage_flag_tid of this LandSlideObsDto.

        Bruksflagg er ikke implementert enda. Hensikten er å kunne flagge en observasjon som godkjent, underkjent, overført historisk database mm. The UsageFlagKD unique identifier  # noqa: E501

        :param usage_flag_tid: The usage_flag_tid of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._usage_flag_tid = usage_flag_tid

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

        Spesifiser skredtype. vått jordskred?, jordskred eller steinskred? GeoHazardTID = 20, 30 og 40 er aktuelle. The GeoHazardKD unique identifier  # noqa: E501

        :return: The geo_hazard_tid of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._geo_hazard_tid

    @geo_hazard_tid.setter
    def geo_hazard_tid(self, geo_hazard_tid):
        """Sets the geo_hazard_tid of this LandSlideObsDto.

        Spesifiser skredtype. vått jordskred?, jordskred eller steinskred? GeoHazardTID = 20, 30 og 40 er aktuelle. The GeoHazardKD unique identifier  # noqa: E501

        :param geo_hazard_tid: The geo_hazard_tid of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._geo_hazard_tid = geo_hazard_tid

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

        Hva ble påvirket av hendelsen. Valgene er gitt i ActivityInfluencedKD. The ActivityInfluencedKD unique identifier  # noqa: E501

        :return: The activity_influenced_tid of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._activity_influenced_tid

    @activity_influenced_tid.setter
    def activity_influenced_tid(self, activity_influenced_tid):
        """Sets the activity_influenced_tid of this LandSlideObsDto.

        Hva ble påvirket av hendelsen. Valgene er gitt i ActivityInfluencedKD. The ActivityInfluencedKD unique identifier  # noqa: E501

        :param activity_influenced_tid: The activity_influenced_tid of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._activity_influenced_tid = activity_influenced_tid

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

        Var det et varsel utstedt og stemte det? The ForecastAccurateKD unique identifier  # noqa: E501

        :return: The forecast_accurate_tid of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._forecast_accurate_tid

    @forecast_accurate_tid.setter
    def forecast_accurate_tid(self, forecast_accurate_tid):
        """Sets the forecast_accurate_tid of this LandSlideObsDto.

        Var det et varsel utstedt og stemte det? The ForecastAccurateKD unique identifier  # noqa: E501

        :param forecast_accurate_tid: The forecast_accurate_tid of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._forecast_accurate_tid = forecast_accurate_tid

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

        Skadeomfang. Hva var konsekvensen av hendelsen. Valgene gitt i DamageExtentKD. The DamageExtentKD unique identifier  # noqa: E501

        :return: The damage_extent_tid of this LandSlideObsDto.  # noqa: E501
        :rtype: int
        """
        return self._damage_extent_tid

    @damage_extent_tid.setter
    def damage_extent_tid(self, damage_extent_tid):
        """Sets the damage_extent_tid of this LandSlideObsDto.

        Skadeomfang. Hva var konsekvensen av hendelsen. Valgene gitt i DamageExtentKD. The DamageExtentKD unique identifier  # noqa: E501

        :param damage_extent_tid: The damage_extent_tid of this LandSlideObsDto.  # noqa: E501
        :type: int
        """

        self._damage_extent_tid = damage_extent_tid

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

        Kommentarfelt for å skrive utfyllende tekst om observasjonen.  # noqa: E501

        :return: The comment of this LandSlideObsDto.  # noqa: E501
        :rtype: str
        """
        return self._comment

    @comment.setter
    def comment(self, comment):
        """Sets the comment of this LandSlideObsDto.

        Kommentarfelt for å skrive utfyllende tekst om observasjonen.  # noqa: E501

        :param comment: The comment of this LandSlideObsDto.  # noqa: E501
        :type: str
        """

        self._comment = comment

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


        :return: The urls of this LandSlideObsDto.  # noqa: E501
        :rtype: list[UrlViewModel]
        """
        return self._urls

    @urls.setter
    def urls(self, urls):
        """Sets the urls of this LandSlideObsDto.


        :param urls: The urls of this LandSlideObsDto.  # noqa: E501
        :type: list[UrlViewModel]
        """

        self._urls = urls

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

        return self.__dict__ == other.__dict__

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