# 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 AvalancheEvaluationViewModel(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 = {
        'reg_id': 'int',
        'can_publish': 'bool',
        'avalanche_danger_tid': 'int',
        'avalanche_danger_name': 'str',
        'valid_exposition': 'str',
        'valid_height_relative': 'str',
        'valid_height_from': 'int',
        'valid_heigt_to': 'int',
        'avalanche_problem_tid1': 'int',
        'avalanche_problem_name1': 'str',
        'avalanche_problem_tid2': 'int',
        'avalanche_problem_name2': 'str',
        'avalanche_problem_tid3': 'int',
        'avalanche_problem_name3': 'str',
        'avalanche_evaluation1': 'str',
        'comment': 'str'
    }

    attribute_map = {
        'reg_id': 'RegID',
        'can_publish': 'CanPublish',
        'avalanche_danger_tid': 'AvalancheDangerTID',
        'avalanche_danger_name': 'AvalancheDangerName',
        'valid_exposition': 'ValidExposition',
        'valid_height_relative': 'ValidHeightRelative',
        'valid_height_from': 'ValidHeightFrom',
        'valid_heigt_to': 'ValidHeigtTo',
        'avalanche_problem_tid1': 'AvalancheProblemTID1',
        'avalanche_problem_name1': 'AvalancheProblemName1',
        'avalanche_problem_tid2': 'AvalancheProblemTID2',
        'avalanche_problem_name2': 'AvalancheProblemName2',
        'avalanche_problem_tid3': 'AvalancheProblemTID3',
        'avalanche_problem_name3': 'AvalancheProblemName3',
        'avalanche_evaluation1': 'AvalancheEvaluation1',
        'comment': 'Comment'
    }

    def __init__(self, reg_id=None, can_publish=None, avalanche_danger_tid=None, avalanche_danger_name=None, valid_exposition=None, valid_height_relative=None, valid_height_from=None, valid_heigt_to=None, avalanche_problem_tid1=None, avalanche_problem_name1=None, avalanche_problem_tid2=None, avalanche_problem_name2=None, avalanche_problem_tid3=None, avalanche_problem_name3=None, avalanche_evaluation1=None, comment=None):  # noqa: E501
        """AvalancheEvaluationViewModel - a model defined in Swagger"""  # noqa: E501
        self._reg_id = None
        self._can_publish = None
        self._avalanche_danger_tid = None
        self._avalanche_danger_name = None
        self._valid_exposition = None
        self._valid_height_relative = None
        self._valid_height_from = None
        self._valid_heigt_to = None
        self._avalanche_problem_tid1 = None
        self._avalanche_problem_name1 = None
        self._avalanche_problem_tid2 = None
        self._avalanche_problem_name2 = None
        self._avalanche_problem_tid3 = None
        self._avalanche_problem_name3 = None
        self._avalanche_evaluation1 = None
        self._comment = None
        self.discriminator = None
        if reg_id is not None:
            self.reg_id = reg_id
        if can_publish is not None:
            self.can_publish = can_publish
        if avalanche_danger_tid is not None:
            self.avalanche_danger_tid = avalanche_danger_tid
        if avalanche_danger_name is not None:
            self.avalanche_danger_name = avalanche_danger_name
        if valid_exposition is not None:
            self.valid_exposition = valid_exposition
        if valid_height_relative is not None:
            self.valid_height_relative = valid_height_relative
        if valid_height_from is not None:
            self.valid_height_from = valid_height_from
        if valid_heigt_to is not None:
            self.valid_heigt_to = valid_heigt_to
        if avalanche_problem_tid1 is not None:
            self.avalanche_problem_tid1 = avalanche_problem_tid1
        if avalanche_problem_name1 is not None:
            self.avalanche_problem_name1 = avalanche_problem_name1
        if avalanche_problem_tid2 is not None:
            self.avalanche_problem_tid2 = avalanche_problem_tid2
        if avalanche_problem_name2 is not None:
            self.avalanche_problem_name2 = avalanche_problem_name2
        if avalanche_problem_tid3 is not None:
            self.avalanche_problem_tid3 = avalanche_problem_tid3
        if avalanche_problem_name3 is not None:
            self.avalanche_problem_name3 = avalanche_problem_name3
        if avalanche_evaluation1 is not None:
            self.avalanche_evaluation1 = avalanche_evaluation1
        if comment is not None:
            self.comment = comment

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


        :return: The reg_id of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: int
        """
        return self._reg_id

    @reg_id.setter
    def reg_id(self, reg_id):
        """Sets the reg_id of this AvalancheEvaluationViewModel.


        :param reg_id: The reg_id of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: int
        """

        self._reg_id = reg_id

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


        :return: The can_publish of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: bool
        """
        return self._can_publish

    @can_publish.setter
    def can_publish(self, can_publish):
        """Sets the can_publish of this AvalancheEvaluationViewModel.


        :param can_publish: The can_publish of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: bool
        """

        self._can_publish = can_publish

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


        :return: The avalanche_danger_tid of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: int
        """
        return self._avalanche_danger_tid

    @avalanche_danger_tid.setter
    def avalanche_danger_tid(self, avalanche_danger_tid):
        """Sets the avalanche_danger_tid of this AvalancheEvaluationViewModel.


        :param avalanche_danger_tid: The avalanche_danger_tid of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: int
        """

        self._avalanche_danger_tid = avalanche_danger_tid

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


        :return: The avalanche_danger_name of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: str
        """
        return self._avalanche_danger_name

    @avalanche_danger_name.setter
    def avalanche_danger_name(self, avalanche_danger_name):
        """Sets the avalanche_danger_name of this AvalancheEvaluationViewModel.


        :param avalanche_danger_name: The avalanche_danger_name of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: str
        """

        self._avalanche_danger_name = avalanche_danger_name

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


        :return: The valid_exposition of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: str
        """
        return self._valid_exposition

    @valid_exposition.setter
    def valid_exposition(self, valid_exposition):
        """Sets the valid_exposition of this AvalancheEvaluationViewModel.


        :param valid_exposition: The valid_exposition of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: str
        """

        self._valid_exposition = valid_exposition

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


        :return: The valid_height_relative of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: str
        """
        return self._valid_height_relative

    @valid_height_relative.setter
    def valid_height_relative(self, valid_height_relative):
        """Sets the valid_height_relative of this AvalancheEvaluationViewModel.


        :param valid_height_relative: The valid_height_relative of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: str
        """

        self._valid_height_relative = valid_height_relative

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


        :return: The valid_height_from of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: int
        """
        return self._valid_height_from

    @valid_height_from.setter
    def valid_height_from(self, valid_height_from):
        """Sets the valid_height_from of this AvalancheEvaluationViewModel.


        :param valid_height_from: The valid_height_from of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: int
        """

        self._valid_height_from = valid_height_from

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


        :return: The valid_heigt_to of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: int
        """
        return self._valid_heigt_to

    @valid_heigt_to.setter
    def valid_heigt_to(self, valid_heigt_to):
        """Sets the valid_heigt_to of this AvalancheEvaluationViewModel.


        :param valid_heigt_to: The valid_heigt_to of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: int
        """

        self._valid_heigt_to = valid_heigt_to

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


        :return: The avalanche_problem_tid1 of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: int
        """
        return self._avalanche_problem_tid1

    @avalanche_problem_tid1.setter
    def avalanche_problem_tid1(self, avalanche_problem_tid1):
        """Sets the avalanche_problem_tid1 of this AvalancheEvaluationViewModel.


        :param avalanche_problem_tid1: The avalanche_problem_tid1 of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: int
        """

        self._avalanche_problem_tid1 = avalanche_problem_tid1

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


        :return: The avalanche_problem_name1 of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: str
        """
        return self._avalanche_problem_name1

    @avalanche_problem_name1.setter
    def avalanche_problem_name1(self, avalanche_problem_name1):
        """Sets the avalanche_problem_name1 of this AvalancheEvaluationViewModel.


        :param avalanche_problem_name1: The avalanche_problem_name1 of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: str
        """

        self._avalanche_problem_name1 = avalanche_problem_name1

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


        :return: The avalanche_problem_tid2 of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: int
        """
        return self._avalanche_problem_tid2

    @avalanche_problem_tid2.setter
    def avalanche_problem_tid2(self, avalanche_problem_tid2):
        """Sets the avalanche_problem_tid2 of this AvalancheEvaluationViewModel.


        :param avalanche_problem_tid2: The avalanche_problem_tid2 of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: int
        """

        self._avalanche_problem_tid2 = avalanche_problem_tid2

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


        :return: The avalanche_problem_name2 of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: str
        """
        return self._avalanche_problem_name2

    @avalanche_problem_name2.setter
    def avalanche_problem_name2(self, avalanche_problem_name2):
        """Sets the avalanche_problem_name2 of this AvalancheEvaluationViewModel.


        :param avalanche_problem_name2: The avalanche_problem_name2 of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: str
        """

        self._avalanche_problem_name2 = avalanche_problem_name2

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


        :return: The avalanche_problem_tid3 of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: int
        """
        return self._avalanche_problem_tid3

    @avalanche_problem_tid3.setter
    def avalanche_problem_tid3(self, avalanche_problem_tid3):
        """Sets the avalanche_problem_tid3 of this AvalancheEvaluationViewModel.


        :param avalanche_problem_tid3: The avalanche_problem_tid3 of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: int
        """

        self._avalanche_problem_tid3 = avalanche_problem_tid3

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


        :return: The avalanche_problem_name3 of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: str
        """
        return self._avalanche_problem_name3

    @avalanche_problem_name3.setter
    def avalanche_problem_name3(self, avalanche_problem_name3):
        """Sets the avalanche_problem_name3 of this AvalancheEvaluationViewModel.


        :param avalanche_problem_name3: The avalanche_problem_name3 of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: str
        """

        self._avalanche_problem_name3 = avalanche_problem_name3

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


        :return: The avalanche_evaluation1 of this AvalancheEvaluationViewModel.  # noqa: E501
        :rtype: str
        """
        return self._avalanche_evaluation1

    @avalanche_evaluation1.setter
    def avalanche_evaluation1(self, avalanche_evaluation1):
        """Sets the avalanche_evaluation1 of this AvalancheEvaluationViewModel.


        :param avalanche_evaluation1: The avalanche_evaluation1 of this AvalancheEvaluationViewModel.  # noqa: E501
        :type: str
        """

        self._avalanche_evaluation1 = avalanche_evaluation1

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


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

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


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

        self._comment = comment

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

        return self.__dict__ == other.__dict__

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