# 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 VideoComponentType(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 = {
        'id': 'str',
        'file': 'list[FileType]',
        'metadata': 'list[KeyValuePairType]',
        'number_of_packets': 'int',
        'profile': 'int',
        'item_track': 'str',
        'time_base': 'TimeBaseType',
        'level': 'int',
        'repeat_count': 'int',
        'start_timestamp': 'TimeCodeType',
        'interval': 'TimeIntervalType',
        'pid': 'int',
        'edl': 'EDLType',
        'codec': 'str',
        'extradata': 'str',
        'segment': 'int',
        'duration': 'TimeCodeType',
        'track_order': 'int',
        'essence_stream_id': 'int',
        'bitrate': 'int',
        'drop_frame': 'bool',
        'bit_depth': 'int',
        'colr_primaries': 'int',
        'display_y_offset': 'RationalType',
        'display_width': 'RationalType',
        'color_primaries': 'str',
        'average_frame_rate': 'TimeBaseType',
        'bits_per_pixel': 'int',
        'pixel_aspect_ratio': 'AspectRatioType',
        'start_timecode': 'int',
        'real_base_frame_rate': 'TimeBaseType',
        'field_order': 'str',
        'display_x_offset': 'RationalType',
        'colr_matrix': 'int',
        'media_info': 'VideoMediaInfoType',
        'pixel_format': 'str',
        'codec_time_base': 'TimeBaseType',
        'max_packet_size': 'int',
        'ticks_per_frame': 'int',
        'max_b_frames': 'int',
        'container_sar': 'AspectRatioType',
        'video_standard': 'VideoComponentTypeAllOfVideoStandard',
        'colr_transfer_function': 'int',
        'display_height': 'RationalType',
        'resolution': 'ResolutionType'
    }

    attribute_map = {
        'id': 'id',
        'file': 'file',
        'metadata': 'metadata',
        'number_of_packets': 'numberOfPackets',
        'profile': 'profile',
        'item_track': 'itemTrack',
        'time_base': 'timeBase',
        'level': 'level',
        'repeat_count': 'repeatCount',
        'start_timestamp': 'startTimestamp',
        'interval': 'interval',
        'pid': 'pid',
        'edl': 'edl',
        'codec': 'codec',
        'extradata': 'extradata',
        'segment': 'segment',
        'duration': 'duration',
        'track_order': 'trackOrder',
        'essence_stream_id': 'essenceStreamId',
        'bitrate': 'bitrate',
        'drop_frame': 'dropFrame',
        'bit_depth': 'bitDepth',
        'colr_primaries': 'colr_primaries',
        'display_y_offset': 'displayYOffset',
        'display_width': 'displayWidth',
        'color_primaries': 'colorPrimaries',
        'average_frame_rate': 'averageFrameRate',
        'bits_per_pixel': 'bitsPerPixel',
        'pixel_aspect_ratio': 'pixelAspectRatio',
        'start_timecode': 'startTimecode',
        'real_base_frame_rate': 'realBaseFrameRate',
        'field_order': 'fieldOrder',
        'display_x_offset': 'displayXOffset',
        'colr_matrix': 'colr_matrix',
        'media_info': 'mediaInfo',
        'pixel_format': 'pixelFormat',
        'codec_time_base': 'codecTimeBase',
        'max_packet_size': 'max_packet_size',
        'ticks_per_frame': 'ticks_per_frame',
        'max_b_frames': 'maxBFrames',
        'container_sar': 'containerSAR',
        'video_standard': 'videoStandard',
        'colr_transfer_function': 'colr_transfer_function',
        'display_height': 'displayHeight',
        'resolution': 'resolution'
    }

    def __init__(self, id=None, file=None, metadata=None, number_of_packets=None, profile=None, item_track=None, time_base=None, level=None, repeat_count=None, start_timestamp=None, interval=None, pid=None, edl=None, codec=None, extradata=None, segment=None, duration=None, track_order=None, essence_stream_id=None, bitrate=None, drop_frame=None, bit_depth=None, colr_primaries=None, display_y_offset=None, display_width=None, color_primaries=None, average_frame_rate=None, bits_per_pixel=None, pixel_aspect_ratio=None, start_timecode=None, real_base_frame_rate=None, field_order=None, display_x_offset=None, colr_matrix=None, media_info=None, pixel_format=None, codec_time_base=None, max_packet_size=None, ticks_per_frame=None, max_b_frames=None, container_sar=None, video_standard=None, colr_transfer_function=None, display_height=None, resolution=None):  # noqa: E501
        """VideoComponentType - a model defined in OpenAPI"""  # noqa: E501

        self._id = None
        self._file = None
        self._metadata = None
        self._number_of_packets = None
        self._profile = None
        self._item_track = None
        self._time_base = None
        self._level = None
        self._repeat_count = None
        self._start_timestamp = None
        self._interval = None
        self._pid = None
        self._edl = None
        self._codec = None
        self._extradata = None
        self._segment = None
        self._duration = None
        self._track_order = None
        self._essence_stream_id = None
        self._bitrate = None
        self._drop_frame = None
        self._bit_depth = None
        self._colr_primaries = None
        self._display_y_offset = None
        self._display_width = None
        self._color_primaries = None
        self._average_frame_rate = None
        self._bits_per_pixel = None
        self._pixel_aspect_ratio = None
        self._start_timecode = None
        self._real_base_frame_rate = None
        self._field_order = None
        self._display_x_offset = None
        self._colr_matrix = None
        self._media_info = None
        self._pixel_format = None
        self._codec_time_base = None
        self._max_packet_size = None
        self._ticks_per_frame = None
        self._max_b_frames = None
        self._container_sar = None
        self._video_standard = None
        self._colr_transfer_function = None
        self._display_height = None
        self._resolution = None
        self.discriminator = None

        if id is not None:
            self.id = id
        if file is not None:
            self.file = file
        if metadata is not None:
            self.metadata = metadata
        if number_of_packets is not None:
            self.number_of_packets = number_of_packets
        if profile is not None:
            self.profile = profile
        if item_track is not None:
            self.item_track = item_track
        if time_base is not None:
            self.time_base = time_base
        if level is not None:
            self.level = level
        if repeat_count is not None:
            self.repeat_count = repeat_count
        if start_timestamp is not None:
            self.start_timestamp = start_timestamp
        if interval is not None:
            self.interval = interval
        if pid is not None:
            self.pid = pid
        if edl is not None:
            self.edl = edl
        if codec is not None:
            self.codec = codec
        if extradata is not None:
            self.extradata = extradata
        if segment is not None:
            self.segment = segment
        if duration is not None:
            self.duration = duration
        if track_order is not None:
            self.track_order = track_order
        if essence_stream_id is not None:
            self.essence_stream_id = essence_stream_id
        if bitrate is not None:
            self.bitrate = bitrate
        if drop_frame is not None:
            self.drop_frame = drop_frame
        if bit_depth is not None:
            self.bit_depth = bit_depth
        if colr_primaries is not None:
            self.colr_primaries = colr_primaries
        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 color_primaries is not None:
            self.color_primaries = color_primaries
        if average_frame_rate is not None:
            self.average_frame_rate = average_frame_rate
        if bits_per_pixel is not None:
            self.bits_per_pixel = bits_per_pixel
        if pixel_aspect_ratio is not None:
            self.pixel_aspect_ratio = pixel_aspect_ratio
        if start_timecode is not None:
            self.start_timecode = start_timecode
        if real_base_frame_rate is not None:
            self.real_base_frame_rate = real_base_frame_rate
        if field_order is not None:
            self.field_order = field_order
        if display_x_offset is not None:
            self.display_x_offset = display_x_offset
        if colr_matrix is not None:
            self.colr_matrix = colr_matrix
        if media_info is not None:
            self.media_info = media_info
        if pixel_format is not None:
            self.pixel_format = pixel_format
        if codec_time_base is not None:
            self.codec_time_base = codec_time_base
        if max_packet_size is not None:
            self.max_packet_size = max_packet_size
        if ticks_per_frame is not None:
            self.ticks_per_frame = ticks_per_frame
        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 video_standard is not None:
            self.video_standard = video_standard
        if colr_transfer_function is not None:
            self.colr_transfer_function = colr_transfer_function
        if display_height is not None:
            self.display_height = display_height
        if resolution is not None:
            self.resolution = resolution

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


        :return: The id of this VideoComponentType.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this VideoComponentType.


        :param id: The id of this VideoComponentType.  # noqa: E501
        :type: str
        """
        if id is not None and not re.search(r'([_A-Za-z]+-)?([A-Za-z_][A-Za-z0-9_]*-|(([A-Za-z_][A-Za-z0-9_]*)?\*))([0-9]{1}[0-9]{0,31})', id):  # noqa: E501
            raise ValueError(r"Invalid value for `id`, must be a follow pattern or equal to `/([_A-Za-z]+-)?([A-Za-z_][A-Za-z0-9_]*-|(([A-Za-z_][A-Za-z0-9_]*)?\*))([0-9]{1}[0-9]{0,31})/`")  # noqa: E501

        self._id = id

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


        :return: The file of this VideoComponentType.  # noqa: E501
        :rtype: list[FileType]
        """
        return self._file

    @file.setter
    def file(self, file):
        """Sets the file of this VideoComponentType.


        :param file: The file of this VideoComponentType.  # noqa: E501
        :type: list[FileType]
        """

        self._file = file

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


        :return: The metadata of this VideoComponentType.  # noqa: E501
        :rtype: list[KeyValuePairType]
        """
        return self._metadata

    @metadata.setter
    def metadata(self, metadata):
        """Sets the metadata of this VideoComponentType.


        :param metadata: The metadata of this VideoComponentType.  # noqa: E501
        :type: list[KeyValuePairType]
        """

        self._metadata = metadata

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


        :return: The number_of_packets of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._number_of_packets

    @number_of_packets.setter
    def number_of_packets(self, number_of_packets):
        """Sets the number_of_packets of this VideoComponentType.


        :param number_of_packets: The number_of_packets of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._number_of_packets = number_of_packets

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


        :return: The profile of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._profile

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


        :param profile: The profile of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._profile = profile

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


        :return: The item_track of this VideoComponentType.  # noqa: E501
        :rtype: str
        """
        return self._item_track

    @item_track.setter
    def item_track(self, item_track):
        """Sets the item_track of this VideoComponentType.


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

        self._item_track = item_track

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


        :return: The time_base of this VideoComponentType.  # noqa: E501
        :rtype: TimeBaseType
        """
        return self._time_base

    @time_base.setter
    def time_base(self, time_base):
        """Sets the time_base of this VideoComponentType.


        :param time_base: The time_base of this VideoComponentType.  # noqa: E501
        :type: TimeBaseType
        """

        self._time_base = time_base

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


        :return: The level of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._level

    @level.setter
    def level(self, level):
        """Sets the level of this VideoComponentType.


        :param level: The level of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._level = level

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


        :return: The repeat_count of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._repeat_count

    @repeat_count.setter
    def repeat_count(self, repeat_count):
        """Sets the repeat_count of this VideoComponentType.


        :param repeat_count: The repeat_count of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._repeat_count = repeat_count

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


        :return: The start_timestamp of this VideoComponentType.  # noqa: E501
        :rtype: TimeCodeType
        """
        return self._start_timestamp

    @start_timestamp.setter
    def start_timestamp(self, start_timestamp):
        """Sets the start_timestamp of this VideoComponentType.


        :param start_timestamp: The start_timestamp of this VideoComponentType.  # noqa: E501
        :type: TimeCodeType
        """

        self._start_timestamp = start_timestamp

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


        :return: The interval of this VideoComponentType.  # noqa: E501
        :rtype: TimeIntervalType
        """
        return self._interval

    @interval.setter
    def interval(self, interval):
        """Sets the interval of this VideoComponentType.


        :param interval: The interval of this VideoComponentType.  # noqa: E501
        :type: TimeIntervalType
        """

        self._interval = interval

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


        :return: The pid of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._pid

    @pid.setter
    def pid(self, pid):
        """Sets the pid of this VideoComponentType.


        :param pid: The pid of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._pid = pid

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


        :return: The edl of this VideoComponentType.  # noqa: E501
        :rtype: EDLType
        """
        return self._edl

    @edl.setter
    def edl(self, edl):
        """Sets the edl of this VideoComponentType.


        :param edl: The edl of this VideoComponentType.  # noqa: E501
        :type: EDLType
        """

        self._edl = edl

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


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

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


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

        self._codec = codec

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


        :return: The extradata of this VideoComponentType.  # noqa: E501
        :rtype: str
        """
        return self._extradata

    @extradata.setter
    def extradata(self, extradata):
        """Sets the extradata of this VideoComponentType.


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

        self._extradata = extradata

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


        :return: The segment of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._segment

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


        :param segment: The segment of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._segment = segment

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


        :return: The duration of this VideoComponentType.  # noqa: E501
        :rtype: TimeCodeType
        """
        return self._duration

    @duration.setter
    def duration(self, duration):
        """Sets the duration of this VideoComponentType.


        :param duration: The duration of this VideoComponentType.  # noqa: E501
        :type: TimeCodeType
        """

        self._duration = duration

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


        :return: The track_order of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._track_order

    @track_order.setter
    def track_order(self, track_order):
        """Sets the track_order of this VideoComponentType.


        :param track_order: The track_order of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._track_order = track_order

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


        :return: The essence_stream_id of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._essence_stream_id

    @essence_stream_id.setter
    def essence_stream_id(self, essence_stream_id):
        """Sets the essence_stream_id of this VideoComponentType.


        :param essence_stream_id: The essence_stream_id of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._essence_stream_id = essence_stream_id

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


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

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


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

        self._bitrate = bitrate

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


        :return: The drop_frame of this VideoComponentType.  # noqa: E501
        :rtype: bool
        """
        return self._drop_frame

    @drop_frame.setter
    def drop_frame(self, drop_frame):
        """Sets the drop_frame of this VideoComponentType.


        :param drop_frame: The drop_frame of this VideoComponentType.  # noqa: E501
        :type: bool
        """

        self._drop_frame = drop_frame

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


        :return: The bit_depth of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._bit_depth

    @bit_depth.setter
    def bit_depth(self, bit_depth):
        """Sets the bit_depth of this VideoComponentType.


        :param bit_depth: The bit_depth of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._bit_depth = bit_depth

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


        :return: The colr_primaries of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._colr_primaries

    @colr_primaries.setter
    def colr_primaries(self, colr_primaries):
        """Sets the colr_primaries of this VideoComponentType.


        :param colr_primaries: The colr_primaries of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._colr_primaries = colr_primaries

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


        :return: The display_y_offset of this VideoComponentType.  # 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 VideoComponentType.


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

        self._display_y_offset = display_y_offset

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


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

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


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

        self._display_width = display_width

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


        :return: The color_primaries of this VideoComponentType.  # noqa: E501
        :rtype: str
        """
        return self._color_primaries

    @color_primaries.setter
    def color_primaries(self, color_primaries):
        """Sets the color_primaries of this VideoComponentType.


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

        self._color_primaries = color_primaries

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


        :return: The average_frame_rate of this VideoComponentType.  # noqa: E501
        :rtype: TimeBaseType
        """
        return self._average_frame_rate

    @average_frame_rate.setter
    def average_frame_rate(self, average_frame_rate):
        """Sets the average_frame_rate of this VideoComponentType.


        :param average_frame_rate: The average_frame_rate of this VideoComponentType.  # noqa: E501
        :type: TimeBaseType
        """

        self._average_frame_rate = average_frame_rate

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


        :return: The bits_per_pixel of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._bits_per_pixel

    @bits_per_pixel.setter
    def bits_per_pixel(self, bits_per_pixel):
        """Sets the bits_per_pixel of this VideoComponentType.


        :param bits_per_pixel: The bits_per_pixel of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._bits_per_pixel = bits_per_pixel

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


        :return: The pixel_aspect_ratio of this VideoComponentType.  # noqa: E501
        :rtype: AspectRatioType
        """
        return self._pixel_aspect_ratio

    @pixel_aspect_ratio.setter
    def pixel_aspect_ratio(self, pixel_aspect_ratio):
        """Sets the pixel_aspect_ratio of this VideoComponentType.


        :param pixel_aspect_ratio: The pixel_aspect_ratio of this VideoComponentType.  # noqa: E501
        :type: AspectRatioType
        """

        self._pixel_aspect_ratio = pixel_aspect_ratio

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


        :return: The start_timecode of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._start_timecode

    @start_timecode.setter
    def start_timecode(self, start_timecode):
        """Sets the start_timecode of this VideoComponentType.


        :param start_timecode: The start_timecode of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._start_timecode = start_timecode

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


        :return: The real_base_frame_rate of this VideoComponentType.  # noqa: E501
        :rtype: TimeBaseType
        """
        return self._real_base_frame_rate

    @real_base_frame_rate.setter
    def real_base_frame_rate(self, real_base_frame_rate):
        """Sets the real_base_frame_rate of this VideoComponentType.


        :param real_base_frame_rate: The real_base_frame_rate of this VideoComponentType.  # noqa: E501
        :type: TimeBaseType
        """

        self._real_base_frame_rate = real_base_frame_rate

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


        :return: The field_order of this VideoComponentType.  # noqa: E501
        :rtype: str
        """
        return self._field_order

    @field_order.setter
    def field_order(self, field_order):
        """Sets the field_order of this VideoComponentType.


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

        self._field_order = field_order

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


        :return: The display_x_offset of this VideoComponentType.  # 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 VideoComponentType.


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

        self._display_x_offset = display_x_offset

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


        :return: The colr_matrix of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._colr_matrix

    @colr_matrix.setter
    def colr_matrix(self, colr_matrix):
        """Sets the colr_matrix of this VideoComponentType.


        :param colr_matrix: The colr_matrix of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._colr_matrix = colr_matrix

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


        :return: The media_info of this VideoComponentType.  # noqa: E501
        :rtype: VideoMediaInfoType
        """
        return self._media_info

    @media_info.setter
    def media_info(self, media_info):
        """Sets the media_info of this VideoComponentType.


        :param media_info: The media_info of this VideoComponentType.  # noqa: E501
        :type: VideoMediaInfoType
        """

        self._media_info = media_info

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


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

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


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

        self._pixel_format = pixel_format

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


        :return: The codec_time_base of this VideoComponentType.  # noqa: E501
        :rtype: TimeBaseType
        """
        return self._codec_time_base

    @codec_time_base.setter
    def codec_time_base(self, codec_time_base):
        """Sets the codec_time_base of this VideoComponentType.


        :param codec_time_base: The codec_time_base of this VideoComponentType.  # noqa: E501
        :type: TimeBaseType
        """

        self._codec_time_base = codec_time_base

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


        :return: The max_packet_size of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._max_packet_size

    @max_packet_size.setter
    def max_packet_size(self, max_packet_size):
        """Sets the max_packet_size of this VideoComponentType.


        :param max_packet_size: The max_packet_size of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._max_packet_size = max_packet_size

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


        :return: The ticks_per_frame of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._ticks_per_frame

    @ticks_per_frame.setter
    def ticks_per_frame(self, ticks_per_frame):
        """Sets the ticks_per_frame of this VideoComponentType.


        :param ticks_per_frame: The ticks_per_frame of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._ticks_per_frame = ticks_per_frame

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


        :return: The max_b_frames of this VideoComponentType.  # 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 VideoComponentType.


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

        self._max_b_frames = max_b_frames

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


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

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


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

        self._container_sar = container_sar

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


        :return: The video_standard of this VideoComponentType.  # noqa: E501
        :rtype: VideoComponentTypeAllOfVideoStandard
        """
        return self._video_standard

    @video_standard.setter
    def video_standard(self, video_standard):
        """Sets the video_standard of this VideoComponentType.


        :param video_standard: The video_standard of this VideoComponentType.  # noqa: E501
        :type: VideoComponentTypeAllOfVideoStandard
        """

        self._video_standard = video_standard

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


        :return: The colr_transfer_function of this VideoComponentType.  # noqa: E501
        :rtype: int
        """
        return self._colr_transfer_function

    @colr_transfer_function.setter
    def colr_transfer_function(self, colr_transfer_function):
        """Sets the colr_transfer_function of this VideoComponentType.


        :param colr_transfer_function: The colr_transfer_function of this VideoComponentType.  # noqa: E501
        :type: int
        """

        self._colr_transfer_function = colr_transfer_function

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


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

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


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

        self._display_height = display_height

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


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

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


        :param resolution: The resolution of this VideoComponentType.  # 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, VideoComponentType):
            return False

        return self.__dict__ == other.__dict__

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