# 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 AvalancheActivityObsViewModel(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 = {
        'avalanche_activity_obs_id': 'int',
        'aspect': 'int',
        'heigth_start_zone': 'int',
        'dt_avalanche_time': 'datetime',
        'destructive_size_tid': 'int',
        'destructive_size_name': 'str',
        'estimated_num_tid': 'int',
        'estimated_num_name': 'str',
        'avalanche_tid': 'int',
        'avalanche_name': 'str',
        'avalanche_trigger_tid': 'int',
        'avalanche_trigger_name': 'str',
        'terrain_start_zone_tid': 'int',
        'terrain_start_zone_name': 'str',
        'snow_line': 'int',
        'snow_line_name': 'str',
        'comment': 'str',
        'dt_off_avalanche_time': 'datetime'
    }

    attribute_map = {
        'avalanche_activity_obs_id': 'AvalancheActivityObsID',
        'aspect': 'Aspect',
        'heigth_start_zone': 'HeigthStartZone',
        'dt_avalanche_time': 'DtAvalancheTime',
        'destructive_size_tid': 'DestructiveSizeTID',
        'destructive_size_name': 'DestructiveSizeName',
        'estimated_num_tid': 'EstimatedNumTID',
        'estimated_num_name': 'EstimatedNumName',
        'avalanche_tid': 'AvalancheTID',
        'avalanche_name': 'AvalancheName',
        'avalanche_trigger_tid': 'AvalancheTriggerTID',
        'avalanche_trigger_name': 'AvalancheTriggerName',
        'terrain_start_zone_tid': 'TerrainStartZoneTID',
        'terrain_start_zone_name': 'TerrainStartZoneName',
        'snow_line': 'SnowLine',
        'snow_line_name': 'SnowLineName',
        'comment': 'Comment',
        'dt_off_avalanche_time': 'DtOffAvalancheTime'
    }

    def __init__(self, avalanche_activity_obs_id=None, aspect=None, heigth_start_zone=None, dt_avalanche_time=None, destructive_size_tid=None, destructive_size_name=None, estimated_num_tid=None, estimated_num_name=None, avalanche_tid=None, avalanche_name=None, avalanche_trigger_tid=None, avalanche_trigger_name=None, terrain_start_zone_tid=None, terrain_start_zone_name=None, snow_line=None, snow_line_name=None, comment=None, dt_off_avalanche_time=None):  # noqa: E501
        """AvalancheActivityObsViewModel - a model defined in Swagger"""  # noqa: E501
        self._avalanche_activity_obs_id = None
        self._aspect = None
        self._heigth_start_zone = None
        self._dt_avalanche_time = None
        self._destructive_size_tid = None
        self._destructive_size_name = None
        self._estimated_num_tid = None
        self._estimated_num_name = None
        self._avalanche_tid = None
        self._avalanche_name = None
        self._avalanche_trigger_tid = None
        self._avalanche_trigger_name = None
        self._terrain_start_zone_tid = None
        self._terrain_start_zone_name = None
        self._snow_line = None
        self._snow_line_name = None
        self._comment = None
        self._dt_off_avalanche_time = None
        self.discriminator = None
        if avalanche_activity_obs_id is not None:
            self.avalanche_activity_obs_id = avalanche_activity_obs_id
        if aspect is not None:
            self.aspect = aspect
        if heigth_start_zone is not None:
            self.heigth_start_zone = heigth_start_zone
        if dt_avalanche_time is not None:
            self.dt_avalanche_time = dt_avalanche_time
        if destructive_size_tid is not None:
            self.destructive_size_tid = destructive_size_tid
        if destructive_size_name is not None:
            self.destructive_size_name = destructive_size_name
        if estimated_num_tid is not None:
            self.estimated_num_tid = estimated_num_tid
        if estimated_num_name is not None:
            self.estimated_num_name = estimated_num_name
        if avalanche_tid is not None:
            self.avalanche_tid = avalanche_tid
        if avalanche_name is not None:
            self.avalanche_name = avalanche_name
        if avalanche_trigger_tid is not None:
            self.avalanche_trigger_tid = avalanche_trigger_tid
        if avalanche_trigger_name is not None:
            self.avalanche_trigger_name = avalanche_trigger_name
        if terrain_start_zone_tid is not None:
            self.terrain_start_zone_tid = terrain_start_zone_tid
        if terrain_start_zone_name is not None:
            self.terrain_start_zone_name = terrain_start_zone_name
        if snow_line is not None:
            self.snow_line = snow_line
        if snow_line_name is not None:
            self.snow_line_name = snow_line_name
        if comment is not None:
            self.comment = comment
        if dt_off_avalanche_time is not None:
            self.dt_off_avalanche_time = dt_off_avalanche_time

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


        :return: The avalanche_activity_obs_id of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: int
        """
        return self._avalanche_activity_obs_id

    @avalanche_activity_obs_id.setter
    def avalanche_activity_obs_id(self, avalanche_activity_obs_id):
        """Sets the avalanche_activity_obs_id of this AvalancheActivityObsViewModel.


        :param avalanche_activity_obs_id: The avalanche_activity_obs_id of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: int
        """

        self._avalanche_activity_obs_id = avalanche_activity_obs_id

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


        :return: The aspect of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: int
        """
        return self._aspect

    @aspect.setter
    def aspect(self, aspect):
        """Sets the aspect of this AvalancheActivityObsViewModel.


        :param aspect: The aspect of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: int
        """

        self._aspect = aspect

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


        :return: The heigth_start_zone of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: int
        """
        return self._heigth_start_zone

    @heigth_start_zone.setter
    def heigth_start_zone(self, heigth_start_zone):
        """Sets the heigth_start_zone of this AvalancheActivityObsViewModel.


        :param heigth_start_zone: The heigth_start_zone of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: int
        """

        self._heigth_start_zone = heigth_start_zone

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


        :return: The dt_avalanche_time of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: datetime
        """
        return self._dt_avalanche_time

    @dt_avalanche_time.setter
    def dt_avalanche_time(self, dt_avalanche_time):
        """Sets the dt_avalanche_time of this AvalancheActivityObsViewModel.


        :param dt_avalanche_time: The dt_avalanche_time of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: datetime
        """

        self._dt_avalanche_time = dt_avalanche_time

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


        :return: The destructive_size_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: int
        """
        return self._destructive_size_tid

    @destructive_size_tid.setter
    def destructive_size_tid(self, destructive_size_tid):
        """Sets the destructive_size_tid of this AvalancheActivityObsViewModel.


        :param destructive_size_tid: The destructive_size_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: int
        """

        self._destructive_size_tid = destructive_size_tid

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


        :return: The destructive_size_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: str
        """
        return self._destructive_size_name

    @destructive_size_name.setter
    def destructive_size_name(self, destructive_size_name):
        """Sets the destructive_size_name of this AvalancheActivityObsViewModel.


        :param destructive_size_name: The destructive_size_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: str
        """

        self._destructive_size_name = destructive_size_name

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


        :return: The estimated_num_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: int
        """
        return self._estimated_num_tid

    @estimated_num_tid.setter
    def estimated_num_tid(self, estimated_num_tid):
        """Sets the estimated_num_tid of this AvalancheActivityObsViewModel.


        :param estimated_num_tid: The estimated_num_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: int
        """

        self._estimated_num_tid = estimated_num_tid

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


        :return: The estimated_num_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: str
        """
        return self._estimated_num_name

    @estimated_num_name.setter
    def estimated_num_name(self, estimated_num_name):
        """Sets the estimated_num_name of this AvalancheActivityObsViewModel.


        :param estimated_num_name: The estimated_num_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: str
        """

        self._estimated_num_name = estimated_num_name

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


        :return: The avalanche_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: int
        """
        return self._avalanche_tid

    @avalanche_tid.setter
    def avalanche_tid(self, avalanche_tid):
        """Sets the avalanche_tid of this AvalancheActivityObsViewModel.


        :param avalanche_tid: The avalanche_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: int
        """

        self._avalanche_tid = avalanche_tid

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


        :return: The avalanche_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: str
        """
        return self._avalanche_name

    @avalanche_name.setter
    def avalanche_name(self, avalanche_name):
        """Sets the avalanche_name of this AvalancheActivityObsViewModel.


        :param avalanche_name: The avalanche_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: str
        """

        self._avalanche_name = avalanche_name

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


        :return: The avalanche_trigger_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: int
        """
        return self._avalanche_trigger_tid

    @avalanche_trigger_tid.setter
    def avalanche_trigger_tid(self, avalanche_trigger_tid):
        """Sets the avalanche_trigger_tid of this AvalancheActivityObsViewModel.


        :param avalanche_trigger_tid: The avalanche_trigger_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: int
        """

        self._avalanche_trigger_tid = avalanche_trigger_tid

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


        :return: The avalanche_trigger_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: str
        """
        return self._avalanche_trigger_name

    @avalanche_trigger_name.setter
    def avalanche_trigger_name(self, avalanche_trigger_name):
        """Sets the avalanche_trigger_name of this AvalancheActivityObsViewModel.


        :param avalanche_trigger_name: The avalanche_trigger_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: str
        """

        self._avalanche_trigger_name = avalanche_trigger_name

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


        :return: The terrain_start_zone_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: int
        """
        return self._terrain_start_zone_tid

    @terrain_start_zone_tid.setter
    def terrain_start_zone_tid(self, terrain_start_zone_tid):
        """Sets the terrain_start_zone_tid of this AvalancheActivityObsViewModel.


        :param terrain_start_zone_tid: The terrain_start_zone_tid of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: int
        """

        self._terrain_start_zone_tid = terrain_start_zone_tid

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


        :return: The terrain_start_zone_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: str
        """
        return self._terrain_start_zone_name

    @terrain_start_zone_name.setter
    def terrain_start_zone_name(self, terrain_start_zone_name):
        """Sets the terrain_start_zone_name of this AvalancheActivityObsViewModel.


        :param terrain_start_zone_name: The terrain_start_zone_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: str
        """

        self._terrain_start_zone_name = terrain_start_zone_name

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


        :return: The snow_line of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: int
        """
        return self._snow_line

    @snow_line.setter
    def snow_line(self, snow_line):
        """Sets the snow_line of this AvalancheActivityObsViewModel.


        :param snow_line: The snow_line of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: int
        """

        self._snow_line = snow_line

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


        :return: The snow_line_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: str
        """
        return self._snow_line_name

    @snow_line_name.setter
    def snow_line_name(self, snow_line_name):
        """Sets the snow_line_name of this AvalancheActivityObsViewModel.


        :param snow_line_name: The snow_line_name of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: str
        """

        self._snow_line_name = snow_line_name

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


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

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


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

        self._comment = comment

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


        :return: The dt_off_avalanche_time of this AvalancheActivityObsViewModel.  # noqa: E501
        :rtype: datetime
        """
        return self._dt_off_avalanche_time

    @dt_off_avalanche_time.setter
    def dt_off_avalanche_time(self, dt_off_avalanche_time):
        """Sets the dt_off_avalanche_time of this AvalancheActivityObsViewModel.


        :param dt_off_avalanche_time: The dt_off_avalanche_time of this AvalancheActivityObsViewModel.  # noqa: E501
        :type: datetime
        """

        self._dt_off_avalanche_time = dt_off_avalanche_time

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

        return self.__dict__ == other.__dict__

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