# 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 PictureRequestDto(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 = {
        'photographer': 'str',
        'copyright': 'str',
        'aspect': 'int',
        'geo_hazard_tid': 'int',
        'usage_flag_tid': 'int',
        'registration_tid': 'int',
        'picture_comment': 'str',
        'picture_image_base64': 'str',
        'attachment_upload_id': 'str',
        'is_main_attachment': 'bool'
    }

    attribute_map = {
        'photographer': 'Photographer',
        'copyright': 'Copyright',
        'aspect': 'Aspect',
        'geo_hazard_tid': 'GeoHazardTID',
        'usage_flag_tid': 'UsageFlagTID',
        'registration_tid': 'RegistrationTID',
        'picture_comment': 'PictureComment',
        'picture_image_base64': 'PictureImageBase64',
        'attachment_upload_id': 'AttachmentUploadId',
        'is_main_attachment': 'IsMainAttachment'
    }

    def __init__(self, photographer=None, copyright=None, aspect=None, geo_hazard_tid=None, usage_flag_tid=None, registration_tid=None, picture_comment=None, picture_image_base64=None, attachment_upload_id=None, is_main_attachment=None):  # noqa: E501
        """PictureRequestDto - a model defined in Swagger"""  # noqa: E501
        self._photographer = None
        self._copyright = None
        self._aspect = None
        self._geo_hazard_tid = None
        self._usage_flag_tid = None
        self._registration_tid = None
        self._picture_comment = None
        self._picture_image_base64 = None
        self._attachment_upload_id = None
        self._is_main_attachment = None
        self.discriminator = None
        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 usage_flag_tid is not None:
            self.usage_flag_tid = usage_flag_tid
        if registration_tid is not None:
            self.registration_tid = registration_tid
        if picture_comment is not None:
            self.picture_comment = picture_comment
        if picture_image_base64 is not None:
            self.picture_image_base64 = picture_image_base64
        if attachment_upload_id is not None:
            self.attachment_upload_id = attachment_upload_id
        if is_main_attachment is not None:
            self.is_main_attachment = is_main_attachment

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

        Navn på fotograf.  # noqa: E501

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

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

        Navn på fotograf.  # noqa: E501

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

        self._photographer = photographer

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

        Rettigheter til bilde.  # noqa: E501

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

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

        Rettigheter til bilde.  # noqa: E501

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

        self._copyright = copyright

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

        Hvilken himmelretning peker bilde. Gis i grader slik gitt på kompass. 0 er nord og 90 er øst osv.  # noqa: E501

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

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

        Hvilken himmelretning peker bilde. Gis i grader slik gitt på kompass. 0 er nord og 90 er øst osv.  # noqa: E501

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

        self._aspect = aspect

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

        Sett naturfare. Tabellen brukes av alle naturfarer (snø, jord, vann, is). The GeoHazardKD unique identifier  # noqa: E501

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

        Sett naturfare. Tabellen brukes av alle naturfarer (snø, jord, vann, is). The GeoHazardKD unique identifier  # noqa: E501

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

        self._geo_hazard_tid = geo_hazard_tid

    @property
    def usage_flag_tid(self):
        """Gets the usage_flag_tid of this PictureRequestDto.  # 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 PictureRequestDto.  # 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 PictureRequestDto.

        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 PictureRequestDto.  # noqa: E501
        :type: int
        """

        self._usage_flag_tid = usage_flag_tid

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

        Hva er bildet av. Dette feltet relaterer bildet til en observasjonstype. Feks værobservasjon, faretegn, osv. The RegistrationKD unique identifier  # noqa: E501

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

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

        Hva er bildet av. Dette feltet relaterer bildet til en observasjonstype. Feks værobservasjon, faretegn, osv. The RegistrationKD unique identifier  # noqa: E501

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

        self._registration_tid = registration_tid

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

        Kommentarfelt for bildet. F.eks for å beskrive det.  # noqa: E501

        :return: The picture_comment of this PictureRequestDto.  # noqa: E501
        :rtype: str
        """
        return self._picture_comment

    @picture_comment.setter
    def picture_comment(self, picture_comment):
        """Sets the picture_comment of this PictureRequestDto.

        Kommentarfelt for bildet. F.eks for å beskrive det.  # noqa: E501

        :param picture_comment: The picture_comment of this PictureRequestDto.  # noqa: E501
        :type: str
        """

        self._picture_comment = picture_comment

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

        Billed objektet.  # noqa: E501

        :return: The picture_image_base64 of this PictureRequestDto.  # noqa: E501
        :rtype: str
        """
        return self._picture_image_base64

    @picture_image_base64.setter
    def picture_image_base64(self, picture_image_base64):
        """Sets the picture_image_base64 of this PictureRequestDto.

        Billed objektet.  # noqa: E501

        :param picture_image_base64: The picture_image_base64 of this PictureRequestDto.  # noqa: E501
        :type: str
        """

        self._picture_image_base64 = picture_image_base64

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

        If attachment is uploaded before sending registration, set AttachmentUploadId  # noqa: E501

        :return: The attachment_upload_id of this PictureRequestDto.  # noqa: E501
        :rtype: str
        """
        return self._attachment_upload_id

    @attachment_upload_id.setter
    def attachment_upload_id(self, attachment_upload_id):
        """Sets the attachment_upload_id of this PictureRequestDto.

        If attachment is uploaded before sending registration, set AttachmentUploadId  # noqa: E501

        :param attachment_upload_id: The attachment_upload_id of this PictureRequestDto.  # noqa: E501
        :type: str
        """

        self._attachment_upload_id = attachment_upload_id

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

        Om bildet skal vises først i registreringen, eller ikke  # noqa: E501

        :return: The is_main_attachment of this PictureRequestDto.  # 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 PictureRequestDto.

        Om bildet skal vises først i registreringen, eller ikke  # noqa: E501

        :param is_main_attachment: The is_main_attachment of this PictureRequestDto.  # 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(PictureRequestDto, 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, PictureRequestDto):
            return False

        return self.__dict__ == other.__dict__

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