# coding: utf-8

"""
    cloud_detect

    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 UploadConfigForUpdateTaskInput(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 = {
        'custom_host_config': 'CustomHostConfigForUpdateTaskInput',
        'dns_server': 'str',
        'dns_type': 'str',
        'http_version': 'str',
        'headers': 'list[HeaderForUpdateTaskInput]',
        'ignore_certificate': 'bool',
        'max_transfer_size': 'int',
        'method': 'int',
        'queries': 'list[QueryForUpdateTaskInput]',
        'redirect': 'bool',
        'timeout': 'int',
        'upload_file_url': 'str'
    }

    attribute_map = {
        'custom_host_config': 'CustomHostConfig',
        'dns_server': 'DNSServer',
        'dns_type': 'DNSType',
        'http_version': 'HTTPVersion',
        'headers': 'Headers',
        'ignore_certificate': 'IgnoreCertificate',
        'max_transfer_size': 'MaxTransferSize',
        'method': 'Method',
        'queries': 'Queries',
        'redirect': 'Redirect',
        'timeout': 'Timeout',
        'upload_file_url': 'UploadFileURL'
    }

    def __init__(self, custom_host_config=None, dns_server=None, dns_type=None, http_version=None, headers=None, ignore_certificate=None, max_transfer_size=None, method=None, queries=None, redirect=None, timeout=None, upload_file_url=None, _configuration=None):  # noqa: E501
        """UploadConfigForUpdateTaskInput - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._custom_host_config = None
        self._dns_server = None
        self._dns_type = None
        self._http_version = None
        self._headers = None
        self._ignore_certificate = None
        self._max_transfer_size = None
        self._method = None
        self._queries = None
        self._redirect = None
        self._timeout = None
        self._upload_file_url = None
        self.discriminator = None

        if custom_host_config is not None:
            self.custom_host_config = custom_host_config
        if dns_server is not None:
            self.dns_server = dns_server
        if dns_type is not None:
            self.dns_type = dns_type
        if http_version is not None:
            self.http_version = http_version
        if headers is not None:
            self.headers = headers
        if ignore_certificate is not None:
            self.ignore_certificate = ignore_certificate
        if max_transfer_size is not None:
            self.max_transfer_size = max_transfer_size
        if method is not None:
            self.method = method
        if queries is not None:
            self.queries = queries
        if redirect is not None:
            self.redirect = redirect
        if timeout is not None:
            self.timeout = timeout
        if upload_file_url is not None:
            self.upload_file_url = upload_file_url

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


        :return: The custom_host_config of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: CustomHostConfigForUpdateTaskInput
        """
        return self._custom_host_config

    @custom_host_config.setter
    def custom_host_config(self, custom_host_config):
        """Sets the custom_host_config of this UploadConfigForUpdateTaskInput.


        :param custom_host_config: The custom_host_config of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: CustomHostConfigForUpdateTaskInput
        """

        self._custom_host_config = custom_host_config

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


        :return: The dns_server of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: str
        """
        return self._dns_server

    @dns_server.setter
    def dns_server(self, dns_server):
        """Sets the dns_server of this UploadConfigForUpdateTaskInput.


        :param dns_server: The dns_server of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: str
        """

        self._dns_server = dns_server

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


        :return: The dns_type of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: str
        """
        return self._dns_type

    @dns_type.setter
    def dns_type(self, dns_type):
        """Sets the dns_type of this UploadConfigForUpdateTaskInput.


        :param dns_type: The dns_type of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: str
        """

        self._dns_type = dns_type

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


        :return: The http_version of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: str
        """
        return self._http_version

    @http_version.setter
    def http_version(self, http_version):
        """Sets the http_version of this UploadConfigForUpdateTaskInput.


        :param http_version: The http_version of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: str
        """

        self._http_version = http_version

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


        :return: The headers of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: list[HeaderForUpdateTaskInput]
        """
        return self._headers

    @headers.setter
    def headers(self, headers):
        """Sets the headers of this UploadConfigForUpdateTaskInput.


        :param headers: The headers of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: list[HeaderForUpdateTaskInput]
        """

        self._headers = headers

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


        :return: The ignore_certificate of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: bool
        """
        return self._ignore_certificate

    @ignore_certificate.setter
    def ignore_certificate(self, ignore_certificate):
        """Sets the ignore_certificate of this UploadConfigForUpdateTaskInput.


        :param ignore_certificate: The ignore_certificate of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: bool
        """

        self._ignore_certificate = ignore_certificate

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


        :return: The max_transfer_size of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: int
        """
        return self._max_transfer_size

    @max_transfer_size.setter
    def max_transfer_size(self, max_transfer_size):
        """Sets the max_transfer_size of this UploadConfigForUpdateTaskInput.


        :param max_transfer_size: The max_transfer_size of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: int
        """

        self._max_transfer_size = max_transfer_size

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


        :return: The method of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: int
        """
        return self._method

    @method.setter
    def method(self, method):
        """Sets the method of this UploadConfigForUpdateTaskInput.


        :param method: The method of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: int
        """

        self._method = method

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


        :return: The queries of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: list[QueryForUpdateTaskInput]
        """
        return self._queries

    @queries.setter
    def queries(self, queries):
        """Sets the queries of this UploadConfigForUpdateTaskInput.


        :param queries: The queries of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: list[QueryForUpdateTaskInput]
        """

        self._queries = queries

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


        :return: The redirect of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: bool
        """
        return self._redirect

    @redirect.setter
    def redirect(self, redirect):
        """Sets the redirect of this UploadConfigForUpdateTaskInput.


        :param redirect: The redirect of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: bool
        """

        self._redirect = redirect

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


        :return: The timeout of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: int
        """
        return self._timeout

    @timeout.setter
    def timeout(self, timeout):
        """Sets the timeout of this UploadConfigForUpdateTaskInput.


        :param timeout: The timeout of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: int
        """

        self._timeout = timeout

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


        :return: The upload_file_url of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :rtype: str
        """
        return self._upload_file_url

    @upload_file_url.setter
    def upload_file_url(self, upload_file_url):
        """Sets the upload_file_url of this UploadConfigForUpdateTaskInput.


        :param upload_file_url: The upload_file_url of this UploadConfigForUpdateTaskInput.  # noqa: E501
        :type: str
        """

        self._upload_file_url = upload_file_url

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

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