# 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 AttachmentViewModel(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',
        'picture_id': 'int',
        'photographer': 'str',
        'copyright': 'str',
        'aspect': 'int',
        'geo_hazard_tid': 'int',
        'geo_hazard_name': 'str',
        'registration_tid': 'int',
        'registration_name': 'str',
        'comment': 'str',
        'attachment_file_name': 'str',
        'attachment_mime_type': 'str',
        'is_main_attachment': 'bool'
    }

    attribute_map = {
        'reg_id': 'RegID',
        'picture_id': 'PictureID',
        'photographer': 'Photographer',
        'copyright': 'Copyright',
        'aspect': 'Aspect',
        'geo_hazard_tid': 'GeoHazardTID',
        'geo_hazard_name': 'GeoHazardName',
        'registration_tid': 'RegistrationTID',
        'registration_name': 'RegistrationName',
        'comment': 'Comment',
        'attachment_file_name': 'AttachmentFileName',
        'attachment_mime_type': 'AttachmentMimeType',
        'is_main_attachment': 'IsMainAttachment'
    }

    def __init__(self, reg_id=None, picture_id=None, photographer=None, copyright=None, aspect=None, geo_hazard_tid=None, geo_hazard_name=None, registration_tid=None, registration_name=None, comment=None, attachment_file_name=None, attachment_mime_type=None, is_main_attachment=None):  # noqa: E501
        """AttachmentViewModel - a model defined in Swagger"""  # noqa: E501
        self._reg_id = None
        self._picture_id = None
        self._photographer = None
        self._copyright = None
        self._aspect = None
        self._geo_hazard_tid = None
        self._geo_hazard_name = None
        self._registration_tid = None
        self._registration_name = None
        self._comment = None
        self._attachment_file_name = None
        self._attachment_mime_type = None
        self._is_main_attachment = None
        self.discriminator = None
        if reg_id is not None:
            self.reg_id = reg_id
        if picture_id is not None:
            self.picture_id = picture_id
        if photographer is not None:
            self.photographer = photographer
        if copyright is not None:
            self.copyright = copyright
        if aspect is not None:
            self.aspect = aspect
        if geo_hazard_tid is not None:
            self.geo_hazard_tid = geo_hazard_tid
        if geo_hazard_name is not None:
            self.geo_hazard_name = geo_hazard_name
        if registration_tid is not None:
            self.registration_tid = registration_tid
        if registration_name is not None:
            self.registration_name = registration_name
        if comment is not None:
            self.comment = comment
        if attachment_file_name is not None:
            self.attachment_file_name = attachment_file_name
        if attachment_mime_type is not None:
            self.attachment_mime_type = attachment_mime_type
        if is_main_attachment is not None:
            self.is_main_attachment = is_main_attachment

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


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

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


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

        self._reg_id = reg_id

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


        :return: The picture_id of this AttachmentViewModel.  # noqa: E501
        :rtype: int
        """
        return self._picture_id

    @picture_id.setter
    def picture_id(self, picture_id):
        """Sets the picture_id of this AttachmentViewModel.


        :param picture_id: The picture_id of this AttachmentViewModel.  # noqa: E501
        :type: int
        """

        self._picture_id = picture_id

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


        :return: The photographer of this AttachmentViewModel.  # noqa: E501
        :rtype: str
        """
        return self._photographer

    @photographer.setter
    def photographer(self, photographer):
        """Sets the photographer of this AttachmentViewModel.


        :param photographer: The photographer of this AttachmentViewModel.  # noqa: E501
        :type: str
        """

        self._photographer = photographer

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


        :return: The copyright of this AttachmentViewModel.  # noqa: E501
        :rtype: str
        """
        return self._copyright

    @copyright.setter
    def copyright(self, copyright):
        """Sets the copyright of this AttachmentViewModel.


        :param copyright: The copyright of this AttachmentViewModel.  # noqa: E501
        :type: str
        """

        self._copyright = copyright

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


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

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


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

        self._aspect = aspect

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


        :return: The geo_hazard_tid of this AttachmentViewModel.  # 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 AttachmentViewModel.


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

        self._geo_hazard_tid = geo_hazard_tid

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


        :return: The geo_hazard_name of this AttachmentViewModel.  # noqa: E501
        :rtype: str
        """
        return self._geo_hazard_name

    @geo_hazard_name.setter
    def geo_hazard_name(self, geo_hazard_name):
        """Sets the geo_hazard_name of this AttachmentViewModel.


        :param geo_hazard_name: The geo_hazard_name of this AttachmentViewModel.  # noqa: E501
        :type: str
        """

        self._geo_hazard_name = geo_hazard_name

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


        :return: The registration_tid of this AttachmentViewModel.  # noqa: E501
        :rtype: int
        """
        return self._registration_tid

    @registration_tid.setter
    def registration_tid(self, registration_tid):
        """Sets the registration_tid of this AttachmentViewModel.


        :param registration_tid: The registration_tid of this AttachmentViewModel.  # noqa: E501
        :type: int
        """

        self._registration_tid = registration_tid

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


        :return: The registration_name of this AttachmentViewModel.  # noqa: E501
        :rtype: str
        """
        return self._registration_name

    @registration_name.setter
    def registration_name(self, registration_name):
        """Sets the registration_name of this AttachmentViewModel.


        :param registration_name: The registration_name of this AttachmentViewModel.  # noqa: E501
        :type: str
        """

        self._registration_name = registration_name

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


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

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


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

        self._comment = comment

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


        :return: The attachment_file_name of this AttachmentViewModel.  # noqa: E501
        :rtype: str
        """
        return self._attachment_file_name

    @attachment_file_name.setter
    def attachment_file_name(self, attachment_file_name):
        """Sets the attachment_file_name of this AttachmentViewModel.


        :param attachment_file_name: The attachment_file_name of this AttachmentViewModel.  # noqa: E501
        :type: str
        """

        self._attachment_file_name = attachment_file_name

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


        :return: The attachment_mime_type of this AttachmentViewModel.  # noqa: E501
        :rtype: str
        """
        return self._attachment_mime_type

    @attachment_mime_type.setter
    def attachment_mime_type(self, attachment_mime_type):
        """Sets the attachment_mime_type of this AttachmentViewModel.


        :param attachment_mime_type: The attachment_mime_type of this AttachmentViewModel.  # noqa: E501
        :type: str
        """

        self._attachment_mime_type = attachment_mime_type

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


        :return: The is_main_attachment of this AttachmentViewModel.  # noqa: E501
        :rtype: bool
        """
        return self._is_main_attachment

    @is_main_attachment.setter
    def is_main_attachment(self, is_main_attachment):
        """Sets the is_main_attachment of this AttachmentViewModel.


        :param is_main_attachment: The is_main_attachment of this AttachmentViewModel.  # noqa: E501
        :type: bool
        """

        self._is_main_attachment = is_main_attachment

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

        return self.__dict__ == other.__dict__

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