# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server import util


class Entity(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    def __init__(self, label: str=None, nanoid: str=None):  # noqa: E501
        """Entity - a model defined in Swagger

        :param label: The label of this Entity.  # noqa: E501
        :type label: str
        :param nanoid: The nanoid of this Entity.  # noqa: E501
        :type nanoid: str
        """
        self.swagger_types = {
            'label': str,
            'nanoid': str
        }

        self.attribute_map = {
            'label': 'label',
            'nanoid': 'nanoid'
        }

        self._label = label
        self._nanoid = nanoid

    @classmethod
    def from_dict(cls, dikt) -> 'Entity':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The Entity of this Entity.  # noqa: E501
        :rtype: Entity
        """
        return util.deserialize_model(dikt, cls)

    @property
    def label(self) -> str:
        """Gets the label of this Entity.


        :return: The label of this Entity.
        :rtype: str
        """
        return self._label

    @label.setter
    def label(self, label: str):
        """Sets the label of this Entity.


        :param label: The label of this Entity.
        :type label: str
        """
        if label is None:
            raise ValueError("Invalid value for `label`, must not be `None`")  # noqa: E501

        self._label = label

    @property
    def nanoid(self) -> str:
        """Gets the nanoid of this Entity.


        :return: The nanoid of this Entity.
        :rtype: str
        """
        return self._nanoid

    @nanoid.setter
    def nanoid(self, nanoid: str):
        """Sets the nanoid of this Entity.


        :param nanoid: The nanoid of this Entity.
        :type nanoid: str
        """
        if nanoid is None:
            raise ValueError("Invalid value for `nanoid`, must not be `None`")  # noqa: E501

        self._nanoid = nanoid
