"""
    HCL AppScan on Cloud (v2)

    This API allows you to interact with the service. The API allows you to perform many of the operations available in the UI and more.</br>For authentication, use the relevant APIs in the Account section. A successful authentication response includes a bearer token for use in subsequent API calls. Pasting this token in the 'Access token' field above will automatically add the authorization header to any API call that requires a valid session.

    OpenAPI spec version: v2

    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

from pyasoc.configuration import Configuration


class UserSiteCommonModelsNewDynamicAnalyzerScan:
    """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 = {
        "scan_type": "str",
        "presence_id": "str",
        "include_verified_domains": "bool",
        "recurrence_rule": "str",
        "recurrence_start_date": "datetime",
        "recurrence_end_date": "datetime",
        "starting_url": "str",
        "login_user": "str",
        "login_password": "str",
        "extra_field": "str",
        "http_auth_user_name": "str",
        "http_auth_password": "str",
        "http_auth_domain": "str",
        "otp_secret_key": "str",
        "otp_length": "int",
        "otp_hash_type": "str",
        "otp_time_step": "int",
        "otp_http_parameters": "str",
        "thread_num": "int",
        "connection_timeout": "int",
        "test_policy": "str",
        "test_optimization_level": "str",
        "use_automatic_timeout": "bool",
        "max_requests_in": "int",
        "max_requests_time_frame": "int",
        "should_scan_below_this_directory": "bool",
        "allowed_domains": "list[str]",
        "use_case_sensitive_paths": "bool",
        "only_full_results": "bool",
        "login_sequence_file_id": "str",
        "fully_automatic": "bool",
        "scan_name": "str",
        "enable_mail_notification": "bool",
        "locale": "str",
        "app_id": "str",
        "execute": "bool",
        "personal": "bool",
        "comment": "str",
    }

    attribute_map = {
        "scan_type": "ScanType",
        "presence_id": "PresenceId",
        "include_verified_domains": "IncludeVerifiedDomains",
        "recurrence_rule": "RecurrenceRule",
        "recurrence_start_date": "RecurrenceStartDate",
        "recurrence_end_date": "RecurrenceEndDate",
        "starting_url": "StartingUrl",
        "login_user": "LoginUser",
        "login_password": "LoginPassword",
        "extra_field": "ExtraField",
        "http_auth_user_name": "HttpAuthUserName",
        "http_auth_password": "HttpAuthPassword",
        "http_auth_domain": "HttpAuthDomain",
        "otp_secret_key": "OtpSecretKey",
        "otp_length": "OtpLength",
        "otp_hash_type": "OtpHashType",
        "otp_time_step": "OtpTimeStep",
        "otp_http_parameters": "OtpHttpParameters",
        "thread_num": "ThreadNum",
        "connection_timeout": "ConnectionTimeout",
        "test_policy": "TestPolicy",
        "test_optimization_level": "TestOptimizationLevel",
        "use_automatic_timeout": "UseAutomaticTimeout",
        "max_requests_in": "MaxRequestsIn",
        "max_requests_time_frame": "MaxRequestsTimeFrame",
        "should_scan_below_this_directory": "ShouldScanBelowThisDirectory",
        "allowed_domains": "AllowedDomains",
        "use_case_sensitive_paths": "UseCaseSensitivePaths",
        "only_full_results": "OnlyFullResults",
        "login_sequence_file_id": "LoginSequenceFileId",
        "fully_automatic": "FullyAutomatic",
        "scan_name": "ScanName",
        "enable_mail_notification": "EnableMailNotification",
        "locale": "Locale",
        "app_id": "AppId",
        "execute": "Execute",
        "personal": "Personal",
        "comment": "Comment",
    }

    def __init__(
        self,
        scan_type=None,
        presence_id=None,
        include_verified_domains=None,
        recurrence_rule=None,
        recurrence_start_date=None,
        recurrence_end_date=None,
        starting_url=None,
        login_user=None,
        login_password=None,
        extra_field=None,
        http_auth_user_name=None,
        http_auth_password=None,
        http_auth_domain=None,
        otp_secret_key=None,
        otp_length=None,
        otp_hash_type=None,
        otp_time_step=None,
        otp_http_parameters=None,
        thread_num=None,
        connection_timeout=None,
        test_policy=None,
        test_optimization_level=None,
        use_automatic_timeout=None,
        max_requests_in=None,
        max_requests_time_frame=None,
        should_scan_below_this_directory=None,
        allowed_domains=None,
        use_case_sensitive_paths=None,
        only_full_results=None,
        login_sequence_file_id=None,
        fully_automatic=None,
        scan_name=None,
        enable_mail_notification=None,
        locale=None,
        app_id=None,
        execute=None,
        personal=None,
        comment=None,
        _configuration=None,
    ):
        """UserSiteCommonModelsNewDynamicAnalyzerScan - a model defined in Swagger"""
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._scan_type = None
        self._presence_id = None
        self._include_verified_domains = None
        self._recurrence_rule = None
        self._recurrence_start_date = None
        self._recurrence_end_date = None
        self._starting_url = None
        self._login_user = None
        self._login_password = None
        self._extra_field = None
        self._http_auth_user_name = None
        self._http_auth_password = None
        self._http_auth_domain = None
        self._otp_secret_key = None
        self._otp_length = None
        self._otp_hash_type = None
        self._otp_time_step = None
        self._otp_http_parameters = None
        self._thread_num = None
        self._connection_timeout = None
        self._test_policy = None
        self._test_optimization_level = None
        self._use_automatic_timeout = None
        self._max_requests_in = None
        self._max_requests_time_frame = None
        self._should_scan_below_this_directory = None
        self._allowed_domains = None
        self._use_case_sensitive_paths = None
        self._only_full_results = None
        self._login_sequence_file_id = None
        self._fully_automatic = None
        self._scan_name = None
        self._enable_mail_notification = None
        self._locale = None
        self._app_id = None
        self._execute = None
        self._personal = None
        self._comment = None
        self.discriminator = None

        if scan_type is not None:
            self.scan_type = scan_type
        if presence_id is not None:
            self.presence_id = presence_id
        if include_verified_domains is not None:
            self.include_verified_domains = include_verified_domains
        if recurrence_rule is not None:
            self.recurrence_rule = recurrence_rule
        if recurrence_start_date is not None:
            self.recurrence_start_date = recurrence_start_date
        if recurrence_end_date is not None:
            self.recurrence_end_date = recurrence_end_date
        if starting_url is not None:
            self.starting_url = starting_url
        if login_user is not None:
            self.login_user = login_user
        if login_password is not None:
            self.login_password = login_password
        if extra_field is not None:
            self.extra_field = extra_field
        if http_auth_user_name is not None:
            self.http_auth_user_name = http_auth_user_name
        if http_auth_password is not None:
            self.http_auth_password = http_auth_password
        if http_auth_domain is not None:
            self.http_auth_domain = http_auth_domain
        if otp_secret_key is not None:
            self.otp_secret_key = otp_secret_key
        if otp_length is not None:
            self.otp_length = otp_length
        if otp_hash_type is not None:
            self.otp_hash_type = otp_hash_type
        if otp_time_step is not None:
            self.otp_time_step = otp_time_step
        if otp_http_parameters is not None:
            self.otp_http_parameters = otp_http_parameters
        if thread_num is not None:
            self.thread_num = thread_num
        if connection_timeout is not None:
            self.connection_timeout = connection_timeout
        if test_policy is not None:
            self.test_policy = test_policy
        if test_optimization_level is not None:
            self.test_optimization_level = test_optimization_level
        if use_automatic_timeout is not None:
            self.use_automatic_timeout = use_automatic_timeout
        if max_requests_in is not None:
            self.max_requests_in = max_requests_in
        if max_requests_time_frame is not None:
            self.max_requests_time_frame = max_requests_time_frame
        if should_scan_below_this_directory is not None:
            self.should_scan_below_this_directory = should_scan_below_this_directory
        if allowed_domains is not None:
            self.allowed_domains = allowed_domains
        if use_case_sensitive_paths is not None:
            self.use_case_sensitive_paths = use_case_sensitive_paths
        if only_full_results is not None:
            self.only_full_results = only_full_results
        if login_sequence_file_id is not None:
            self.login_sequence_file_id = login_sequence_file_id
        if fully_automatic is not None:
            self.fully_automatic = fully_automatic
        self.scan_name = scan_name
        if enable_mail_notification is not None:
            self.enable_mail_notification = enable_mail_notification
        if locale is not None:
            self.locale = locale
        self.app_id = app_id
        if execute is not None:
            self.execute = execute
        if personal is not None:
            self.personal = personal
        if comment is not None:
            self.comment = comment

    @property
    def scan_type(self):
        # type: () -> str
        """Gets the scan_type of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The scan_type of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._scan_type

    @scan_type.setter
    def scan_type(self, scan_type):
        """Sets the scan_type of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param scan_type: The scan_type of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        allowed_values = ["Staging", "Production", "Custom"]
        if self._configuration.client_side_validation and scan_type not in allowed_values:
            raise ValueError(
                "Invalid value for `scan_type` ({}), must be one of {}".format(
                    scan_type, allowed_values
                )
            )

        self._scan_type = scan_type

    @property
    def presence_id(self):
        # type: () -> str
        """Gets the presence_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The presence_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._presence_id

    @presence_id.setter
    def presence_id(self, presence_id):
        """Sets the presence_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param presence_id: The presence_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """

        self._presence_id = presence_id

    @property
    def include_verified_domains(self):
        # type: () -> bool
        """Gets the include_verified_domains of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The include_verified_domains of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: bool
        """
        return self._include_verified_domains

    @include_verified_domains.setter
    def include_verified_domains(self, include_verified_domains):
        """Sets the include_verified_domains of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param include_verified_domains: The include_verified_domains of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: bool
        """

        self._include_verified_domains = include_verified_domains

    @property
    def recurrence_rule(self):
        # type: () -> str
        """Gets the recurrence_rule of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The recurrence_rule of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._recurrence_rule

    @recurrence_rule.setter
    def recurrence_rule(self, recurrence_rule):
        """Sets the recurrence_rule of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param recurrence_rule: The recurrence_rule of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """

        self._recurrence_rule = recurrence_rule

    @property
    def recurrence_start_date(self):
        # type: () -> datetime
        """Gets the recurrence_start_date of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The recurrence_start_date of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: datetime
        """
        return self._recurrence_start_date

    @recurrence_start_date.setter
    def recurrence_start_date(self, recurrence_start_date):
        """Sets the recurrence_start_date of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param recurrence_start_date: The recurrence_start_date of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: datetime
        """

        self._recurrence_start_date = recurrence_start_date

    @property
    def recurrence_end_date(self):
        # type: () -> datetime
        """Gets the recurrence_end_date of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The recurrence_end_date of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: datetime
        """
        return self._recurrence_end_date

    @recurrence_end_date.setter
    def recurrence_end_date(self, recurrence_end_date):
        """Sets the recurrence_end_date of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param recurrence_end_date: The recurrence_end_date of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: datetime
        """

        self._recurrence_end_date = recurrence_end_date

    @property
    def starting_url(self):
        # type: () -> str
        """Gets the starting_url of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The starting_url of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._starting_url

    @starting_url.setter
    def starting_url(self, starting_url):
        """Sets the starting_url of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param starting_url: The starting_url of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and starting_url is not None
            and len(starting_url) > 2000
        ):
            raise ValueError(
                "Invalid value for `starting_url`, length must be less than or equal to `2000`"
            )
        if (
            self._configuration.client_side_validation
            and starting_url is not None
            and len(starting_url) < 0
        ):
            raise ValueError(
                "Invalid value for `starting_url`, length must be greater than or equal to `0`"
            )

        self._starting_url = starting_url

    @property
    def login_user(self):
        # type: () -> str
        """Gets the login_user of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The login_user of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._login_user

    @login_user.setter
    def login_user(self, login_user):
        """Sets the login_user of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param login_user: The login_user of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and login_user is not None
            and len(login_user) > 1024
        ):
            raise ValueError(
                "Invalid value for `login_user`, length must be less than or equal to `1024`"
            )
        if (
            self._configuration.client_side_validation
            and login_user is not None
            and len(login_user) < 0
        ):
            raise ValueError(
                "Invalid value for `login_user`, length must be greater than or equal to `0`"
            )

        self._login_user = login_user

    @property
    def login_password(self):
        # type: () -> str
        """Gets the login_password of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The login_password of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._login_password

    @login_password.setter
    def login_password(self, login_password):
        """Sets the login_password of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param login_password: The login_password of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and login_password is not None
            and len(login_password) > 1024
        ):
            raise ValueError(
                "Invalid value for `login_password`, length must be less than or equal to `1024`"
            )
        if (
            self._configuration.client_side_validation
            and login_password is not None
            and len(login_password) < 0
        ):
            raise ValueError(
                "Invalid value for `login_password`, length must be greater than or equal to `0`"
            )

        self._login_password = login_password

    @property
    def extra_field(self):
        # type: () -> str
        """Gets the extra_field of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The extra_field of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._extra_field

    @extra_field.setter
    def extra_field(self, extra_field):
        """Sets the extra_field of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param extra_field: The extra_field of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and extra_field is not None
            and len(extra_field) > 1024
        ):
            raise ValueError(
                "Invalid value for `extra_field`, length must be less than or equal to `1024`"
            )
        if (
            self._configuration.client_side_validation
            and extra_field is not None
            and len(extra_field) < 0
        ):
            raise ValueError(
                "Invalid value for `extra_field`, length must be greater than or equal to `0`"
            )

        self._extra_field = extra_field

    @property
    def http_auth_user_name(self):
        # type: () -> str
        """Gets the http_auth_user_name of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The http_auth_user_name of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._http_auth_user_name

    @http_auth_user_name.setter
    def http_auth_user_name(self, http_auth_user_name):
        """Sets the http_auth_user_name of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param http_auth_user_name: The http_auth_user_name of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and http_auth_user_name is not None
            and len(http_auth_user_name) > 128
        ):
            raise ValueError(
                "Invalid value for `http_auth_user_name`, length must be less than or equal to `128`"
            )
        if (
            self._configuration.client_side_validation
            and http_auth_user_name is not None
            and len(http_auth_user_name) < 0
        ):
            raise ValueError(
                "Invalid value for `http_auth_user_name`, length must be greater than or equal to `0`"
            )

        self._http_auth_user_name = http_auth_user_name

    @property
    def http_auth_password(self):
        # type: () -> str
        """Gets the http_auth_password of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The http_auth_password of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._http_auth_password

    @http_auth_password.setter
    def http_auth_password(self, http_auth_password):
        """Sets the http_auth_password of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param http_auth_password: The http_auth_password of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and http_auth_password is not None
            and len(http_auth_password) > 128
        ):
            raise ValueError(
                "Invalid value for `http_auth_password`, length must be less than or equal to `128`"
            )
        if (
            self._configuration.client_side_validation
            and http_auth_password is not None
            and len(http_auth_password) < 0
        ):
            raise ValueError(
                "Invalid value for `http_auth_password`, length must be greater than or equal to `0`"
            )

        self._http_auth_password = http_auth_password

    @property
    def http_auth_domain(self):
        # type: () -> str
        """Gets the http_auth_domain of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The http_auth_domain of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._http_auth_domain

    @http_auth_domain.setter
    def http_auth_domain(self, http_auth_domain):
        """Sets the http_auth_domain of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param http_auth_domain: The http_auth_domain of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and http_auth_domain is not None
            and len(http_auth_domain) > 256
        ):
            raise ValueError(
                "Invalid value for `http_auth_domain`, length must be less than or equal to `256`"
            )
        if (
            self._configuration.client_side_validation
            and http_auth_domain is not None
            and len(http_auth_domain) < 0
        ):
            raise ValueError(
                "Invalid value for `http_auth_domain`, length must be greater than or equal to `0`"
            )

        self._http_auth_domain = http_auth_domain

    @property
    def otp_secret_key(self):
        # type: () -> str
        """Gets the otp_secret_key of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The otp_secret_key of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._otp_secret_key

    @otp_secret_key.setter
    def otp_secret_key(self, otp_secret_key):
        """Sets the otp_secret_key of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param otp_secret_key: The otp_secret_key of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and otp_secret_key is not None
            and len(otp_secret_key) > 256
        ):
            raise ValueError(
                "Invalid value for `otp_secret_key`, length must be less than or equal to `256`"
            )
        if (
            self._configuration.client_side_validation
            and otp_secret_key is not None
            and len(otp_secret_key) < 0
        ):
            raise ValueError(
                "Invalid value for `otp_secret_key`, length must be greater than or equal to `0`"
            )

        self._otp_secret_key = otp_secret_key

    @property
    def otp_length(self):
        # type: () -> int
        """Gets the otp_length of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The otp_length of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: int
        """
        return self._otp_length

    @otp_length.setter
    def otp_length(self, otp_length):
        """Sets the otp_length of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param otp_length: The otp_length of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: int
        """
        if (
            self._configuration.client_side_validation
            and otp_length is not None
            and otp_length > 100
        ):
            raise ValueError(
                "Invalid value for `otp_length`, must be a value less than or equal to `100`"
            )
        if self._configuration.client_side_validation and otp_length is not None and otp_length < 6:
            raise ValueError(
                "Invalid value for `otp_length`, must be a value greater than or equal to `6`"
            )

        self._otp_length = otp_length

    @property
    def otp_hash_type(self):
        # type: () -> str
        """Gets the otp_hash_type of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The otp_hash_type of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._otp_hash_type

    @otp_hash_type.setter
    def otp_hash_type(self, otp_hash_type):
        """Sets the otp_hash_type of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param otp_hash_type: The otp_hash_type of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        allowed_values = ["Sha1", "None", "Sha256", "Sha512"]
        if self._configuration.client_side_validation and otp_hash_type not in allowed_values:
            raise ValueError(
                "Invalid value for `otp_hash_type` ({}), must be one of {}".format(
                    otp_hash_type, allowed_values
                )
            )

        self._otp_hash_type = otp_hash_type

    @property
    def otp_time_step(self):
        # type: () -> int
        """Gets the otp_time_step of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The otp_time_step of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: int
        """
        return self._otp_time_step

    @otp_time_step.setter
    def otp_time_step(self, otp_time_step):
        """Sets the otp_time_step of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param otp_time_step: The otp_time_step of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: int
        """
        if (
            self._configuration.client_side_validation
            and otp_time_step is not None
            and otp_time_step > 300
        ):
            raise ValueError(
                "Invalid value for `otp_time_step`, must be a value less than or equal to `300`"
            )
        if (
            self._configuration.client_side_validation
            and otp_time_step is not None
            and otp_time_step < 1
        ):
            raise ValueError(
                "Invalid value for `otp_time_step`, must be a value greater than or equal to `1`"
            )

        self._otp_time_step = otp_time_step

    @property
    def otp_http_parameters(self):
        # type: () -> str
        """Gets the otp_http_parameters of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The otp_http_parameters of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._otp_http_parameters

    @otp_http_parameters.setter
    def otp_http_parameters(self, otp_http_parameters):
        """Sets the otp_http_parameters of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param otp_http_parameters: The otp_http_parameters of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and otp_http_parameters is not None
            and len(otp_http_parameters) > 256
        ):
            raise ValueError(
                "Invalid value for `otp_http_parameters`, length must be less than or equal to `256`"
            )
        if (
            self._configuration.client_side_validation
            and otp_http_parameters is not None
            and len(otp_http_parameters) < 0
        ):
            raise ValueError(
                "Invalid value for `otp_http_parameters`, length must be greater than or equal to `0`"
            )

        self._otp_http_parameters = otp_http_parameters

    @property
    def thread_num(self):
        # type: () -> int
        """Gets the thread_num of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The thread_num of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: int
        """
        return self._thread_num

    @thread_num.setter
    def thread_num(self, thread_num):
        """Sets the thread_num of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param thread_num: The thread_num of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: int
        """
        if (
            self._configuration.client_side_validation
            and thread_num is not None
            and thread_num > 20
        ):
            raise ValueError(
                "Invalid value for `thread_num`, must be a value less than or equal to `20`"
            )
        if self._configuration.client_side_validation and thread_num is not None and thread_num < 1:
            raise ValueError(
                "Invalid value for `thread_num`, must be a value greater than or equal to `1`"
            )

        self._thread_num = thread_num

    @property
    def connection_timeout(self):
        # type: () -> int
        """Gets the connection_timeout of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The connection_timeout of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: int
        """
        return self._connection_timeout

    @connection_timeout.setter
    def connection_timeout(self, connection_timeout):
        """Sets the connection_timeout of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param connection_timeout: The connection_timeout of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: int
        """
        if (
            self._configuration.client_side_validation
            and connection_timeout is not None
            and connection_timeout > 180
        ):
            raise ValueError(
                "Invalid value for `connection_timeout`, must be a value less than or equal to `180`"
            )
        if (
            self._configuration.client_side_validation
            and connection_timeout is not None
            and connection_timeout < 1
        ):
            raise ValueError(
                "Invalid value for `connection_timeout`, must be a value greater than or equal to `1`"
            )

        self._connection_timeout = connection_timeout

    @property
    def test_policy(self):
        # type: () -> str
        """Gets the test_policy of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The test_policy of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._test_policy

    @test_policy.setter
    def test_policy(self, test_policy):
        """Sets the test_policy of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param test_policy: The test_policy of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and test_policy is not None
            and len(test_policy) > 1024
        ):
            raise ValueError(
                "Invalid value for `test_policy`, length must be less than or equal to `1024`"
            )
        if (
            self._configuration.client_side_validation
            and test_policy is not None
            and len(test_policy) < 0
        ):
            raise ValueError(
                "Invalid value for `test_policy`, length must be greater than or equal to `0`"
            )

        self._test_policy = test_policy

    @property
    def test_optimization_level(self):
        # type: () -> str
        """Gets the test_optimization_level of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The test_optimization_level of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._test_optimization_level

    @test_optimization_level.setter
    def test_optimization_level(self, test_optimization_level):
        """Sets the test_optimization_level of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param test_optimization_level: The test_optimization_level of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        allowed_values = ["NoOptimization", "Fast", "Faster", "Fastest"]
        if (
            self._configuration.client_side_validation
            and test_optimization_level not in allowed_values
        ):
            raise ValueError(
                "Invalid value for `test_optimization_level` ({}), must be one of {}".format(
                    test_optimization_level, allowed_values
                )
            )

        self._test_optimization_level = test_optimization_level

    @property
    def use_automatic_timeout(self):
        # type: () -> bool
        """Gets the use_automatic_timeout of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The use_automatic_timeout of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: bool
        """
        return self._use_automatic_timeout

    @use_automatic_timeout.setter
    def use_automatic_timeout(self, use_automatic_timeout):
        """Sets the use_automatic_timeout of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param use_automatic_timeout: The use_automatic_timeout of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: bool
        """

        self._use_automatic_timeout = use_automatic_timeout

    @property
    def max_requests_in(self):
        # type: () -> int
        """Gets the max_requests_in of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The max_requests_in of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: int
        """
        return self._max_requests_in

    @max_requests_in.setter
    def max_requests_in(self, max_requests_in):
        """Sets the max_requests_in of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param max_requests_in: The max_requests_in of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: int
        """
        if (
            self._configuration.client_side_validation
            and max_requests_in is not None
            and max_requests_in > 1000000
        ):
            raise ValueError(
                "Invalid value for `max_requests_in`, must be a value less than or equal to `1000000`"
            )
        if (
            self._configuration.client_side_validation
            and max_requests_in is not None
            and max_requests_in < 1
        ):
            raise ValueError(
                "Invalid value for `max_requests_in`, must be a value greater than or equal to `1`"
            )

        self._max_requests_in = max_requests_in

    @property
    def max_requests_time_frame(self):
        # type: () -> int
        """Gets the max_requests_time_frame of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The max_requests_time_frame of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: int
        """
        return self._max_requests_time_frame

    @max_requests_time_frame.setter
    def max_requests_time_frame(self, max_requests_time_frame):
        """Sets the max_requests_time_frame of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param max_requests_time_frame: The max_requests_time_frame of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: int
        """
        if (
            self._configuration.client_side_validation
            and max_requests_time_frame is not None
            and max_requests_time_frame > 30000
        ):
            raise ValueError(
                "Invalid value for `max_requests_time_frame`, must be a value less than or equal to `30000`"
            )
        if (
            self._configuration.client_side_validation
            and max_requests_time_frame is not None
            and max_requests_time_frame < 1
        ):
            raise ValueError(
                "Invalid value for `max_requests_time_frame`, must be a value greater than or equal to `1`"
            )

        self._max_requests_time_frame = max_requests_time_frame

    @property
    def should_scan_below_this_directory(self):
        # type: () -> bool
        """Gets the should_scan_below_this_directory of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The should_scan_below_this_directory of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: bool
        """
        return self._should_scan_below_this_directory

    @should_scan_below_this_directory.setter
    def should_scan_below_this_directory(self, should_scan_below_this_directory):
        """Sets the should_scan_below_this_directory of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param should_scan_below_this_directory: The should_scan_below_this_directory of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: bool
        """

        self._should_scan_below_this_directory = should_scan_below_this_directory

    @property
    def allowed_domains(self):
        # type: () -> list[str]
        """Gets the allowed_domains of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The allowed_domains of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: list[str]
        """
        return self._allowed_domains

    @allowed_domains.setter
    def allowed_domains(self, allowed_domains):
        """Sets the allowed_domains of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param allowed_domains: The allowed_domains of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: list[str]
        """

        self._allowed_domains = allowed_domains

    @property
    def use_case_sensitive_paths(self):
        # type: () -> bool
        """Gets the use_case_sensitive_paths of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The use_case_sensitive_paths of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: bool
        """
        return self._use_case_sensitive_paths

    @use_case_sensitive_paths.setter
    def use_case_sensitive_paths(self, use_case_sensitive_paths):
        """Sets the use_case_sensitive_paths of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param use_case_sensitive_paths: The use_case_sensitive_paths of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: bool
        """

        self._use_case_sensitive_paths = use_case_sensitive_paths

    @property
    def only_full_results(self):
        # type: () -> bool
        """Gets the only_full_results of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The only_full_results of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: bool
        """
        return self._only_full_results

    @only_full_results.setter
    def only_full_results(self, only_full_results):
        """Sets the only_full_results of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param only_full_results: The only_full_results of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: bool
        """

        self._only_full_results = only_full_results

    @property
    def login_sequence_file_id(self):
        # type: () -> str
        """Gets the login_sequence_file_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The login_sequence_file_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._login_sequence_file_id

    @login_sequence_file_id.setter
    def login_sequence_file_id(self, login_sequence_file_id):
        """Sets the login_sequence_file_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param login_sequence_file_id: The login_sequence_file_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """

        self._login_sequence_file_id = login_sequence_file_id

    @property
    def fully_automatic(self):
        # type: () -> bool
        """Gets the fully_automatic of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The fully_automatic of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: bool
        """
        return self._fully_automatic

    @fully_automatic.setter
    def fully_automatic(self, fully_automatic):
        """Sets the fully_automatic of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param fully_automatic: The fully_automatic of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: bool
        """

        self._fully_automatic = fully_automatic

    @property
    def scan_name(self):
        # type: () -> str
        """Gets the scan_name of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The scan_name of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._scan_name

    @scan_name.setter
    def scan_name(self, scan_name):
        """Sets the scan_name of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param scan_name: The scan_name of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if self._configuration.client_side_validation and scan_name is None:
            raise ValueError("Invalid value for `scan_name`, must not be `None`")
        if (
            self._configuration.client_side_validation
            and scan_name is not None
            and len(scan_name) > 1024
        ):
            raise ValueError(
                "Invalid value for `scan_name`, length must be less than or equal to `1024`"
            )
        if (
            self._configuration.client_side_validation
            and scan_name is not None
            and len(scan_name) < 1
        ):
            raise ValueError(
                "Invalid value for `scan_name`, length must be greater than or equal to `1`"
            )

        self._scan_name = scan_name

    @property
    def enable_mail_notification(self):
        # type: () -> bool
        """Gets the enable_mail_notification of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The enable_mail_notification of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: bool
        """
        return self._enable_mail_notification

    @enable_mail_notification.setter
    def enable_mail_notification(self, enable_mail_notification):
        """Sets the enable_mail_notification of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param enable_mail_notification: The enable_mail_notification of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: bool
        """

        self._enable_mail_notification = enable_mail_notification

    @property
    def locale(self):
        # type: () -> str
        """Gets the locale of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The locale of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._locale

    @locale.setter
    def locale(self, locale):
        """Sets the locale of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param locale: The locale of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if self._configuration.client_side_validation and locale is not None and len(locale) > 10:
            raise ValueError(
                "Invalid value for `locale`, length must be less than or equal to `10`"
            )
        if self._configuration.client_side_validation and locale is not None and len(locale) < 0:
            raise ValueError(
                "Invalid value for `locale`, length must be greater than or equal to `0`"
            )

        self._locale = locale

    @property
    def app_id(self):
        # type: () -> str
        """Gets the app_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The app_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._app_id

    @app_id.setter
    def app_id(self, app_id):
        """Sets the app_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param app_id: The app_id of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if self._configuration.client_side_validation and app_id is None:
            raise ValueError("Invalid value for `app_id`, must not be `None`")

        self._app_id = app_id

    @property
    def execute(self):
        # type: () -> bool
        """Gets the execute of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The execute of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: bool
        """
        return self._execute

    @execute.setter
    def execute(self, execute):
        """Sets the execute of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param execute: The execute of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: bool
        """

        self._execute = execute

    @property
    def personal(self):
        # type: () -> bool
        """Gets the personal of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The personal of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: bool
        """
        return self._personal

    @personal.setter
    def personal(self, personal):
        """Sets the personal of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param personal: The personal of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: bool
        """

        self._personal = personal

    @property
    def comment(self):
        # type: () -> str
        """Gets the comment of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :return: The comment of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :rtype: str
        """
        return self._comment

    @comment.setter
    def comment(self, comment):
        """Sets the comment of this UserSiteCommonModelsNewDynamicAnalyzerScan.


        :param comment: The comment of this UserSiteCommonModelsNewDynamicAnalyzerScan.
        :type: str
        """
        if (
            self._configuration.client_side_validation
            and comment is not None
            and len(comment) > 2048
        ):
            raise ValueError(
                "Invalid value for `comment`, length must be less than or equal to `2048`"
            )
        if self._configuration.client_side_validation and comment is not None and len(comment) < 0:
            raise ValueError(
                "Invalid value for `comment`, length must be greater than or equal to `0`"
            )

        self._comment = comment

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in self.swagger_types.items():
            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(UserSiteCommonModelsNewDynamicAnalyzerScan, 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, UserSiteCommonModelsNewDynamicAnalyzerScan):
            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, UserSiteCommonModelsNewDynamicAnalyzerScan):
            return True

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