from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from openapi_server.models.base_model import Model
from openapi_server import util


class GetTdInfo200ResponseData(Model):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.
    """

    def __init__(self, server=None, version=None, os_name=None, os_version=None):  # noqa: E501
        """GetTdInfo200ResponseData - a model defined in OpenAPI

        :param server: The server of this GetTdInfo200ResponseData.  # noqa: E501
        :type server: str
        :param version: The version of this GetTdInfo200ResponseData.  # noqa: E501
        :type version: str
        :param os_name: The os_name of this GetTdInfo200ResponseData.  # noqa: E501
        :type os_name: str
        :param os_version: The os_version of this GetTdInfo200ResponseData.  # noqa: E501
        :type os_version: str
        """
        self.openapi_types = {
            'server': str,
            'version': str,
            'os_name': str,
            'os_version': str
        }

        self.attribute_map = {
            'server': 'server',
            'version': 'version',
            'os_name': 'osName',
            'os_version': 'osVersion'
        }

        self._server = server
        self._version = version
        self._os_name = os_name
        self._os_version = os_version

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

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

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

        Server name (typically \"TouchDesigner\")  # noqa: E501

        :return: The server of this GetTdInfo200ResponseData.
        :rtype: str
        """
        return self._server

    @server.setter
    def server(self, server: str):
        """Sets the server of this GetTdInfo200ResponseData.

        Server name (typically \"TouchDesigner\")  # noqa: E501

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

        self._server = server

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

        TouchDesigner version number  # noqa: E501

        :return: The version of this GetTdInfo200ResponseData.
        :rtype: str
        """
        return self._version

    @version.setter
    def version(self, version: str):
        """Sets the version of this GetTdInfo200ResponseData.

        TouchDesigner version number  # noqa: E501

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

        self._version = version

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

        Operating system name  # noqa: E501

        :return: The os_name of this GetTdInfo200ResponseData.
        :rtype: str
        """
        return self._os_name

    @os_name.setter
    def os_name(self, os_name: str):
        """Sets the os_name of this GetTdInfo200ResponseData.

        Operating system name  # noqa: E501

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

        self._os_name = os_name

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

        Operating system version  # noqa: E501

        :return: The os_version of this GetTdInfo200ResponseData.
        :rtype: str
        """
        return self._os_version

    @os_version.setter
    def os_version(self, os_version: str):
        """Sets the os_version of this GetTdInfo200ResponseData.

        Operating system version  # noqa: E501

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

        self._os_version = os_version
