# coding: utf-8
from enum import Enum
from six import string_types, iteritems
from bitmovin_api_sdk.common.poscheck import poscheck_model
from bitmovin_api_sdk.models.encoding_mode import EncodingMode
from bitmovin_api_sdk.models.manifest_generator import ManifestGenerator
from bitmovin_api_sdk.models.per_title import PerTitle
from bitmovin_api_sdk.models.scheduling import Scheduling
from bitmovin_api_sdk.models.trimming import Trimming
from bitmovin_api_sdk.models.tweaks import Tweaks
import pprint
import six
[docs]class StartEncodingRequest(object):
@poscheck_model
def __init__(self,
trimming=None,
scheduling=None,
tweaks=None,
handle_variable_input_fps=None,
encoding_mode=None,
preview_dash_manifests=None,
preview_hls_manifests=None,
vod_dash_manifests=None,
vod_hls_manifests=None,
vod_smooth_manifests=None,
manifest_generator=None,
per_title=None):
# type: (Trimming, Scheduling, Tweaks, bool, EncodingMode, list[ManifestResource], list[ManifestResource], list[ManifestResource], list[ManifestResource], list[ManifestResource], ManifestGenerator, PerTitle) -> None
self._trimming = None
self._scheduling = None
self._tweaks = None
self._handle_variable_input_fps = None
self._encoding_mode = None
self._preview_dash_manifests = list()
self._preview_hls_manifests = list()
self._vod_dash_manifests = list()
self._vod_hls_manifests = list()
self._vod_smooth_manifests = list()
self._manifest_generator = None
self._per_title = None
self.discriminator = None
if trimming is not None:
self.trimming = trimming
if scheduling is not None:
self.scheduling = scheduling
if tweaks is not None:
self.tweaks = tweaks
if handle_variable_input_fps is not None:
self.handle_variable_input_fps = handle_variable_input_fps
if encoding_mode is not None:
self.encoding_mode = encoding_mode
if preview_dash_manifests is not None:
self.preview_dash_manifests = preview_dash_manifests
if preview_hls_manifests is not None:
self.preview_hls_manifests = preview_hls_manifests
if vod_dash_manifests is not None:
self.vod_dash_manifests = vod_dash_manifests
if vod_hls_manifests is not None:
self.vod_hls_manifests = vod_hls_manifests
if vod_smooth_manifests is not None:
self.vod_smooth_manifests = vod_smooth_manifests
if manifest_generator is not None:
self.manifest_generator = manifest_generator
if per_title is not None:
self.per_title = per_title
@property
def openapi_types(self):
types = {
'trimming': 'Trimming',
'scheduling': 'Scheduling',
'tweaks': 'Tweaks',
'handle_variable_input_fps': 'bool',
'encoding_mode': 'EncodingMode',
'preview_dash_manifests': 'list[ManifestResource]',
'preview_hls_manifests': 'list[ManifestResource]',
'vod_dash_manifests': 'list[ManifestResource]',
'vod_hls_manifests': 'list[ManifestResource]',
'vod_smooth_manifests': 'list[ManifestResource]',
'manifest_generator': 'ManifestGenerator',
'per_title': 'PerTitle'
}
return types
@property
def attribute_map(self):
attributes = {
'trimming': 'trimming',
'scheduling': 'scheduling',
'tweaks': 'tweaks',
'handle_variable_input_fps': 'handleVariableInputFps',
'encoding_mode': 'encodingMode',
'preview_dash_manifests': 'previewDashManifests',
'preview_hls_manifests': 'previewHlsManifests',
'vod_dash_manifests': 'vodDashManifests',
'vod_hls_manifests': 'vodHlsManifests',
'vod_smooth_manifests': 'vodSmoothManifests',
'manifest_generator': 'manifestGenerator',
'per_title': 'perTitle'
}
return attributes
@property
def trimming(self):
# type: () -> Trimming
"""Gets the trimming of this StartEncodingRequest.
Allows to encode only part of the input. Defines start (offset) and duration of the desired section. This is not allowed when the Encoding uses any kind of Input Stream resource.
:return: The trimming of this StartEncodingRequest.
:rtype: Trimming
"""
return self._trimming
@trimming.setter
def trimming(self, trimming):
# type: (Trimming) -> None
"""Sets the trimming of this StartEncodingRequest.
Allows to encode only part of the input. Defines start (offset) and duration of the desired section. This is not allowed when the Encoding uses any kind of Input Stream resource.
:param trimming: The trimming of this StartEncodingRequest.
:type: Trimming
"""
if trimming is not None:
if not isinstance(trimming, Trimming):
raise TypeError("Invalid type for `trimming`, type has to be `Trimming`")
self._trimming = trimming
@property
def scheduling(self):
# type: () -> Scheduling
"""Gets the scheduling of this StartEncodingRequest.
Scheduling parameters of the encoding.
:return: The scheduling of this StartEncodingRequest.
:rtype: Scheduling
"""
return self._scheduling
@scheduling.setter
def scheduling(self, scheduling):
# type: (Scheduling) -> None
"""Sets the scheduling of this StartEncodingRequest.
Scheduling parameters of the encoding.
:param scheduling: The scheduling of this StartEncodingRequest.
:type: Scheduling
"""
if scheduling is not None:
if not isinstance(scheduling, Scheduling):
raise TypeError("Invalid type for `scheduling`, type has to be `Scheduling`")
self._scheduling = scheduling
@property
def tweaks(self):
# type: () -> Tweaks
"""Gets the tweaks of this StartEncodingRequest.
Special tweaks for your encoding job.
:return: The tweaks of this StartEncodingRequest.
:rtype: Tweaks
"""
return self._tweaks
@tweaks.setter
def tweaks(self, tweaks):
# type: (Tweaks) -> None
"""Sets the tweaks of this StartEncodingRequest.
Special tweaks for your encoding job.
:param tweaks: The tweaks of this StartEncodingRequest.
:type: Tweaks
"""
if tweaks is not None:
if not isinstance(tweaks, Tweaks):
raise TypeError("Invalid type for `tweaks`, type has to be `Tweaks`")
self._tweaks = tweaks
@property
def handle_variable_input_fps(self):
# type: () -> bool
"""Gets the handle_variable_input_fps of this StartEncodingRequest.
Enable frame dropping/duplication to handle variable frames per seconds of video input streams
:return: The handle_variable_input_fps of this StartEncodingRequest.
:rtype: bool
"""
return self._handle_variable_input_fps
@handle_variable_input_fps.setter
def handle_variable_input_fps(self, handle_variable_input_fps):
# type: (bool) -> None
"""Sets the handle_variable_input_fps of this StartEncodingRequest.
Enable frame dropping/duplication to handle variable frames per seconds of video input streams
:param handle_variable_input_fps: The handle_variable_input_fps of this StartEncodingRequest.
:type: bool
"""
if handle_variable_input_fps is not None:
if not isinstance(handle_variable_input_fps, bool):
raise TypeError("Invalid type for `handle_variable_input_fps`, type has to be `bool`")
self._handle_variable_input_fps = handle_variable_input_fps
@property
def encoding_mode(self):
# type: () -> EncodingMode
"""Gets the encoding_mode of this StartEncodingRequest.
The pass mode of the encoding. Must only be set when `encodingMode` is not set on any codec configuration used by this encoding.
:return: The encoding_mode of this StartEncodingRequest.
:rtype: EncodingMode
"""
return self._encoding_mode
@encoding_mode.setter
def encoding_mode(self, encoding_mode):
# type: (EncodingMode) -> None
"""Sets the encoding_mode of this StartEncodingRequest.
The pass mode of the encoding. Must only be set when `encodingMode` is not set on any codec configuration used by this encoding.
:param encoding_mode: The encoding_mode of this StartEncodingRequest.
:type: EncodingMode
"""
if encoding_mode is not None:
if not isinstance(encoding_mode, EncodingMode):
raise TypeError("Invalid type for `encoding_mode`, type has to be `EncodingMode`")
self._encoding_mode = encoding_mode
@property
def preview_dash_manifests(self):
# type: () -> list[ManifestResource]
"""Gets the preview_dash_manifests of this StartEncodingRequest.
DASH manifests to be generated for previewing while the encoding is still running. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:return: The preview_dash_manifests of this StartEncodingRequest.
:rtype: list[ManifestResource]
"""
return self._preview_dash_manifests
@preview_dash_manifests.setter
def preview_dash_manifests(self, preview_dash_manifests):
# type: (list) -> None
"""Sets the preview_dash_manifests of this StartEncodingRequest.
DASH manifests to be generated for previewing while the encoding is still running. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:param preview_dash_manifests: The preview_dash_manifests of this StartEncodingRequest.
:type: list[ManifestResource]
"""
if preview_dash_manifests is not None:
if not isinstance(preview_dash_manifests, list):
raise TypeError("Invalid type for `preview_dash_manifests`, type has to be `list[ManifestResource]`")
self._preview_dash_manifests = preview_dash_manifests
@property
def preview_hls_manifests(self):
# type: () -> list[ManifestResource]
"""Gets the preview_hls_manifests of this StartEncodingRequest.
HLS manifests to be generated for previewing while the encoding is still running. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:return: The preview_hls_manifests of this StartEncodingRequest.
:rtype: list[ManifestResource]
"""
return self._preview_hls_manifests
@preview_hls_manifests.setter
def preview_hls_manifests(self, preview_hls_manifests):
# type: (list) -> None
"""Sets the preview_hls_manifests of this StartEncodingRequest.
HLS manifests to be generated for previewing while the encoding is still running. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:param preview_hls_manifests: The preview_hls_manifests of this StartEncodingRequest.
:type: list[ManifestResource]
"""
if preview_hls_manifests is not None:
if not isinstance(preview_hls_manifests, list):
raise TypeError("Invalid type for `preview_hls_manifests`, type has to be `list[ManifestResource]`")
self._preview_hls_manifests = preview_hls_manifests
@property
def vod_dash_manifests(self):
# type: () -> list[ManifestResource]
"""Gets the vod_dash_manifests of this StartEncodingRequest.
DASH manifests to be generated right after encoding (just-in-time). See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:return: The vod_dash_manifests of this StartEncodingRequest.
:rtype: list[ManifestResource]
"""
return self._vod_dash_manifests
@vod_dash_manifests.setter
def vod_dash_manifests(self, vod_dash_manifests):
# type: (list) -> None
"""Sets the vod_dash_manifests of this StartEncodingRequest.
DASH manifests to be generated right after encoding (just-in-time). See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:param vod_dash_manifests: The vod_dash_manifests of this StartEncodingRequest.
:type: list[ManifestResource]
"""
if vod_dash_manifests is not None:
if not isinstance(vod_dash_manifests, list):
raise TypeError("Invalid type for `vod_dash_manifests`, type has to be `list[ManifestResource]`")
self._vod_dash_manifests = vod_dash_manifests
@property
def vod_hls_manifests(self):
# type: () -> list[ManifestResource]
"""Gets the vod_hls_manifests of this StartEncodingRequest.
HLS manifests to be generated right after encoding (just-in-time). See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:return: The vod_hls_manifests of this StartEncodingRequest.
:rtype: list[ManifestResource]
"""
return self._vod_hls_manifests
@vod_hls_manifests.setter
def vod_hls_manifests(self, vod_hls_manifests):
# type: (list) -> None
"""Sets the vod_hls_manifests of this StartEncodingRequest.
HLS manifests to be generated right after encoding (just-in-time). See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:param vod_hls_manifests: The vod_hls_manifests of this StartEncodingRequest.
:type: list[ManifestResource]
"""
if vod_hls_manifests is not None:
if not isinstance(vod_hls_manifests, list):
raise TypeError("Invalid type for `vod_hls_manifests`, type has to be `list[ManifestResource]`")
self._vod_hls_manifests = vod_hls_manifests
@property
def vod_smooth_manifests(self):
# type: () -> list[ManifestResource]
"""Gets the vod_smooth_manifests of this StartEncodingRequest.
Smooth Streaming manifests to be generated right after encoding (just-in-time). See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:return: The vod_smooth_manifests of this StartEncodingRequest.
:rtype: list[ManifestResource]
"""
return self._vod_smooth_manifests
@vod_smooth_manifests.setter
def vod_smooth_manifests(self, vod_smooth_manifests):
# type: (list) -> None
"""Sets the vod_smooth_manifests of this StartEncodingRequest.
Smooth Streaming manifests to be generated right after encoding (just-in-time). See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)
:param vod_smooth_manifests: The vod_smooth_manifests of this StartEncodingRequest.
:type: list[ManifestResource]
"""
if vod_smooth_manifests is not None:
if not isinstance(vod_smooth_manifests, list):
raise TypeError("Invalid type for `vod_smooth_manifests`, type has to be `list[ManifestResource]`")
self._vod_smooth_manifests = vod_smooth_manifests
@property
def manifest_generator(self):
# type: () -> ManifestGenerator
"""Gets the manifest_generator of this StartEncodingRequest.
Major version of the manifest generator to be used for manifests referenced in this request (by properties vodDashManifests, vodHlsManifests, vodSmoothManifests, previewDashManifests, previewHlsManifests). `V2` is available for encoder versions 2.70.0 and above and is the recommended option. The default value depends on the sign-up date of your organization. See [documentation](https://developer.bitmovin.com/encoding/docs/manifest-generator-v2) page for a detailed explanation.
:return: The manifest_generator of this StartEncodingRequest.
:rtype: ManifestGenerator
"""
return self._manifest_generator
@manifest_generator.setter
def manifest_generator(self, manifest_generator):
# type: (ManifestGenerator) -> None
"""Sets the manifest_generator of this StartEncodingRequest.
Major version of the manifest generator to be used for manifests referenced in this request (by properties vodDashManifests, vodHlsManifests, vodSmoothManifests, previewDashManifests, previewHlsManifests). `V2` is available for encoder versions 2.70.0 and above and is the recommended option. The default value depends on the sign-up date of your organization. See [documentation](https://developer.bitmovin.com/encoding/docs/manifest-generator-v2) page for a detailed explanation.
:param manifest_generator: The manifest_generator of this StartEncodingRequest.
:type: ManifestGenerator
"""
if manifest_generator is not None:
if not isinstance(manifest_generator, ManifestGenerator):
raise TypeError("Invalid type for `manifest_generator`, type has to be `ManifestGenerator`")
self._manifest_generator = manifest_generator
@property
def per_title(self):
# type: () -> PerTitle
"""Gets the per_title of this StartEncodingRequest.
Per-Title settings
:return: The per_title of this StartEncodingRequest.
:rtype: PerTitle
"""
return self._per_title
@per_title.setter
def per_title(self, per_title):
# type: (PerTitle) -> None
"""Sets the per_title of this StartEncodingRequest.
Per-Title settings
:param per_title: The per_title of this StartEncodingRequest.
:type: PerTitle
"""
if per_title is not None:
if not isinstance(per_title, PerTitle):
raise TypeError("Invalid type for `per_title`, type has to be `PerTitle`")
self._per_title = per_title
[docs] 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 value is None:
continue
if isinstance(value, list):
if len(value) == 0:
continue
result[self.attribute_map.get(attr)] = [y.value if isinstance(y, Enum) else y for y in [x.to_dict() if hasattr(x, "to_dict") else x for x in value]]
elif hasattr(value, "to_dict"):
result[self.attribute_map.get(attr)] = value.to_dict()
elif isinstance(value, Enum):
result[self.attribute_map.get(attr)] = value.value
elif isinstance(value, dict):
result[self.attribute_map.get(attr)] = {k: (v.to_dict() if hasattr(v, "to_dict") else v) for (k, v) in value.items()}
else:
result[self.attribute_map.get(attr)] = value
return result
[docs] 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, StartEncodingRequest):
return False
return self.__dict__ == other.__dict__
def __ne__(self, other):
"""Returns true if both objects are not equal"""
return not self == other