# 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 TaskForGetExecutionOutput(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': 'ABRTranscodeForGetExecutionOutput',
        'ad_audit': 'AdAuditForGetExecutionOutput',
        'asr': 'AsrForGetExecutionOutput',
        'audio_extract': 'AudioExtractForGetExecutionOutput',
        'convert_format': 'ConvertFormatForGetExecutionOutput',
        'enhance': 'EnhanceForGetExecutionOutput',
        'erase': 'EraseForGetExecutionOutput',
        'file_delete': 'FileDeleteForGetExecutionOutput',
        'highlight': 'HighlightForGetExecutionOutput',
        'ocr': 'OcrForGetExecutionOutput',
        'segment': 'ConvertSegmentForGetExecutionOutput',
        'storyline': 'StorylineForGetExecutionOutput',
        'strategy_tag': 'str',
        'transcode': 'TranscodeForGetExecutionOutput',
        'type': 'str',
        'video_generation': 'VideoGenerationForGetExecutionOutput',
        'video_matting': 'VideoMattingForGetExecutionOutput',
        'video_summary': 'VideoSummaryForGetExecutionOutput',
        'video_understanding': 'VideoUnderstandingForGetExecutionOutput',
        'vision': 'VisionForGetExecutionOutput'
    }

    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
        """TaskForGetExecutionOutput - 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 TaskForGetExecutionOutput.  # noqa: E501


        :return: The abr_transcode of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: ABRTranscodeForGetExecutionOutput
        """
        return self._abr_transcode

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


        :param abr_transcode: The abr_transcode of this TaskForGetExecutionOutput.  # noqa: E501
        :type: ABRTranscodeForGetExecutionOutput
        """

        self._abr_transcode = abr_transcode

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


        :return: The ad_audit of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: AdAuditForGetExecutionOutput
        """
        return self._ad_audit

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


        :param ad_audit: The ad_audit of this TaskForGetExecutionOutput.  # noqa: E501
        :type: AdAuditForGetExecutionOutput
        """

        self._ad_audit = ad_audit

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


        :return: The asr of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: AsrForGetExecutionOutput
        """
        return self._asr

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


        :param asr: The asr of this TaskForGetExecutionOutput.  # noqa: E501
        :type: AsrForGetExecutionOutput
        """

        self._asr = asr

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


        :return: The audio_extract of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: AudioExtractForGetExecutionOutput
        """
        return self._audio_extract

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


        :param audio_extract: The audio_extract of this TaskForGetExecutionOutput.  # noqa: E501
        :type: AudioExtractForGetExecutionOutput
        """

        self._audio_extract = audio_extract

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


        :return: The convert_format of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: ConvertFormatForGetExecutionOutput
        """
        return self._convert_format

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


        :param convert_format: The convert_format of this TaskForGetExecutionOutput.  # noqa: E501
        :type: ConvertFormatForGetExecutionOutput
        """

        self._convert_format = convert_format

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


        :return: The enhance of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: EnhanceForGetExecutionOutput
        """
        return self._enhance

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


        :param enhance: The enhance of this TaskForGetExecutionOutput.  # noqa: E501
        :type: EnhanceForGetExecutionOutput
        """

        self._enhance = enhance

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


        :return: The erase of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: EraseForGetExecutionOutput
        """
        return self._erase

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


        :param erase: The erase of this TaskForGetExecutionOutput.  # noqa: E501
        :type: EraseForGetExecutionOutput
        """

        self._erase = erase

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


        :return: The file_delete of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: FileDeleteForGetExecutionOutput
        """
        return self._file_delete

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


        :param file_delete: The file_delete of this TaskForGetExecutionOutput.  # noqa: E501
        :type: FileDeleteForGetExecutionOutput
        """

        self._file_delete = file_delete

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


        :return: The highlight of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: HighlightForGetExecutionOutput
        """
        return self._highlight

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


        :param highlight: The highlight of this TaskForGetExecutionOutput.  # noqa: E501
        :type: HighlightForGetExecutionOutput
        """

        self._highlight = highlight

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


        :return: The ocr of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: OcrForGetExecutionOutput
        """
        return self._ocr

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


        :param ocr: The ocr of this TaskForGetExecutionOutput.  # noqa: E501
        :type: OcrForGetExecutionOutput
        """

        self._ocr = ocr

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


        :return: The segment of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: ConvertSegmentForGetExecutionOutput
        """
        return self._segment

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


        :param segment: The segment of this TaskForGetExecutionOutput.  # noqa: E501
        :type: ConvertSegmentForGetExecutionOutput
        """

        self._segment = segment

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


        :return: The storyline of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: StorylineForGetExecutionOutput
        """
        return self._storyline

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


        :param storyline: The storyline of this TaskForGetExecutionOutput.  # noqa: E501
        :type: StorylineForGetExecutionOutput
        """

        self._storyline = storyline

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


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

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


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

        self._strategy_tag = strategy_tag

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


        :return: The transcode of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: TranscodeForGetExecutionOutput
        """
        return self._transcode

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


        :param transcode: The transcode of this TaskForGetExecutionOutput.  # noqa: E501
        :type: TranscodeForGetExecutionOutput
        """

        self._transcode = transcode

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


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

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


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

        self._type = type

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


        :return: The video_generation of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: VideoGenerationForGetExecutionOutput
        """
        return self._video_generation

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


        :param video_generation: The video_generation of this TaskForGetExecutionOutput.  # noqa: E501
        :type: VideoGenerationForGetExecutionOutput
        """

        self._video_generation = video_generation

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


        :return: The video_matting of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: VideoMattingForGetExecutionOutput
        """
        return self._video_matting

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


        :param video_matting: The video_matting of this TaskForGetExecutionOutput.  # noqa: E501
        :type: VideoMattingForGetExecutionOutput
        """

        self._video_matting = video_matting

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


        :return: The video_summary of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: VideoSummaryForGetExecutionOutput
        """
        return self._video_summary

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


        :param video_summary: The video_summary of this TaskForGetExecutionOutput.  # noqa: E501
        :type: VideoSummaryForGetExecutionOutput
        """

        self._video_summary = video_summary

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


        :return: The video_understanding of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: VideoUnderstandingForGetExecutionOutput
        """
        return self._video_understanding

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


        :param video_understanding: The video_understanding of this TaskForGetExecutionOutput.  # noqa: E501
        :type: VideoUnderstandingForGetExecutionOutput
        """

        self._video_understanding = video_understanding

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


        :return: The vision of this TaskForGetExecutionOutput.  # noqa: E501
        :rtype: VisionForGetExecutionOutput
        """
        return self._vision

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


        :param vision: The vision of this TaskForGetExecutionOutput.  # noqa: E501
        :type: VisionForGetExecutionOutput
        """

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

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