# 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 ResponseWrapperPhishingSiteResultNftRisk(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 = {
        'nft_open_source': 'int',
        'privileged_minting': 'ResponseWrapperPhishingSiteResultNftRiskPrivilegedMinting',
        'oversupply_minting': 'int',
        'nft_proxy': 'int',
        'restricted_approval': 'int',
        'transfer_without_approval': 'ResponseWrapperPhishingSiteResultNftRiskTransferWithoutApproval',
        'privileged_burn': 'ResponseWrapperPhishingSiteResultNftRiskPrivilegedBurn',
        'self_destruct': 'ResponseWrapperPhishingSiteResultNftRiskSelfDestruct'
    }

    attribute_map = {
        'nft_open_source': 'nft_open_source',
        'privileged_minting': 'privileged_minting',
        'oversupply_minting': 'oversupply_minting',
        'nft_proxy': 'nft_proxy',
        'restricted_approval': 'restricted_approval',
        'transfer_without_approval': 'transfer_without_approval',
        'privileged_burn': 'privileged_burn',
        'self_destruct': 'self_destruct'
    }

    def __init__(self, nft_open_source=None, privileged_minting=None, oversupply_minting=None, nft_proxy=None, restricted_approval=None, transfer_without_approval=None, privileged_burn=None, self_destruct=None):  # noqa: E501
        """ResponseWrapperPhishingSiteResultNftRisk - a model defined in Swagger"""  # noqa: E501
        self._nft_open_source = None
        self._privileged_minting = None
        self._oversupply_minting = None
        self._nft_proxy = None
        self._restricted_approval = None
        self._transfer_without_approval = None
        self._privileged_burn = None
        self._self_destruct = None
        self.discriminator = None
        if nft_open_source is not None:
            self.nft_open_source = nft_open_source
        if privileged_minting is not None:
            self.privileged_minting = privileged_minting
        if oversupply_minting is not None:
            self.oversupply_minting = oversupply_minting
        if nft_proxy is not None:
            self.nft_proxy = nft_proxy
        if restricted_approval is not None:
            self.restricted_approval = restricted_approval
        if transfer_without_approval is not None:
            self.transfer_without_approval = transfer_without_approval
        if privileged_burn is not None:
            self.privileged_burn = privileged_burn
        if self_destruct is not None:
            self.self_destruct = self_destruct

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

        It describes whether this contract is open source.  \"1\" means true;  \"0\" means false.(Notice:Un-open-sourced contracts may hide various unknown mechanisms and are extremely risky. When the contract is not open source, we will not be able to detect other risk items.)  # noqa: E501

        :return: The nft_open_source of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :rtype: int
        """
        return self._nft_open_source

    @nft_open_source.setter
    def nft_open_source(self, nft_open_source):
        """Sets the nft_open_source of this ResponseWrapperPhishingSiteResultNftRisk.

        It describes whether this contract is open source.  \"1\" means true;  \"0\" means false.(Notice:Un-open-sourced contracts may hide various unknown mechanisms and are extremely risky. When the contract is not open source, we will not be able to detect other risk items.)  # noqa: E501

        :param nft_open_source: The nft_open_source of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :type: int
        """

        self._nft_open_source = nft_open_source

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


        :return: The privileged_minting of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :rtype: ResponseWrapperPhishingSiteResultNftRiskPrivilegedMinting
        """
        return self._privileged_minting

    @privileged_minting.setter
    def privileged_minting(self, privileged_minting):
        """Sets the privileged_minting of this ResponseWrapperPhishingSiteResultNftRisk.


        :param privileged_minting: The privileged_minting of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :type: ResponseWrapperPhishingSiteResultNftRiskPrivilegedMinting
        """

        self._privileged_minting = privileged_minting

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

        It describes whether this NFT owner can bypass the maximum amount of minting specified in the contract, and continue to mint NFTs beyond this limit.  \"1\" means true;  \"0\" means false;  \"Null\" means unknown.(Notice:Oversupply minting refers to the existence of a special mint method in the NFT contract - the owner can bypass the maximum amount of minting specified in the contract, and continue to mint NFTs beyond this limit.)  # noqa: E501

        :return: The oversupply_minting of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :rtype: int
        """
        return self._oversupply_minting

    @oversupply_minting.setter
    def oversupply_minting(self, oversupply_minting):
        """Sets the oversupply_minting of this ResponseWrapperPhishingSiteResultNftRisk.

        It describes whether this NFT owner can bypass the maximum amount of minting specified in the contract, and continue to mint NFTs beyond this limit.  \"1\" means true;  \"0\" means false;  \"Null\" means unknown.(Notice:Oversupply minting refers to the existence of a special mint method in the NFT contract - the owner can bypass the maximum amount of minting specified in the contract, and continue to mint NFTs beyond this limit.)  # noqa: E501

        :param oversupply_minting: The oversupply_minting of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :type: int
        """

        self._oversupply_minting = oversupply_minting

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

        It describes whether this NFT contract has a proxy contract.  \"1\" means true;  \"0\" means false;  \"Null\" means unknown.(Notice:(1) When \"is_open_source\":\"0\", it will return \"null\". (2) Most Proxy contracts are accompanied by modifiable implementation contracts, and implementation contracts may contain significant potential risk.)  # noqa: E501

        :return: The nft_proxy of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :rtype: int
        """
        return self._nft_proxy

    @nft_proxy.setter
    def nft_proxy(self, nft_proxy):
        """Sets the nft_proxy of this ResponseWrapperPhishingSiteResultNftRisk.

        It describes whether this NFT contract has a proxy contract.  \"1\" means true;  \"0\" means false;  \"Null\" means unknown.(Notice:(1) When \"is_open_source\":\"0\", it will return \"null\". (2) Most Proxy contracts are accompanied by modifiable implementation contracts, and implementation contracts may contain significant potential risk.)  # noqa: E501

        :param nft_proxy: The nft_proxy of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :type: int
        """

        self._nft_proxy = nft_proxy

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

        It describes whether the NFT contract can restrict the approval, resulting in NFT can not be traded on the NFT DEX. \"1\" means true;  \"0\" means false;  \"Null\" means unknown.(Notice:If this risk exists, it means that users will not be able to trade the NFT on the exchange and only privileged users in the whitelist will be able to trade normally.)  # noqa: E501

        :return: The restricted_approval of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :rtype: int
        """
        return self._restricted_approval

    @restricted_approval.setter
    def restricted_approval(self, restricted_approval):
        """Sets the restricted_approval of this ResponseWrapperPhishingSiteResultNftRisk.

        It describes whether the NFT contract can restrict the approval, resulting in NFT can not be traded on the NFT DEX. \"1\" means true;  \"0\" means false;  \"Null\" means unknown.(Notice:If this risk exists, it means that users will not be able to trade the NFT on the exchange and only privileged users in the whitelist will be able to trade normally.)  # noqa: E501

        :param restricted_approval: The restricted_approval of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :type: int
        """

        self._restricted_approval = restricted_approval

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


        :return: The transfer_without_approval of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :rtype: ResponseWrapperPhishingSiteResultNftRiskTransferWithoutApproval
        """
        return self._transfer_without_approval

    @transfer_without_approval.setter
    def transfer_without_approval(self, transfer_without_approval):
        """Sets the transfer_without_approval of this ResponseWrapperPhishingSiteResultNftRisk.


        :param transfer_without_approval: The transfer_without_approval of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :type: ResponseWrapperPhishingSiteResultNftRiskTransferWithoutApproval
        """

        self._transfer_without_approval = transfer_without_approval

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


        :return: The privileged_burn of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :rtype: ResponseWrapperPhishingSiteResultNftRiskPrivilegedBurn
        """
        return self._privileged_burn

    @privileged_burn.setter
    def privileged_burn(self, privileged_burn):
        """Sets the privileged_burn of this ResponseWrapperPhishingSiteResultNftRisk.


        :param privileged_burn: The privileged_burn of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :type: ResponseWrapperPhishingSiteResultNftRiskPrivilegedBurn
        """

        self._privileged_burn = privileged_burn

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


        :return: The self_destruct of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :rtype: ResponseWrapperPhishingSiteResultNftRiskSelfDestruct
        """
        return self._self_destruct

    @self_destruct.setter
    def self_destruct(self, self_destruct):
        """Sets the self_destruct of this ResponseWrapperPhishingSiteResultNftRisk.


        :param self_destruct: The self_destruct of this ResponseWrapperPhishingSiteResultNftRisk.  # noqa: E501
        :type: ResponseWrapperPhishingSiteResultNftRiskSelfDestruct
        """

        self._self_destruct = self_destruct

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

        return self.__dict__ == other.__dict__

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