# coding: utf-8

"""
    speech_saas_prod

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

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


import pprint
import re  # noqa: F401

import six

from volcenginesdkcore.configuration import Configuration


class DetailsForAliasResourcePackOutput(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 = {
        'aliasable': 'bool',
        'demo_link': 'str',
        'extra_api_allowed': 'bool',
        'formalizable': 'bool',
        'language': 'str',
        'megatts_training': 'MegattsTrainingForAliasResourcePackOutput',
        'recommended_scenario': 'str',
        'tone_number': 'str',
        'voice_type': 'str'
    }

    attribute_map = {
        'aliasable': 'Aliasable',
        'demo_link': 'DemoLink',
        'extra_api_allowed': 'ExtraApiAllowed',
        'formalizable': 'Formalizable',
        'language': 'Language',
        'megatts_training': 'MegattsTraining',
        'recommended_scenario': 'RecommendedScenario',
        'tone_number': 'ToneNumber',
        'voice_type': 'VoiceType'
    }

    def __init__(self, aliasable=None, demo_link=None, extra_api_allowed=None, formalizable=None, language=None, megatts_training=None, recommended_scenario=None, tone_number=None, voice_type=None, _configuration=None):  # noqa: E501
        """DetailsForAliasResourcePackOutput - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._aliasable = None
        self._demo_link = None
        self._extra_api_allowed = None
        self._formalizable = None
        self._language = None
        self._megatts_training = None
        self._recommended_scenario = None
        self._tone_number = None
        self._voice_type = None
        self.discriminator = None

        if aliasable is not None:
            self.aliasable = aliasable
        if demo_link is not None:
            self.demo_link = demo_link
        if extra_api_allowed is not None:
            self.extra_api_allowed = extra_api_allowed
        if formalizable is not None:
            self.formalizable = formalizable
        if language is not None:
            self.language = language
        if megatts_training is not None:
            self.megatts_training = megatts_training
        if recommended_scenario is not None:
            self.recommended_scenario = recommended_scenario
        if tone_number is not None:
            self.tone_number = tone_number
        if voice_type is not None:
            self.voice_type = voice_type

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


        :return: The aliasable of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :rtype: bool
        """
        return self._aliasable

    @aliasable.setter
    def aliasable(self, aliasable):
        """Sets the aliasable of this DetailsForAliasResourcePackOutput.


        :param aliasable: The aliasable of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :type: bool
        """

        self._aliasable = aliasable

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


        :return: The demo_link of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :rtype: str
        """
        return self._demo_link

    @demo_link.setter
    def demo_link(self, demo_link):
        """Sets the demo_link of this DetailsForAliasResourcePackOutput.


        :param demo_link: The demo_link of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :type: str
        """

        self._demo_link = demo_link

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


        :return: The extra_api_allowed of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :rtype: bool
        """
        return self._extra_api_allowed

    @extra_api_allowed.setter
    def extra_api_allowed(self, extra_api_allowed):
        """Sets the extra_api_allowed of this DetailsForAliasResourcePackOutput.


        :param extra_api_allowed: The extra_api_allowed of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :type: bool
        """

        self._extra_api_allowed = extra_api_allowed

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


        :return: The formalizable of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :rtype: bool
        """
        return self._formalizable

    @formalizable.setter
    def formalizable(self, formalizable):
        """Sets the formalizable of this DetailsForAliasResourcePackOutput.


        :param formalizable: The formalizable of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :type: bool
        """

        self._formalizable = formalizable

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


        :return: The language of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :rtype: str
        """
        return self._language

    @language.setter
    def language(self, language):
        """Sets the language of this DetailsForAliasResourcePackOutput.


        :param language: The language of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :type: str
        """

        self._language = language

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


        :return: The megatts_training of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :rtype: MegattsTrainingForAliasResourcePackOutput
        """
        return self._megatts_training

    @megatts_training.setter
    def megatts_training(self, megatts_training):
        """Sets the megatts_training of this DetailsForAliasResourcePackOutput.


        :param megatts_training: The megatts_training of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :type: MegattsTrainingForAliasResourcePackOutput
        """

        self._megatts_training = megatts_training

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


        :return: The recommended_scenario of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :rtype: str
        """
        return self._recommended_scenario

    @recommended_scenario.setter
    def recommended_scenario(self, recommended_scenario):
        """Sets the recommended_scenario of this DetailsForAliasResourcePackOutput.


        :param recommended_scenario: The recommended_scenario of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :type: str
        """

        self._recommended_scenario = recommended_scenario

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


        :return: The tone_number of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :rtype: str
        """
        return self._tone_number

    @tone_number.setter
    def tone_number(self, tone_number):
        """Sets the tone_number of this DetailsForAliasResourcePackOutput.


        :param tone_number: The tone_number of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :type: str
        """

        self._tone_number = tone_number

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


        :return: The voice_type of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :rtype: str
        """
        return self._voice_type

    @voice_type.setter
    def voice_type(self, voice_type):
        """Sets the voice_type of this DetailsForAliasResourcePackOutput.


        :param voice_type: The voice_type of this DetailsForAliasResourcePackOutput.  # noqa: E501
        :type: str
        """

        self._voice_type = voice_type

    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(DetailsForAliasResourcePackOutput, 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, DetailsForAliasResourcePackOutput):
            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, DetailsForAliasResourcePackOutput):
            return True

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