# coding: utf-8

"""
    GoPlus Security API Document

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

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

import pprint
import re  # noqa: F401

import six

class ResponseWrapperSuiTokenSecurityResult(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 = {
        'symbol': 'str',
        'creator': 'str',
        'contract_upgradeable': 'ResponseWrapperSuiTokenSecurityContractUpgradeable',
        'total_supply': 'str',
        'decimals': 'int',
        'name': 'str',
        'trusted_token': 'str',
        'metadata_modifiable': 'ResponseWrapperSuiTokenSecurityMetadataModifiable',
        'blacklist': 'ResponseWrapperSuiTokenSecurityBlacklist',
        'mintable': 'ResponseWrapperSuiTokenSecurityMintable'
    }

    attribute_map = {
        'symbol': 'symbol',
        'creator': 'creator',
        'contract_upgradeable': 'contract_upgradeable',
        'total_supply': 'total_supply',
        'decimals': 'decimals',
        'name': 'name',
        'trusted_token': 'trusted_token',
        'metadata_modifiable': 'metadata_modifiable',
        'blacklist': 'blacklist',
        'mintable': 'mintable'
    }

    def __init__(self, symbol=None, creator=None, contract_upgradeable=None, total_supply=None, decimals=None, name=None, trusted_token=None, metadata_modifiable=None, blacklist=None, mintable=None):  # noqa: E501
        """ResponseWrapperSuiTokenSecurityResult - a model defined in Swagger"""  # noqa: E501
        self._symbol = None
        self._creator = None
        self._contract_upgradeable = None
        self._total_supply = None
        self._decimals = None
        self._name = None
        self._trusted_token = None
        self._metadata_modifiable = None
        self._blacklist = None
        self._mintable = None
        self.discriminator = None
        if symbol is not None:
            self.symbol = symbol
        if creator is not None:
            self.creator = creator
        if contract_upgradeable is not None:
            self.contract_upgradeable = contract_upgradeable
        if total_supply is not None:
            self.total_supply = total_supply
        if decimals is not None:
            self.decimals = decimals
        if name is not None:
            self.name = name
        if trusted_token is not None:
            self.trusted_token = trusted_token
        if metadata_modifiable is not None:
            self.metadata_modifiable = metadata_modifiable
        if blacklist is not None:
            self.blacklist = blacklist
        if mintable is not None:
            self.mintable = mintable

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

        Symbol of the token.  # noqa: E501

        :return: The symbol of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: str
        """
        return self._symbol

    @symbol.setter
    def symbol(self, symbol):
        """Sets the symbol of this ResponseWrapperSuiTokenSecurityResult.

        Symbol of the token.  # noqa: E501

        :param symbol: The symbol of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: str
        """

        self._symbol = symbol

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

        Creator of the token.  # noqa: E501

        :return: The creator of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: str
        """
        return self._creator

    @creator.setter
    def creator(self, creator):
        """Sets the creator of this ResponseWrapperSuiTokenSecurityResult.

        Creator of the token.  # noqa: E501

        :param creator: The creator of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: str
        """

        self._creator = creator

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


        :return: The contract_upgradeable of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: ResponseWrapperSuiTokenSecurityContractUpgradeable
        """
        return self._contract_upgradeable

    @contract_upgradeable.setter
    def contract_upgradeable(self, contract_upgradeable):
        """Sets the contract_upgradeable of this ResponseWrapperSuiTokenSecurityResult.


        :param contract_upgradeable: The contract_upgradeable of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: ResponseWrapperSuiTokenSecurityContractUpgradeable
        """

        self._contract_upgradeable = contract_upgradeable

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

        Total supply of the token.  # noqa: E501

        :return: The total_supply of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: str
        """
        return self._total_supply

    @total_supply.setter
    def total_supply(self, total_supply):
        """Sets the total_supply of this ResponseWrapperSuiTokenSecurityResult.

        Total supply of the token.  # noqa: E501

        :param total_supply: The total_supply of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: str
        """

        self._total_supply = total_supply

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

        Decimals of the token.  # noqa: E501

        :return: The decimals of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: int
        """
        return self._decimals

    @decimals.setter
    def decimals(self, decimals):
        """Sets the decimals of this ResponseWrapperSuiTokenSecurityResult.

        Decimals of the token.  # noqa: E501

        :param decimals: The decimals of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: int
        """

        self._decimals = decimals

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

        Name of the token.  # noqa: E501

        :return: The name of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this ResponseWrapperSuiTokenSecurityResult.

        Name of the token.  # noqa: E501

        :param name: The name of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: str
        """

        self._name = name

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

        If the token is a famous and trustworthy one. \"1\" means yes.(Notice: This field is intended to identify well-known and reputable tokens. Trusted tokens with special functions (such as the mintable function in USDC) are generally not considered risk items. Please note that a value other than “1” does not indicate that the token is untrustworthy. We recommend properly evaluating and handling tokens with values other than “1” to avoid unnecessary disputes. )  # noqa: E501

        :return: The trusted_token of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: str
        """
        return self._trusted_token

    @trusted_token.setter
    def trusted_token(self, trusted_token):
        """Sets the trusted_token of this ResponseWrapperSuiTokenSecurityResult.

        If the token is a famous and trustworthy one. \"1\" means yes.(Notice: This field is intended to identify well-known and reputable tokens. Trusted tokens with special functions (such as the mintable function in USDC) are generally not considered risk items. Please note that a value other than “1” does not indicate that the token is untrustworthy. We recommend properly evaluating and handling tokens with values other than “1” to avoid unnecessary disputes. )  # noqa: E501

        :param trusted_token: The trusted_token of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: str
        """

        self._trusted_token = trusted_token

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


        :return: The metadata_modifiable of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: ResponseWrapperSuiTokenSecurityMetadataModifiable
        """
        return self._metadata_modifiable

    @metadata_modifiable.setter
    def metadata_modifiable(self, metadata_modifiable):
        """Sets the metadata_modifiable of this ResponseWrapperSuiTokenSecurityResult.


        :param metadata_modifiable: The metadata_modifiable of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: ResponseWrapperSuiTokenSecurityMetadataModifiable
        """

        self._metadata_modifiable = metadata_modifiable

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


        :return: The blacklist of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: ResponseWrapperSuiTokenSecurityBlacklist
        """
        return self._blacklist

    @blacklist.setter
    def blacklist(self, blacklist):
        """Sets the blacklist of this ResponseWrapperSuiTokenSecurityResult.


        :param blacklist: The blacklist of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: ResponseWrapperSuiTokenSecurityBlacklist
        """

        self._blacklist = blacklist

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


        :return: The mintable of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :rtype: ResponseWrapperSuiTokenSecurityMintable
        """
        return self._mintable

    @mintable.setter
    def mintable(self, mintable):
        """Sets the mintable of this ResponseWrapperSuiTokenSecurityResult.


        :param mintable: The mintable of this ResponseWrapperSuiTokenSecurityResult.  # noqa: E501
        :type: ResponseWrapperSuiTokenSecurityMintable
        """

        self._mintable = mintable

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

        return self.__dict__ == other.__dict__

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