# coding: utf-8

"""
    vod20250101

    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 TaskForStartExecutionInput(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 = {
        'abr_transcode': 'ABRTranscodeForStartExecutionInput',
        'ad_audit': 'AdAuditForStartExecutionInput',
        'asr': 'AsrForStartExecutionInput',
        'audio_extract': 'AudioExtractForStartExecutionInput',
        'convert_format': 'ConvertFormatForStartExecutionInput',
        'enhance': 'EnhanceForStartExecutionInput',
        'erase': 'EraseForStartExecutionInput',
        'file_delete': 'FileDeleteForStartExecutionInput',
        'highlight': 'HighlightForStartExecutionInput',
        'ocr': 'OcrForStartExecutionInput',
        'segment': 'ConvertSegmentForStartExecutionInput',
        'storyline': 'StorylineForStartExecutionInput',
        'strategy_tag': 'str',
        'transcode': 'TranscodeForStartExecutionInput',
        'type': 'str',
        'video_generation': 'VideoGenerationForStartExecutionInput',
        'video_matting': 'VideoMattingForStartExecutionInput',
        'video_summary': 'VideoSummaryForStartExecutionInput',
        'video_understanding': 'VideoUnderstandingForStartExecutionInput',
        'vision': 'VisionForStartExecutionInput'
    }

    attribute_map = {
        'abr_transcode': 'ABRTranscode',
        'ad_audit': 'AdAudit',
        'asr': 'Asr',
        'audio_extract': 'AudioExtract',
        'convert_format': 'ConvertFormat',
        'enhance': 'Enhance',
        'erase': 'Erase',
        'file_delete': 'FileDelete',
        'highlight': 'Highlight',
        'ocr': 'Ocr',
        'segment': 'Segment',
        'storyline': 'Storyline',
        'strategy_tag': 'StrategyTag',
        'transcode': 'Transcode',
        'type': 'Type',
        'video_generation': 'VideoGeneration',
        'video_matting': 'VideoMatting',
        'video_summary': 'VideoSummary',
        'video_understanding': 'VideoUnderstanding',
        'vision': 'Vision'
    }

    def __init__(self, abr_transcode=None, ad_audit=None, asr=None, audio_extract=None, convert_format=None, enhance=None, erase=None, file_delete=None, highlight=None, ocr=None, segment=None, storyline=None, strategy_tag=None, transcode=None, type=None, video_generation=None, video_matting=None, video_summary=None, video_understanding=None, vision=None, _configuration=None):  # noqa: E501
        """TaskForStartExecutionInput - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._abr_transcode = None
        self._ad_audit = None
        self._asr = None
        self._audio_extract = None
        self._convert_format = None
        self._enhance = None
        self._erase = None
        self._file_delete = None
        self._highlight = None
        self._ocr = None
        self._segment = None
        self._storyline = None
        self._strategy_tag = None
        self._transcode = None
        self._type = None
        self._video_generation = None
        self._video_matting = None
        self._video_summary = None
        self._video_understanding = None
        self._vision = None
        self.discriminator = None

        if abr_transcode is not None:
            self.abr_transcode = abr_transcode
        if ad_audit is not None:
            self.ad_audit = ad_audit
        if asr is not None:
            self.asr = asr
        if audio_extract is not None:
            self.audio_extract = audio_extract
        if convert_format is not None:
            self.convert_format = convert_format
        if enhance is not None:
            self.enhance = enhance
        if erase is not None:
            self.erase = erase
        if file_delete is not None:
            self.file_delete = file_delete
        if highlight is not None:
            self.highlight = highlight
        if ocr is not None:
            self.ocr = ocr
        if segment is not None:
            self.segment = segment
        if storyline is not None:
            self.storyline = storyline
        if strategy_tag is not None:
            self.strategy_tag = strategy_tag
        if transcode is not None:
            self.transcode = transcode
        if type is not None:
            self.type = type
        if video_generation is not None:
            self.video_generation = video_generation
        if video_matting is not None:
            self.video_matting = video_matting
        if video_summary is not None:
            self.video_summary = video_summary
        if video_understanding is not None:
            self.video_understanding = video_understanding
        if vision is not None:
            self.vision = vision

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


        :return: The abr_transcode of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: ABRTranscodeForStartExecutionInput
        """
        return self._abr_transcode

    @abr_transcode.setter
    def abr_transcode(self, abr_transcode):
        """Sets the abr_transcode of this TaskForStartExecutionInput.


        :param abr_transcode: The abr_transcode of this TaskForStartExecutionInput.  # noqa: E501
        :type: ABRTranscodeForStartExecutionInput
        """

        self._abr_transcode = abr_transcode

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


        :return: The ad_audit of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: AdAuditForStartExecutionInput
        """
        return self._ad_audit

    @ad_audit.setter
    def ad_audit(self, ad_audit):
        """Sets the ad_audit of this TaskForStartExecutionInput.


        :param ad_audit: The ad_audit of this TaskForStartExecutionInput.  # noqa: E501
        :type: AdAuditForStartExecutionInput
        """

        self._ad_audit = ad_audit

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


        :return: The asr of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: AsrForStartExecutionInput
        """
        return self._asr

    @asr.setter
    def asr(self, asr):
        """Sets the asr of this TaskForStartExecutionInput.


        :param asr: The asr of this TaskForStartExecutionInput.  # noqa: E501
        :type: AsrForStartExecutionInput
        """

        self._asr = asr

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


        :return: The audio_extract of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: AudioExtractForStartExecutionInput
        """
        return self._audio_extract

    @audio_extract.setter
    def audio_extract(self, audio_extract):
        """Sets the audio_extract of this TaskForStartExecutionInput.


        :param audio_extract: The audio_extract of this TaskForStartExecutionInput.  # noqa: E501
        :type: AudioExtractForStartExecutionInput
        """

        self._audio_extract = audio_extract

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


        :return: The convert_format of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: ConvertFormatForStartExecutionInput
        """
        return self._convert_format

    @convert_format.setter
    def convert_format(self, convert_format):
        """Sets the convert_format of this TaskForStartExecutionInput.


        :param convert_format: The convert_format of this TaskForStartExecutionInput.  # noqa: E501
        :type: ConvertFormatForStartExecutionInput
        """

        self._convert_format = convert_format

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


        :return: The enhance of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: EnhanceForStartExecutionInput
        """
        return self._enhance

    @enhance.setter
    def enhance(self, enhance):
        """Sets the enhance of this TaskForStartExecutionInput.


        :param enhance: The enhance of this TaskForStartExecutionInput.  # noqa: E501
        :type: EnhanceForStartExecutionInput
        """

        self._enhance = enhance

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


        :return: The erase of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: EraseForStartExecutionInput
        """
        return self._erase

    @erase.setter
    def erase(self, erase):
        """Sets the erase of this TaskForStartExecutionInput.


        :param erase: The erase of this TaskForStartExecutionInput.  # noqa: E501
        :type: EraseForStartExecutionInput
        """

        self._erase = erase

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


        :return: The file_delete of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: FileDeleteForStartExecutionInput
        """
        return self._file_delete

    @file_delete.setter
    def file_delete(self, file_delete):
        """Sets the file_delete of this TaskForStartExecutionInput.


        :param file_delete: The file_delete of this TaskForStartExecutionInput.  # noqa: E501
        :type: FileDeleteForStartExecutionInput
        """

        self._file_delete = file_delete

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


        :return: The highlight of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: HighlightForStartExecutionInput
        """
        return self._highlight

    @highlight.setter
    def highlight(self, highlight):
        """Sets the highlight of this TaskForStartExecutionInput.


        :param highlight: The highlight of this TaskForStartExecutionInput.  # noqa: E501
        :type: HighlightForStartExecutionInput
        """

        self._highlight = highlight

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


        :return: The ocr of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: OcrForStartExecutionInput
        """
        return self._ocr

    @ocr.setter
    def ocr(self, ocr):
        """Sets the ocr of this TaskForStartExecutionInput.


        :param ocr: The ocr of this TaskForStartExecutionInput.  # noqa: E501
        :type: OcrForStartExecutionInput
        """

        self._ocr = ocr

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


        :return: The segment of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: ConvertSegmentForStartExecutionInput
        """
        return self._segment

    @segment.setter
    def segment(self, segment):
        """Sets the segment of this TaskForStartExecutionInput.


        :param segment: The segment of this TaskForStartExecutionInput.  # noqa: E501
        :type: ConvertSegmentForStartExecutionInput
        """

        self._segment = segment

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


        :return: The storyline of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: StorylineForStartExecutionInput
        """
        return self._storyline

    @storyline.setter
    def storyline(self, storyline):
        """Sets the storyline of this TaskForStartExecutionInput.


        :param storyline: The storyline of this TaskForStartExecutionInput.  # noqa: E501
        :type: StorylineForStartExecutionInput
        """

        self._storyline = storyline

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


        :return: The strategy_tag of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: str
        """
        return self._strategy_tag

    @strategy_tag.setter
    def strategy_tag(self, strategy_tag):
        """Sets the strategy_tag of this TaskForStartExecutionInput.


        :param strategy_tag: The strategy_tag of this TaskForStartExecutionInput.  # noqa: E501
        :type: str
        """

        self._strategy_tag = strategy_tag

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


        :return: The transcode of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: TranscodeForStartExecutionInput
        """
        return self._transcode

    @transcode.setter
    def transcode(self, transcode):
        """Sets the transcode of this TaskForStartExecutionInput.


        :param transcode: The transcode of this TaskForStartExecutionInput.  # noqa: E501
        :type: TranscodeForStartExecutionInput
        """

        self._transcode = transcode

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


        :return: The type of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: str
        """
        return self._type

    @type.setter
    def type(self, type):
        """Sets the type of this TaskForStartExecutionInput.


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

        self._type = type

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


        :return: The video_generation of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: VideoGenerationForStartExecutionInput
        """
        return self._video_generation

    @video_generation.setter
    def video_generation(self, video_generation):
        """Sets the video_generation of this TaskForStartExecutionInput.


        :param video_generation: The video_generation of this TaskForStartExecutionInput.  # noqa: E501
        :type: VideoGenerationForStartExecutionInput
        """

        self._video_generation = video_generation

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


        :return: The video_matting of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: VideoMattingForStartExecutionInput
        """
        return self._video_matting

    @video_matting.setter
    def video_matting(self, video_matting):
        """Sets the video_matting of this TaskForStartExecutionInput.


        :param video_matting: The video_matting of this TaskForStartExecutionInput.  # noqa: E501
        :type: VideoMattingForStartExecutionInput
        """

        self._video_matting = video_matting

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


        :return: The video_summary of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: VideoSummaryForStartExecutionInput
        """
        return self._video_summary

    @video_summary.setter
    def video_summary(self, video_summary):
        """Sets the video_summary of this TaskForStartExecutionInput.


        :param video_summary: The video_summary of this TaskForStartExecutionInput.  # noqa: E501
        :type: VideoSummaryForStartExecutionInput
        """

        self._video_summary = video_summary

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


        :return: The video_understanding of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: VideoUnderstandingForStartExecutionInput
        """
        return self._video_understanding

    @video_understanding.setter
    def video_understanding(self, video_understanding):
        """Sets the video_understanding of this TaskForStartExecutionInput.


        :param video_understanding: The video_understanding of this TaskForStartExecutionInput.  # noqa: E501
        :type: VideoUnderstandingForStartExecutionInput
        """

        self._video_understanding = video_understanding

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


        :return: The vision of this TaskForStartExecutionInput.  # noqa: E501
        :rtype: VisionForStartExecutionInput
        """
        return self._vision

    @vision.setter
    def vision(self, vision):
        """Sets the vision of this TaskForStartExecutionInput.


        :param vision: The vision of this TaskForStartExecutionInput.  # noqa: E501
        :type: VisionForStartExecutionInput
        """

        self._vision = vision

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

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