# coding: utf-8

"""
    Fingerprint Server API

    Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device.   # noqa: E501

    OpenAPI spec version: 3
    Contact: support@fingerprint.com
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import re  # noqa: F401
from typing import Dict, List, Optional  # noqa: F401
from fingerprint_pro_server_api_sdk.base_model import BaseModel


class Tampering(BaseModel):
    """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 = {
        'result': 'bool',
        'anomaly_score': 'float',
        'anti_detect_browser': 'bool'
    }

    nullable_map = {
        'result': False,
        'anomaly_score': False,
        'anti_detect_browser': False
    }

    attribute_map = {
        'result': 'result',
        'anomaly_score': 'anomalyScore',
        'anti_detect_browser': 'antiDetectBrowser'
    }

    def __init__(self, result=None, anomaly_score=None, anti_detect_browser=None):  # noqa: E501
        """Tampering - a model defined in Swagger"""  # noqa: E501
        self._result = None
        self._anomaly_score = None
        self._anti_detect_browser = None
        self.discriminator = None
        self.result = result
        self.anomaly_score = anomaly_score
        self.anti_detect_browser = anti_detect_browser

    @property
    def result(self) -> bool:
        """Gets the result of this Tampering.  # noqa: E501

        Indicates if an identification request from a browser or an Android SDK has been tampered with. Not supported in the iOS SDK, is always `false` for iOS requests.   * `true` - If the request meets either of the following conditions:     * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`).     * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`).   * `false` - If the request is considered genuine or was generated by the iOS SDK.   # noqa: E501

        :return: The result of this Tampering.  # noqa: E501
        """
        return self._result

    @result.setter
    def result(self, result: bool):
        """Sets the result of this Tampering.

        Indicates if an identification request from a browser or an Android SDK has been tampered with. Not supported in the iOS SDK, is always `false` for iOS requests.   * `true` - If the request meets either of the following conditions:     * Contains anomalous browser or device attributes that could not have been legitimately produced by the JavaScript agent or the Android SDK (see `anomalyScore`).     * Originated from an anti-detect browser like Incognition (see `antiDetectBrowser`).   * `false` - If the request is considered genuine or was generated by the iOS SDK.   # noqa: E501

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

        self._result = result

    @property
    def anomaly_score(self) -> float:
        """Gets the anomaly_score of this Tampering.  # noqa: E501

        A score that indicates the extent of anomalous data in the request. This field applies to requests originating from **both** browsers and Android SDKs.    * Values above `0.5` indicate that the request has been tampered with.   * Values below `0.5` indicate that the request is genuine.   # noqa: E501

        :return: The anomaly_score of this Tampering.  # noqa: E501
        """
        return self._anomaly_score

    @anomaly_score.setter
    def anomaly_score(self, anomaly_score: float):
        """Sets the anomaly_score of this Tampering.

        A score that indicates the extent of anomalous data in the request. This field applies to requests originating from **both** browsers and Android SDKs.    * Values above `0.5` indicate that the request has been tampered with.   * Values below `0.5` indicate that the request is genuine.   # noqa: E501

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

        self._anomaly_score = anomaly_score

    @property
    def anti_detect_browser(self) -> bool:
        """Gets the anti_detect_browser of this Tampering.  # noqa: E501

        Anti-detect browsers try to evade identification by masking or manipulating their fingerprint to imitate legitimate browser configurations. This field does not apply to requests originating from mobile SDKs.   * `true` - The browser resembles a known anti-detect browser, for example, Incognition.   * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK.   # noqa: E501

        :return: The anti_detect_browser of this Tampering.  # noqa: E501
        """
        return self._anti_detect_browser

    @anti_detect_browser.setter
    def anti_detect_browser(self, anti_detect_browser: bool):
        """Sets the anti_detect_browser of this Tampering.

        Anti-detect browsers try to evade identification by masking or manipulating their fingerprint to imitate legitimate browser configurations. This field does not apply to requests originating from mobile SDKs.   * `true` - The browser resembles a known anti-detect browser, for example, Incognition.   * `false` - The browser does not resemble an anti-detect browser or the request originates from a mobile SDK.   # noqa: E501

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

        self._anti_detect_browser = anti_detect_browser

