# coding: utf-8

"""
    SYSNET RUIAN services API

    SYSNET RÚIAN service REST API  # noqa: E501

    OpenAPI spec version: 1.0.2
    Contact: info@sysnet.cz
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class AdministrativeDivision(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 = {
        'ku_kod': 'int',
        'ku_nazev': 'str',
        'obec_kod': 'int',
        'obec_nazev': 'str',
        'obec_statuskod': 'int',
        'orp_kod': 'int',
        'orp_nazev': 'str',
        'spravni_obec_kod': 'int',
        'spravni_obec_nazev': 'str',
        'pou_kod': 'int',
        'pou_nazev': 'str',
        'okres_kod': 'int',
        'okres_nazev': 'str',
        'vusc_kod': 'int',
        'vusc_nazev': 'str',
        'regionsoudrznosti_kod': 'int',
        'regionsoudrznosti_nazev': 'str',
        'nuts_1': 'str',
        'nuts_2': 'str',
        'nuts_3': 'str',
        'nuts_lau1': 'str',
        'nuts_lau2': 'str'
    }

    attribute_map = {
        'ku_kod': 'ku_kod',
        'ku_nazev': 'ku_nazev',
        'obec_kod': 'obec_kod',
        'obec_nazev': 'obec_nazev',
        'obec_statuskod': 'obec_statuskod',
        'orp_kod': 'orp_kod',
        'orp_nazev': 'orp_nazev',
        'spravni_obec_kod': 'spravni_obec_kod',
        'spravni_obec_nazev': 'spravni_obec_nazev',
        'pou_kod': 'pou_kod',
        'pou_nazev': 'pou_nazev',
        'okres_kod': 'okres_kod',
        'okres_nazev': 'okres_nazev',
        'vusc_kod': 'vusc_kod',
        'vusc_nazev': 'vusc_nazev',
        'regionsoudrznosti_kod': 'regionsoudrznosti_kod',
        'regionsoudrznosti_nazev': 'regionsoudrznosti_nazev',
        'nuts_1': 'nuts_1',
        'nuts_2': 'nuts_2',
        'nuts_3': 'nuts_3',
        'nuts_lau1': 'nuts_lau1',
        'nuts_lau2': 'nuts_lau2'
    }

    def __init__(self, ku_kod=None, ku_nazev=None, obec_kod=None, obec_nazev=None, obec_statuskod=None, orp_kod=None, orp_nazev=None, spravni_obec_kod=None, spravni_obec_nazev=None, pou_kod=None, pou_nazev=None, okres_kod=None, okres_nazev=None, vusc_kod=None, vusc_nazev=None, regionsoudrznosti_kod=None, regionsoudrznosti_nazev=None, nuts_1=None, nuts_2=None, nuts_3=None, nuts_lau1=None, nuts_lau2=None):  # noqa: E501
        """AdministrativeDivision - a model defined in Swagger"""  # noqa: E501
        self._ku_kod = None
        self._ku_nazev = None
        self._obec_kod = None
        self._obec_nazev = None
        self._obec_statuskod = None
        self._orp_kod = None
        self._orp_nazev = None
        self._spravni_obec_kod = None
        self._spravni_obec_nazev = None
        self._pou_kod = None
        self._pou_nazev = None
        self._okres_kod = None
        self._okres_nazev = None
        self._vusc_kod = None
        self._vusc_nazev = None
        self._regionsoudrznosti_kod = None
        self._regionsoudrznosti_nazev = None
        self._nuts_1 = None
        self._nuts_2 = None
        self._nuts_3 = None
        self._nuts_lau1 = None
        self._nuts_lau2 = None
        self.discriminator = None
        if ku_kod is not None:
            self.ku_kod = ku_kod
        if ku_nazev is not None:
            self.ku_nazev = ku_nazev
        if obec_kod is not None:
            self.obec_kod = obec_kod
        if obec_nazev is not None:
            self.obec_nazev = obec_nazev
        if obec_statuskod is not None:
            self.obec_statuskod = obec_statuskod
        if orp_kod is not None:
            self.orp_kod = orp_kod
        if orp_nazev is not None:
            self.orp_nazev = orp_nazev
        if spravni_obec_kod is not None:
            self.spravni_obec_kod = spravni_obec_kod
        if spravni_obec_nazev is not None:
            self.spravni_obec_nazev = spravni_obec_nazev
        if pou_kod is not None:
            self.pou_kod = pou_kod
        if pou_nazev is not None:
            self.pou_nazev = pou_nazev
        if okres_kod is not None:
            self.okres_kod = okres_kod
        if okres_nazev is not None:
            self.okres_nazev = okres_nazev
        if vusc_kod is not None:
            self.vusc_kod = vusc_kod
        if vusc_nazev is not None:
            self.vusc_nazev = vusc_nazev
        if regionsoudrznosti_kod is not None:
            self.regionsoudrznosti_kod = regionsoudrznosti_kod
        if regionsoudrznosti_nazev is not None:
            self.regionsoudrznosti_nazev = regionsoudrznosti_nazev
        if nuts_1 is not None:
            self.nuts_1 = nuts_1
        if nuts_2 is not None:
            self.nuts_2 = nuts_2
        if nuts_3 is not None:
            self.nuts_3 = nuts_3
        if nuts_lau1 is not None:
            self.nuts_lau1 = nuts_lau1
        if nuts_lau2 is not None:
            self.nuts_lau2 = nuts_lau2

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


        :return: The ku_kod of this AdministrativeDivision.  # noqa: E501
        :rtype: int
        """
        return self._ku_kod

    @ku_kod.setter
    def ku_kod(self, ku_kod):
        """Sets the ku_kod of this AdministrativeDivision.


        :param ku_kod: The ku_kod of this AdministrativeDivision.  # noqa: E501
        :type: int
        """

        self._ku_kod = ku_kod

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


        :return: The ku_nazev of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._ku_nazev

    @ku_nazev.setter
    def ku_nazev(self, ku_nazev):
        """Sets the ku_nazev of this AdministrativeDivision.


        :param ku_nazev: The ku_nazev of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._ku_nazev = ku_nazev

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


        :return: The obec_kod of this AdministrativeDivision.  # noqa: E501
        :rtype: int
        """
        return self._obec_kod

    @obec_kod.setter
    def obec_kod(self, obec_kod):
        """Sets the obec_kod of this AdministrativeDivision.


        :param obec_kod: The obec_kod of this AdministrativeDivision.  # noqa: E501
        :type: int
        """

        self._obec_kod = obec_kod

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


        :return: The obec_nazev of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._obec_nazev

    @obec_nazev.setter
    def obec_nazev(self, obec_nazev):
        """Sets the obec_nazev of this AdministrativeDivision.


        :param obec_nazev: The obec_nazev of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._obec_nazev = obec_nazev

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


        :return: The obec_statuskod of this AdministrativeDivision.  # noqa: E501
        :rtype: int
        """
        return self._obec_statuskod

    @obec_statuskod.setter
    def obec_statuskod(self, obec_statuskod):
        """Sets the obec_statuskod of this AdministrativeDivision.


        :param obec_statuskod: The obec_statuskod of this AdministrativeDivision.  # noqa: E501
        :type: int
        """

        self._obec_statuskod = obec_statuskod

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


        :return: The orp_kod of this AdministrativeDivision.  # noqa: E501
        :rtype: int
        """
        return self._orp_kod

    @orp_kod.setter
    def orp_kod(self, orp_kod):
        """Sets the orp_kod of this AdministrativeDivision.


        :param orp_kod: The orp_kod of this AdministrativeDivision.  # noqa: E501
        :type: int
        """

        self._orp_kod = orp_kod

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


        :return: The orp_nazev of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._orp_nazev

    @orp_nazev.setter
    def orp_nazev(self, orp_nazev):
        """Sets the orp_nazev of this AdministrativeDivision.


        :param orp_nazev: The orp_nazev of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._orp_nazev = orp_nazev

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


        :return: The spravni_obec_kod of this AdministrativeDivision.  # noqa: E501
        :rtype: int
        """
        return self._spravni_obec_kod

    @spravni_obec_kod.setter
    def spravni_obec_kod(self, spravni_obec_kod):
        """Sets the spravni_obec_kod of this AdministrativeDivision.


        :param spravni_obec_kod: The spravni_obec_kod of this AdministrativeDivision.  # noqa: E501
        :type: int
        """

        self._spravni_obec_kod = spravni_obec_kod

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


        :return: The spravni_obec_nazev of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._spravni_obec_nazev

    @spravni_obec_nazev.setter
    def spravni_obec_nazev(self, spravni_obec_nazev):
        """Sets the spravni_obec_nazev of this AdministrativeDivision.


        :param spravni_obec_nazev: The spravni_obec_nazev of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._spravni_obec_nazev = spravni_obec_nazev

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


        :return: The pou_kod of this AdministrativeDivision.  # noqa: E501
        :rtype: int
        """
        return self._pou_kod

    @pou_kod.setter
    def pou_kod(self, pou_kod):
        """Sets the pou_kod of this AdministrativeDivision.


        :param pou_kod: The pou_kod of this AdministrativeDivision.  # noqa: E501
        :type: int
        """

        self._pou_kod = pou_kod

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


        :return: The pou_nazev of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._pou_nazev

    @pou_nazev.setter
    def pou_nazev(self, pou_nazev):
        """Sets the pou_nazev of this AdministrativeDivision.


        :param pou_nazev: The pou_nazev of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._pou_nazev = pou_nazev

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


        :return: The okres_kod of this AdministrativeDivision.  # noqa: E501
        :rtype: int
        """
        return self._okres_kod

    @okres_kod.setter
    def okres_kod(self, okres_kod):
        """Sets the okres_kod of this AdministrativeDivision.


        :param okres_kod: The okres_kod of this AdministrativeDivision.  # noqa: E501
        :type: int
        """

        self._okres_kod = okres_kod

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


        :return: The okres_nazev of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._okres_nazev

    @okres_nazev.setter
    def okres_nazev(self, okres_nazev):
        """Sets the okres_nazev of this AdministrativeDivision.


        :param okres_nazev: The okres_nazev of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._okres_nazev = okres_nazev

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


        :return: The vusc_kod of this AdministrativeDivision.  # noqa: E501
        :rtype: int
        """
        return self._vusc_kod

    @vusc_kod.setter
    def vusc_kod(self, vusc_kod):
        """Sets the vusc_kod of this AdministrativeDivision.


        :param vusc_kod: The vusc_kod of this AdministrativeDivision.  # noqa: E501
        :type: int
        """

        self._vusc_kod = vusc_kod

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


        :return: The vusc_nazev of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._vusc_nazev

    @vusc_nazev.setter
    def vusc_nazev(self, vusc_nazev):
        """Sets the vusc_nazev of this AdministrativeDivision.


        :param vusc_nazev: The vusc_nazev of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._vusc_nazev = vusc_nazev

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


        :return: The regionsoudrznosti_kod of this AdministrativeDivision.  # noqa: E501
        :rtype: int
        """
        return self._regionsoudrznosti_kod

    @regionsoudrznosti_kod.setter
    def regionsoudrznosti_kod(self, regionsoudrznosti_kod):
        """Sets the regionsoudrznosti_kod of this AdministrativeDivision.


        :param regionsoudrznosti_kod: The regionsoudrznosti_kod of this AdministrativeDivision.  # noqa: E501
        :type: int
        """

        self._regionsoudrznosti_kod = regionsoudrznosti_kod

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


        :return: The regionsoudrznosti_nazev of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._regionsoudrznosti_nazev

    @regionsoudrznosti_nazev.setter
    def regionsoudrznosti_nazev(self, regionsoudrznosti_nazev):
        """Sets the regionsoudrznosti_nazev of this AdministrativeDivision.


        :param regionsoudrznosti_nazev: The regionsoudrznosti_nazev of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._regionsoudrznosti_nazev = regionsoudrznosti_nazev

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


        :return: The nuts_1 of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._nuts_1

    @nuts_1.setter
    def nuts_1(self, nuts_1):
        """Sets the nuts_1 of this AdministrativeDivision.


        :param nuts_1: The nuts_1 of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._nuts_1 = nuts_1

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


        :return: The nuts_2 of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._nuts_2

    @nuts_2.setter
    def nuts_2(self, nuts_2):
        """Sets the nuts_2 of this AdministrativeDivision.


        :param nuts_2: The nuts_2 of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._nuts_2 = nuts_2

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


        :return: The nuts_3 of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._nuts_3

    @nuts_3.setter
    def nuts_3(self, nuts_3):
        """Sets the nuts_3 of this AdministrativeDivision.


        :param nuts_3: The nuts_3 of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._nuts_3 = nuts_3

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


        :return: The nuts_lau1 of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._nuts_lau1

    @nuts_lau1.setter
    def nuts_lau1(self, nuts_lau1):
        """Sets the nuts_lau1 of this AdministrativeDivision.


        :param nuts_lau1: The nuts_lau1 of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._nuts_lau1 = nuts_lau1

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


        :return: The nuts_lau2 of this AdministrativeDivision.  # noqa: E501
        :rtype: str
        """
        return self._nuts_lau2

    @nuts_lau2.setter
    def nuts_lau2(self, nuts_lau2):
        """Sets the nuts_lau2 of this AdministrativeDivision.


        :param nuts_lau2: The nuts_lau2 of this AdministrativeDivision.  # noqa: E501
        :type: str
        """

        self._nuts_lau2 = nuts_lau2

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

        return self.__dict__ == other.__dict__

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