# coding: utf-8

"""
    Speech Services API v3.0

    Speech Services API v3.0.  # noqa: E501

    OpenAPI spec version: v3.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from swagger_client.configuration import Configuration


class EndpointLinks(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 = {
        'rest_interactive': 'str',
        'rest_conversation': 'str',
        'rest_dictation': 'str',
        'web_socket_interactive': 'str',
        'web_socket_conversation': 'str',
        'web_socket_dictation': 'str',
        'logs': 'str'
    }

    attribute_map = {
        'rest_interactive': 'restInteractive',
        'rest_conversation': 'restConversation',
        'rest_dictation': 'restDictation',
        'web_socket_interactive': 'webSocketInteractive',
        'web_socket_conversation': 'webSocketConversation',
        'web_socket_dictation': 'webSocketDictation',
        'logs': 'logs'
    }

    def __init__(self, rest_interactive=None, rest_conversation=None, rest_dictation=None, web_socket_interactive=None, web_socket_conversation=None, web_socket_dictation=None, logs=None, _configuration=None):  # noqa: E501
        """EndpointLinks - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._rest_interactive = None
        self._rest_conversation = None
        self._rest_dictation = None
        self._web_socket_interactive = None
        self._web_socket_conversation = None
        self._web_socket_dictation = None
        self._logs = None
        self.discriminator = None

        if rest_interactive is not None:
            self.rest_interactive = rest_interactive
        if rest_conversation is not None:
            self.rest_conversation = rest_conversation
        if rest_dictation is not None:
            self.rest_dictation = rest_dictation
        if web_socket_interactive is not None:
            self.web_socket_interactive = web_socket_interactive
        if web_socket_conversation is not None:
            self.web_socket_conversation = web_socket_conversation
        if web_socket_dictation is not None:
            self.web_socket_dictation = web_socket_dictation
        if logs is not None:
            self.logs = logs

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

        The REST endpoint for short requests up to 15 seconds.  # noqa: E501

        :return: The rest_interactive of this EndpointLinks.  # noqa: E501
        :rtype: str
        """
        return self._rest_interactive

    @rest_interactive.setter
    def rest_interactive(self, rest_interactive):
        """Sets the rest_interactive of this EndpointLinks.

        The REST endpoint for short requests up to 15 seconds.  # noqa: E501

        :param rest_interactive: The rest_interactive of this EndpointLinks.  # noqa: E501
        :type: str
        """

        self._rest_interactive = rest_interactive

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

        The REST endpoint for requests up to 60 seconds.  # noqa: E501

        :return: The rest_conversation of this EndpointLinks.  # noqa: E501
        :rtype: str
        """
        return self._rest_conversation

    @rest_conversation.setter
    def rest_conversation(self, rest_conversation):
        """Sets the rest_conversation of this EndpointLinks.

        The REST endpoint for requests up to 60 seconds.  # noqa: E501

        :param rest_conversation: The rest_conversation of this EndpointLinks.  # noqa: E501
        :type: str
        """

        self._rest_conversation = rest_conversation

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

        The REST endpoint for requests up to 60 seconds, supporting dictation of punctuation marks.  # noqa: E501

        :return: The rest_dictation of this EndpointLinks.  # noqa: E501
        :rtype: str
        """
        return self._rest_dictation

    @rest_dictation.setter
    def rest_dictation(self, rest_dictation):
        """Sets the rest_dictation of this EndpointLinks.

        The REST endpoint for requests up to 60 seconds, supporting dictation of punctuation marks.  # noqa: E501

        :param rest_dictation: The rest_dictation of this EndpointLinks.  # noqa: E501
        :type: str
        """

        self._rest_dictation = rest_dictation

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

        The Speech SDK endpoint for short requests up to 15 seconds with a single final result.  # noqa: E501

        :return: The web_socket_interactive of this EndpointLinks.  # noqa: E501
        :rtype: str
        """
        return self._web_socket_interactive

    @web_socket_interactive.setter
    def web_socket_interactive(self, web_socket_interactive):
        """Sets the web_socket_interactive of this EndpointLinks.

        The Speech SDK endpoint for short requests up to 15 seconds with a single final result.  # noqa: E501

        :param web_socket_interactive: The web_socket_interactive of this EndpointLinks.  # noqa: E501
        :type: str
        """

        self._web_socket_interactive = web_socket_interactive

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

        The Speech SDK endpoint for long requests with multiple final results.  # noqa: E501

        :return: The web_socket_conversation of this EndpointLinks.  # noqa: E501
        :rtype: str
        """
        return self._web_socket_conversation

    @web_socket_conversation.setter
    def web_socket_conversation(self, web_socket_conversation):
        """Sets the web_socket_conversation of this EndpointLinks.

        The Speech SDK endpoint for long requests with multiple final results.  # noqa: E501

        :param web_socket_conversation: The web_socket_conversation of this EndpointLinks.  # noqa: E501
        :type: str
        """

        self._web_socket_conversation = web_socket_conversation

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

        The Speech SDK endpoint for long requests with multiple final results, supporting dictation of  punctuation marks.  # noqa: E501

        :return: The web_socket_dictation of this EndpointLinks.  # noqa: E501
        :rtype: str
        """
        return self._web_socket_dictation

    @web_socket_dictation.setter
    def web_socket_dictation(self, web_socket_dictation):
        """Sets the web_socket_dictation of this EndpointLinks.

        The Speech SDK endpoint for long requests with multiple final results, supporting dictation of  punctuation marks.  # noqa: E501

        :param web_socket_dictation: The web_socket_dictation of this EndpointLinks.  # noqa: E501
        :type: str
        """

        self._web_socket_dictation = web_socket_dictation

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

        The audio and transcription logs for this endpoint.  # noqa: E501

        :return: The logs of this EndpointLinks.  # noqa: E501
        :rtype: str
        """
        return self._logs

    @logs.setter
    def logs(self, logs):
        """Sets the logs of this EndpointLinks.

        The audio and transcription logs for this endpoint.  # noqa: E501

        :param logs: The logs of this EndpointLinks.  # noqa: E501
        :type: str
        """

        self._logs = logs

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

        return self.to_dict() == other.to_dict()

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

        return self.to_dict() != other.to_dict()
