# coding: utf-8

"""
    vei_api

    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 UpdateVideoAnalysisTaskRequest(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 = {
        'api_base': 'str',
        'api_key': 'str',
        'crop_configs': 'list[CropConfigForUpdateVideoAnalysisTaskInput]',
        'crop_enabled': 'bool',
        'dedup_enabled': 'bool',
        'dedup_ratio': 'float',
        'detect_enabled': 'bool',
        'detect_objects': 'list[str]',
        'extract_mode': 'str',
        'model_name': 'str',
        'roi_enabled': 'bool',
        'roi_polygons': 'list[RoiPolygonForUpdateVideoAnalysisTaskInput]',
        'stream_analysis_enabled': 'bool',
        'task_description': 'str',
        'task_name': 'str',
        'task_prompt': 'str',
        'time_window_in_sec': 'float',
        'uniform_fps': 'float'
    }

    attribute_map = {
        'api_base': 'api_base',
        'api_key': 'api_key',
        'crop_configs': 'crop_configs',
        'crop_enabled': 'crop_enabled',
        'dedup_enabled': 'dedup_enabled',
        'dedup_ratio': 'dedup_ratio',
        'detect_enabled': 'detect_enabled',
        'detect_objects': 'detect_objects',
        'extract_mode': 'extract_mode',
        'model_name': 'model_name',
        'roi_enabled': 'roi_enabled',
        'roi_polygons': 'roi_polygons',
        'stream_analysis_enabled': 'stream_analysis_enabled',
        'task_description': 'task_description',
        'task_name': 'task_name',
        'task_prompt': 'task_prompt',
        'time_window_in_sec': 'time_window_in_sec',
        'uniform_fps': 'uniform_fps'
    }

    def __init__(self, api_base=None, api_key=None, crop_configs=None, crop_enabled=None, dedup_enabled=None, dedup_ratio=None, detect_enabled=None, detect_objects=None, extract_mode=None, model_name=None, roi_enabled=None, roi_polygons=None, stream_analysis_enabled=None, task_description=None, task_name=None, task_prompt=None, time_window_in_sec=None, uniform_fps=None, _configuration=None):  # noqa: E501
        """UpdateVideoAnalysisTaskRequest - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._api_base = None
        self._api_key = None
        self._crop_configs = None
        self._crop_enabled = None
        self._dedup_enabled = None
        self._dedup_ratio = None
        self._detect_enabled = None
        self._detect_objects = None
        self._extract_mode = None
        self._model_name = None
        self._roi_enabled = None
        self._roi_polygons = None
        self._stream_analysis_enabled = None
        self._task_description = None
        self._task_name = None
        self._task_prompt = None
        self._time_window_in_sec = None
        self._uniform_fps = None
        self.discriminator = None

        if api_base is not None:
            self.api_base = api_base
        if api_key is not None:
            self.api_key = api_key
        if crop_configs is not None:
            self.crop_configs = crop_configs
        if crop_enabled is not None:
            self.crop_enabled = crop_enabled
        if dedup_enabled is not None:
            self.dedup_enabled = dedup_enabled
        if dedup_ratio is not None:
            self.dedup_ratio = dedup_ratio
        if detect_enabled is not None:
            self.detect_enabled = detect_enabled
        if detect_objects is not None:
            self.detect_objects = detect_objects
        if extract_mode is not None:
            self.extract_mode = extract_mode
        if model_name is not None:
            self.model_name = model_name
        if roi_enabled is not None:
            self.roi_enabled = roi_enabled
        if roi_polygons is not None:
            self.roi_polygons = roi_polygons
        if stream_analysis_enabled is not None:
            self.stream_analysis_enabled = stream_analysis_enabled
        if task_description is not None:
            self.task_description = task_description
        if task_name is not None:
            self.task_name = task_name
        if task_prompt is not None:
            self.task_prompt = task_prompt
        if time_window_in_sec is not None:
            self.time_window_in_sec = time_window_in_sec
        if uniform_fps is not None:
            self.uniform_fps = uniform_fps

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


        :return: The api_base of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: str
        """
        return self._api_base

    @api_base.setter
    def api_base(self, api_base):
        """Sets the api_base of this UpdateVideoAnalysisTaskRequest.


        :param api_base: The api_base of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: str
        """

        self._api_base = api_base

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


        :return: The api_key of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: str
        """
        return self._api_key

    @api_key.setter
    def api_key(self, api_key):
        """Sets the api_key of this UpdateVideoAnalysisTaskRequest.


        :param api_key: The api_key of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: str
        """

        self._api_key = api_key

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


        :return: The crop_configs of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: list[CropConfigForUpdateVideoAnalysisTaskInput]
        """
        return self._crop_configs

    @crop_configs.setter
    def crop_configs(self, crop_configs):
        """Sets the crop_configs of this UpdateVideoAnalysisTaskRequest.


        :param crop_configs: The crop_configs of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: list[CropConfigForUpdateVideoAnalysisTaskInput]
        """

        self._crop_configs = crop_configs

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


        :return: The crop_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: bool
        """
        return self._crop_enabled

    @crop_enabled.setter
    def crop_enabled(self, crop_enabled):
        """Sets the crop_enabled of this UpdateVideoAnalysisTaskRequest.


        :param crop_enabled: The crop_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: bool
        """

        self._crop_enabled = crop_enabled

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


        :return: The dedup_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: bool
        """
        return self._dedup_enabled

    @dedup_enabled.setter
    def dedup_enabled(self, dedup_enabled):
        """Sets the dedup_enabled of this UpdateVideoAnalysisTaskRequest.


        :param dedup_enabled: The dedup_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: bool
        """

        self._dedup_enabled = dedup_enabled

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


        :return: The dedup_ratio of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: float
        """
        return self._dedup_ratio

    @dedup_ratio.setter
    def dedup_ratio(self, dedup_ratio):
        """Sets the dedup_ratio of this UpdateVideoAnalysisTaskRequest.


        :param dedup_ratio: The dedup_ratio of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: float
        """

        self._dedup_ratio = dedup_ratio

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


        :return: The detect_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: bool
        """
        return self._detect_enabled

    @detect_enabled.setter
    def detect_enabled(self, detect_enabled):
        """Sets the detect_enabled of this UpdateVideoAnalysisTaskRequest.


        :param detect_enabled: The detect_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: bool
        """

        self._detect_enabled = detect_enabled

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


        :return: The detect_objects of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: list[str]
        """
        return self._detect_objects

    @detect_objects.setter
    def detect_objects(self, detect_objects):
        """Sets the detect_objects of this UpdateVideoAnalysisTaskRequest.


        :param detect_objects: The detect_objects of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: list[str]
        """

        self._detect_objects = detect_objects

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


        :return: The extract_mode of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: str
        """
        return self._extract_mode

    @extract_mode.setter
    def extract_mode(self, extract_mode):
        """Sets the extract_mode of this UpdateVideoAnalysisTaskRequest.


        :param extract_mode: The extract_mode of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: str
        """

        self._extract_mode = extract_mode

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


        :return: The model_name of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: str
        """
        return self._model_name

    @model_name.setter
    def model_name(self, model_name):
        """Sets the model_name of this UpdateVideoAnalysisTaskRequest.


        :param model_name: The model_name of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: str
        """

        self._model_name = model_name

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


        :return: The roi_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: bool
        """
        return self._roi_enabled

    @roi_enabled.setter
    def roi_enabled(self, roi_enabled):
        """Sets the roi_enabled of this UpdateVideoAnalysisTaskRequest.


        :param roi_enabled: The roi_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: bool
        """

        self._roi_enabled = roi_enabled

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


        :return: The roi_polygons of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: list[RoiPolygonForUpdateVideoAnalysisTaskInput]
        """
        return self._roi_polygons

    @roi_polygons.setter
    def roi_polygons(self, roi_polygons):
        """Sets the roi_polygons of this UpdateVideoAnalysisTaskRequest.


        :param roi_polygons: The roi_polygons of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: list[RoiPolygonForUpdateVideoAnalysisTaskInput]
        """

        self._roi_polygons = roi_polygons

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


        :return: The stream_analysis_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: bool
        """
        return self._stream_analysis_enabled

    @stream_analysis_enabled.setter
    def stream_analysis_enabled(self, stream_analysis_enabled):
        """Sets the stream_analysis_enabled of this UpdateVideoAnalysisTaskRequest.


        :param stream_analysis_enabled: The stream_analysis_enabled of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: bool
        """

        self._stream_analysis_enabled = stream_analysis_enabled

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


        :return: The task_description of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: str
        """
        return self._task_description

    @task_description.setter
    def task_description(self, task_description):
        """Sets the task_description of this UpdateVideoAnalysisTaskRequest.


        :param task_description: The task_description of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: str
        """

        self._task_description = task_description

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


        :return: The task_name of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: str
        """
        return self._task_name

    @task_name.setter
    def task_name(self, task_name):
        """Sets the task_name of this UpdateVideoAnalysisTaskRequest.


        :param task_name: The task_name of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: str
        """

        self._task_name = task_name

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


        :return: The task_prompt of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: str
        """
        return self._task_prompt

    @task_prompt.setter
    def task_prompt(self, task_prompt):
        """Sets the task_prompt of this UpdateVideoAnalysisTaskRequest.


        :param task_prompt: The task_prompt of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: str
        """

        self._task_prompt = task_prompt

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


        :return: The time_window_in_sec of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: float
        """
        return self._time_window_in_sec

    @time_window_in_sec.setter
    def time_window_in_sec(self, time_window_in_sec):
        """Sets the time_window_in_sec of this UpdateVideoAnalysisTaskRequest.


        :param time_window_in_sec: The time_window_in_sec of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: float
        """

        self._time_window_in_sec = time_window_in_sec

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


        :return: The uniform_fps of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :rtype: float
        """
        return self._uniform_fps

    @uniform_fps.setter
    def uniform_fps(self, uniform_fps):
        """Sets the uniform_fps of this UpdateVideoAnalysisTaskRequest.


        :param uniform_fps: The uniform_fps of this UpdateVideoAnalysisTaskRequest.  # noqa: E501
        :type: float
        """

        self._uniform_fps = uniform_fps

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

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