# coding: utf-8

"""
    Vidispine API

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: 5.x
    Contact: info@vidispine.com
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six
from . import *

class VideoTranscodePresetType(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        'gop_size': 'int',
        'force_cfr': 'bool',
        'display_y_offset': 'RationalType',
        'display_width': 'RationalType',
        'no_video': 'bool',
        'otif': 'OtifPresetType',
        'image_quality': 'int',
        'strip_parameter_sets': 'bool',
        'add_parameter_sets': 'bool',
        'codec': 'str',
        'setting': 'list[KeyValuePairType]',
        'burn_subtitles': 'bool',
        'profile': 'list[str]',
        'display_x_offset': 'RationalType',
        'burn_timecode': 'bool',
        'scaling': 'ScalingType',
        'pixel_format': 'str',
        'preset': 'list[str]',
        'parameter_sets': 'str',
        'bitrate': 'int',
        'max_b_frames': 'int',
        'container_sar': 'AspectRatioType',
        'framerate': 'TimeBaseType',
        'display_height': 'RationalType',
        'resolution': 'ResolutionType'
    }

    attribute_map = {
        'gop_size': 'gopSize',
        'force_cfr': 'forceCFR',
        'display_y_offset': 'displayYOffset',
        'display_width': 'displayWidth',
        'no_video': 'noVideo',
        'otif': 'otif',
        'image_quality': 'imageQuality',
        'strip_parameter_sets': 'stripParameterSets',
        'add_parameter_sets': 'addParameterSets',
        'codec': 'codec',
        'setting': 'setting',
        'burn_subtitles': 'burnSubtitles',
        'profile': 'profile',
        'display_x_offset': 'displayXOffset',
        'burn_timecode': 'burnTimecode',
        'scaling': 'scaling',
        'pixel_format': 'pixelFormat',
        'preset': 'preset',
        'parameter_sets': 'parameterSets',
        'bitrate': 'bitrate',
        'max_b_frames': 'maxBFrames',
        'container_sar': 'containerSAR',
        'framerate': 'framerate',
        'display_height': 'displayHeight',
        'resolution': 'resolution'
    }

    def __init__(self, gop_size=None, force_cfr=None, display_y_offset=None, display_width=None, no_video=None, otif=None, image_quality=None, strip_parameter_sets=None, add_parameter_sets=None, codec=None, setting=None, burn_subtitles=None, profile=None, display_x_offset=None, burn_timecode=None, scaling=None, pixel_format=None, preset=None, parameter_sets=None, bitrate=None, max_b_frames=None, container_sar=None, framerate=None, display_height=None, resolution=None):  # noqa: E501
        """VideoTranscodePresetType - a model defined in OpenAPI"""  # noqa: E501

        self._gop_size = None
        self._force_cfr = None
        self._display_y_offset = None
        self._display_width = None
        self._no_video = None
        self._otif = None
        self._image_quality = None
        self._strip_parameter_sets = None
        self._add_parameter_sets = None
        self._codec = None
        self._setting = None
        self._burn_subtitles = None
        self._profile = None
        self._display_x_offset = None
        self._burn_timecode = None
        self._scaling = None
        self._pixel_format = None
        self._preset = None
        self._parameter_sets = None
        self._bitrate = None
        self._max_b_frames = None
        self._container_sar = None
        self._framerate = None
        self._display_height = None
        self._resolution = None
        self.discriminator = None

        if gop_size is not None:
            self.gop_size = gop_size
        if force_cfr is not None:
            self.force_cfr = force_cfr
        if display_y_offset is not None:
            self.display_y_offset = display_y_offset
        if display_width is not None:
            self.display_width = display_width
        if no_video is not None:
            self.no_video = no_video
        if otif is not None:
            self.otif = otif
        if image_quality is not None:
            self.image_quality = image_quality
        if strip_parameter_sets is not None:
            self.strip_parameter_sets = strip_parameter_sets
        if add_parameter_sets is not None:
            self.add_parameter_sets = add_parameter_sets
        if codec is not None:
            self.codec = codec
        if setting is not None:
            self.setting = setting
        if burn_subtitles is not None:
            self.burn_subtitles = burn_subtitles
        if profile is not None:
            self.profile = profile
        if display_x_offset is not None:
            self.display_x_offset = display_x_offset
        if burn_timecode is not None:
            self.burn_timecode = burn_timecode
        if scaling is not None:
            self.scaling = scaling
        if pixel_format is not None:
            self.pixel_format = pixel_format
        if preset is not None:
            self.preset = preset
        if parameter_sets is not None:
            self.parameter_sets = parameter_sets
        if bitrate is not None:
            self.bitrate = bitrate
        if max_b_frames is not None:
            self.max_b_frames = max_b_frames
        if container_sar is not None:
            self.container_sar = container_sar
        if framerate is not None:
            self.framerate = framerate
        if display_height is not None:
            self.display_height = display_height
        if resolution is not None:
            self.resolution = resolution

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


        :return: The gop_size of this VideoTranscodePresetType.  # noqa: E501
        :rtype: int
        """
        return self._gop_size

    @gop_size.setter
    def gop_size(self, gop_size):
        """Sets the gop_size of this VideoTranscodePresetType.


        :param gop_size: The gop_size of this VideoTranscodePresetType.  # noqa: E501
        :type: int
        """

        self._gop_size = gop_size

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


        :return: The force_cfr of this VideoTranscodePresetType.  # noqa: E501
        :rtype: bool
        """
        return self._force_cfr

    @force_cfr.setter
    def force_cfr(self, force_cfr):
        """Sets the force_cfr of this VideoTranscodePresetType.


        :param force_cfr: The force_cfr of this VideoTranscodePresetType.  # noqa: E501
        :type: bool
        """

        self._force_cfr = force_cfr

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


        :return: The display_y_offset of this VideoTranscodePresetType.  # noqa: E501
        :rtype: RationalType
        """
        return self._display_y_offset

    @display_y_offset.setter
    def display_y_offset(self, display_y_offset):
        """Sets the display_y_offset of this VideoTranscodePresetType.


        :param display_y_offset: The display_y_offset of this VideoTranscodePresetType.  # noqa: E501
        :type: RationalType
        """

        self._display_y_offset = display_y_offset

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


        :return: The display_width of this VideoTranscodePresetType.  # noqa: E501
        :rtype: RationalType
        """
        return self._display_width

    @display_width.setter
    def display_width(self, display_width):
        """Sets the display_width of this VideoTranscodePresetType.


        :param display_width: The display_width of this VideoTranscodePresetType.  # noqa: E501
        :type: RationalType
        """

        self._display_width = display_width

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


        :return: The no_video of this VideoTranscodePresetType.  # noqa: E501
        :rtype: bool
        """
        return self._no_video

    @no_video.setter
    def no_video(self, no_video):
        """Sets the no_video of this VideoTranscodePresetType.


        :param no_video: The no_video of this VideoTranscodePresetType.  # noqa: E501
        :type: bool
        """

        self._no_video = no_video

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


        :return: The otif of this VideoTranscodePresetType.  # noqa: E501
        :rtype: OtifPresetType
        """
        return self._otif

    @otif.setter
    def otif(self, otif):
        """Sets the otif of this VideoTranscodePresetType.


        :param otif: The otif of this VideoTranscodePresetType.  # noqa: E501
        :type: OtifPresetType
        """

        self._otif = otif

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


        :return: The image_quality of this VideoTranscodePresetType.  # noqa: E501
        :rtype: int
        """
        return self._image_quality

    @image_quality.setter
    def image_quality(self, image_quality):
        """Sets the image_quality of this VideoTranscodePresetType.


        :param image_quality: The image_quality of this VideoTranscodePresetType.  # noqa: E501
        :type: int
        """

        self._image_quality = image_quality

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


        :return: The strip_parameter_sets of this VideoTranscodePresetType.  # noqa: E501
        :rtype: bool
        """
        return self._strip_parameter_sets

    @strip_parameter_sets.setter
    def strip_parameter_sets(self, strip_parameter_sets):
        """Sets the strip_parameter_sets of this VideoTranscodePresetType.


        :param strip_parameter_sets: The strip_parameter_sets of this VideoTranscodePresetType.  # noqa: E501
        :type: bool
        """

        self._strip_parameter_sets = strip_parameter_sets

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


        :return: The add_parameter_sets of this VideoTranscodePresetType.  # noqa: E501
        :rtype: bool
        """
        return self._add_parameter_sets

    @add_parameter_sets.setter
    def add_parameter_sets(self, add_parameter_sets):
        """Sets the add_parameter_sets of this VideoTranscodePresetType.


        :param add_parameter_sets: The add_parameter_sets of this VideoTranscodePresetType.  # noqa: E501
        :type: bool
        """

        self._add_parameter_sets = add_parameter_sets

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


        :return: The codec of this VideoTranscodePresetType.  # noqa: E501
        :rtype: str
        """
        return self._codec

    @codec.setter
    def codec(self, codec):
        """Sets the codec of this VideoTranscodePresetType.


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

        self._codec = codec

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


        :return: The setting of this VideoTranscodePresetType.  # noqa: E501
        :rtype: list[KeyValuePairType]
        """
        return self._setting

    @setting.setter
    def setting(self, setting):
        """Sets the setting of this VideoTranscodePresetType.


        :param setting: The setting of this VideoTranscodePresetType.  # noqa: E501
        :type: list[KeyValuePairType]
        """

        self._setting = setting

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


        :return: The burn_subtitles of this VideoTranscodePresetType.  # noqa: E501
        :rtype: bool
        """
        return self._burn_subtitles

    @burn_subtitles.setter
    def burn_subtitles(self, burn_subtitles):
        """Sets the burn_subtitles of this VideoTranscodePresetType.


        :param burn_subtitles: The burn_subtitles of this VideoTranscodePresetType.  # noqa: E501
        :type: bool
        """

        self._burn_subtitles = burn_subtitles

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


        :return: The profile of this VideoTranscodePresetType.  # noqa: E501
        :rtype: list[str]
        """
        return self._profile

    @profile.setter
    def profile(self, profile):
        """Sets the profile of this VideoTranscodePresetType.


        :param profile: The profile of this VideoTranscodePresetType.  # noqa: E501
        :type: list[str]
        """

        self._profile = profile

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


        :return: The display_x_offset of this VideoTranscodePresetType.  # noqa: E501
        :rtype: RationalType
        """
        return self._display_x_offset

    @display_x_offset.setter
    def display_x_offset(self, display_x_offset):
        """Sets the display_x_offset of this VideoTranscodePresetType.


        :param display_x_offset: The display_x_offset of this VideoTranscodePresetType.  # noqa: E501
        :type: RationalType
        """

        self._display_x_offset = display_x_offset

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


        :return: The burn_timecode of this VideoTranscodePresetType.  # noqa: E501
        :rtype: bool
        """
        return self._burn_timecode

    @burn_timecode.setter
    def burn_timecode(self, burn_timecode):
        """Sets the burn_timecode of this VideoTranscodePresetType.


        :param burn_timecode: The burn_timecode of this VideoTranscodePresetType.  # noqa: E501
        :type: bool
        """

        self._burn_timecode = burn_timecode

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


        :return: The scaling of this VideoTranscodePresetType.  # noqa: E501
        :rtype: ScalingType
        """
        return self._scaling

    @scaling.setter
    def scaling(self, scaling):
        """Sets the scaling of this VideoTranscodePresetType.


        :param scaling: The scaling of this VideoTranscodePresetType.  # noqa: E501
        :type: ScalingType
        """

        self._scaling = scaling

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


        :return: The pixel_format of this VideoTranscodePresetType.  # noqa: E501
        :rtype: str
        """
        return self._pixel_format

    @pixel_format.setter
    def pixel_format(self, pixel_format):
        """Sets the pixel_format of this VideoTranscodePresetType.


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

        self._pixel_format = pixel_format

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


        :return: The preset of this VideoTranscodePresetType.  # noqa: E501
        :rtype: list[str]
        """
        return self._preset

    @preset.setter
    def preset(self, preset):
        """Sets the preset of this VideoTranscodePresetType.


        :param preset: The preset of this VideoTranscodePresetType.  # noqa: E501
        :type: list[str]
        """

        self._preset = preset

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


        :return: The parameter_sets of this VideoTranscodePresetType.  # noqa: E501
        :rtype: str
        """
        return self._parameter_sets

    @parameter_sets.setter
    def parameter_sets(self, parameter_sets):
        """Sets the parameter_sets of this VideoTranscodePresetType.


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

        self._parameter_sets = parameter_sets

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


        :return: The bitrate of this VideoTranscodePresetType.  # noqa: E501
        :rtype: int
        """
        return self._bitrate

    @bitrate.setter
    def bitrate(self, bitrate):
        """Sets the bitrate of this VideoTranscodePresetType.


        :param bitrate: The bitrate of this VideoTranscodePresetType.  # noqa: E501
        :type: int
        """

        self._bitrate = bitrate

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


        :return: The max_b_frames of this VideoTranscodePresetType.  # noqa: E501
        :rtype: int
        """
        return self._max_b_frames

    @max_b_frames.setter
    def max_b_frames(self, max_b_frames):
        """Sets the max_b_frames of this VideoTranscodePresetType.


        :param max_b_frames: The max_b_frames of this VideoTranscodePresetType.  # noqa: E501
        :type: int
        """

        self._max_b_frames = max_b_frames

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


        :return: The container_sar of this VideoTranscodePresetType.  # noqa: E501
        :rtype: AspectRatioType
        """
        return self._container_sar

    @container_sar.setter
    def container_sar(self, container_sar):
        """Sets the container_sar of this VideoTranscodePresetType.


        :param container_sar: The container_sar of this VideoTranscodePresetType.  # noqa: E501
        :type: AspectRatioType
        """

        self._container_sar = container_sar

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


        :return: The framerate of this VideoTranscodePresetType.  # noqa: E501
        :rtype: TimeBaseType
        """
        return self._framerate

    @framerate.setter
    def framerate(self, framerate):
        """Sets the framerate of this VideoTranscodePresetType.


        :param framerate: The framerate of this VideoTranscodePresetType.  # noqa: E501
        :type: TimeBaseType
        """

        self._framerate = framerate

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


        :return: The display_height of this VideoTranscodePresetType.  # noqa: E501
        :rtype: RationalType
        """
        return self._display_height

    @display_height.setter
    def display_height(self, display_height):
        """Sets the display_height of this VideoTranscodePresetType.


        :param display_height: The display_height of this VideoTranscodePresetType.  # noqa: E501
        :type: RationalType
        """

        self._display_height = display_height

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


        :return: The resolution of this VideoTranscodePresetType.  # noqa: E501
        :rtype: ResolutionType
        """
        return self._resolution

    @resolution.setter
    def resolution(self, resolution):
        """Sets the resolution of this VideoTranscodePresetType.


        :param resolution: The resolution of this VideoTranscodePresetType.  # noqa: E501
        :type: ResolutionType
        """

        self._resolution = resolution

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

        for attr, _ in six.iteritems(self.openapi_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

        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, VideoTranscodePresetType):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
