# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from rbb_swagger_server.models.base_model_ import Model
from rbb_swagger_server import util


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

    Do not edit the class manually.
    """

    def __init__(self, created: datetime=None, id: int=None, token: str=None):  # noqa: E501
        """Session - a model defined in Swagger

        :param created: The created of this Session.  # noqa: E501
        :type created: datetime
        :param id: The id of this Session.  # noqa: E501
        :type id: int
        :param token: The token of this Session.  # noqa: E501
        :type token: str
        """
        self.swagger_types = {
            'created': datetime,
            'id': int,
            'token': str
        }

        self.attribute_map = {
            'created': 'created',
            'id': 'id',
            'token': 'token'
        }

        self._created = created
        self._id = id
        self._token = token

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

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

    @property
    def created(self) -> datetime:
        """Gets the created of this Session.

        Start time of this bag.  # noqa: E501

        :return: The created of this Session.
        :rtype: datetime
        """
        return self._created

    @created.setter
    def created(self, created: datetime):
        """Sets the created of this Session.

        Start time of this bag.  # noqa: E501

        :param created: The created of this Session.
        :type created: datetime
        """

        self._created = created

    @property
    def id(self) -> int:
        """Gets the id of this Session.


        :return: The id of this Session.
        :rtype: int
        """
        return self._id

    @id.setter
    def id(self, id: int):
        """Sets the id of this Session.


        :param id: The id of this Session.
        :type id: int
        """

        self._id = id

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

        Only set on initial creation of a session  # noqa: E501

        :return: The token of this Session.
        :rtype: str
        """
        return self._token

    @token.setter
    def token(self, token: str):
        """Sets the token of this Session.

        Only set on initial creation of a session  # noqa: E501

        :param token: The token of this Session.
        :type token: str
        """

        self._token = token
