/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace MediaConvert { namespace Model { /** * Each output in your job is a collection of settings that describes how you want * MediaConvert to encode a single output file or stream. For more information, see * https://docs.aws.amazon.com/mediaconvert/latest/ug/create-outputs.html.

See * Also:

AWS * API Reference

*/ class Output { public: AWS_MEDIACONVERT_API Output(); AWS_MEDIACONVERT_API Output(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIACONVERT_API Output& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIACONVERT_API Aws::Utils::Json::JsonValue Jsonize() const; /** * Contains groups of audio encoding settings organized by audio codec. Include one * instance of per output. Can contain multiple groups of encoding settings. */ inline const Aws::Vector& GetAudioDescriptions() const{ return m_audioDescriptions; } /** * Contains groups of audio encoding settings organized by audio codec. Include one * instance of per output. Can contain multiple groups of encoding settings. */ inline bool AudioDescriptionsHasBeenSet() const { return m_audioDescriptionsHasBeenSet; } /** * Contains groups of audio encoding settings organized by audio codec. Include one * instance of per output. Can contain multiple groups of encoding settings. */ inline void SetAudioDescriptions(const Aws::Vector& value) { m_audioDescriptionsHasBeenSet = true; m_audioDescriptions = value; } /** * Contains groups of audio encoding settings organized by audio codec. Include one * instance of per output. Can contain multiple groups of encoding settings. */ inline void SetAudioDescriptions(Aws::Vector&& value) { m_audioDescriptionsHasBeenSet = true; m_audioDescriptions = std::move(value); } /** * Contains groups of audio encoding settings organized by audio codec. Include one * instance of per output. Can contain multiple groups of encoding settings. */ inline Output& WithAudioDescriptions(const Aws::Vector& value) { SetAudioDescriptions(value); return *this;} /** * Contains groups of audio encoding settings organized by audio codec. Include one * instance of per output. Can contain multiple groups of encoding settings. */ inline Output& WithAudioDescriptions(Aws::Vector&& value) { SetAudioDescriptions(std::move(value)); return *this;} /** * Contains groups of audio encoding settings organized by audio codec. Include one * instance of per output. Can contain multiple groups of encoding settings. */ inline Output& AddAudioDescriptions(const AudioDescription& value) { m_audioDescriptionsHasBeenSet = true; m_audioDescriptions.push_back(value); return *this; } /** * Contains groups of audio encoding settings organized by audio codec. Include one * instance of per output. Can contain multiple groups of encoding settings. */ inline Output& AddAudioDescriptions(AudioDescription&& value) { m_audioDescriptionsHasBeenSet = true; m_audioDescriptions.push_back(std::move(value)); return *this; } /** * Contains groups of captions settings. For each output that has captions, include * one instance of CaptionDescriptions. Can contain multiple groups of captions * settings. */ inline const Aws::Vector& GetCaptionDescriptions() const{ return m_captionDescriptions; } /** * Contains groups of captions settings. For each output that has captions, include * one instance of CaptionDescriptions. Can contain multiple groups of captions * settings. */ inline bool CaptionDescriptionsHasBeenSet() const { return m_captionDescriptionsHasBeenSet; } /** * Contains groups of captions settings. For each output that has captions, include * one instance of CaptionDescriptions. Can contain multiple groups of captions * settings. */ inline void SetCaptionDescriptions(const Aws::Vector& value) { m_captionDescriptionsHasBeenSet = true; m_captionDescriptions = value; } /** * Contains groups of captions settings. For each output that has captions, include * one instance of CaptionDescriptions. Can contain multiple groups of captions * settings. */ inline void SetCaptionDescriptions(Aws::Vector&& value) { m_captionDescriptionsHasBeenSet = true; m_captionDescriptions = std::move(value); } /** * Contains groups of captions settings. For each output that has captions, include * one instance of CaptionDescriptions. Can contain multiple groups of captions * settings. */ inline Output& WithCaptionDescriptions(const Aws::Vector& value) { SetCaptionDescriptions(value); return *this;} /** * Contains groups of captions settings. For each output that has captions, include * one instance of CaptionDescriptions. Can contain multiple groups of captions * settings. */ inline Output& WithCaptionDescriptions(Aws::Vector&& value) { SetCaptionDescriptions(std::move(value)); return *this;} /** * Contains groups of captions settings. For each output that has captions, include * one instance of CaptionDescriptions. Can contain multiple groups of captions * settings. */ inline Output& AddCaptionDescriptions(const CaptionDescription& value) { m_captionDescriptionsHasBeenSet = true; m_captionDescriptions.push_back(value); return *this; } /** * Contains groups of captions settings. For each output that has captions, include * one instance of CaptionDescriptions. Can contain multiple groups of captions * settings. */ inline Output& AddCaptionDescriptions(CaptionDescription&& value) { m_captionDescriptionsHasBeenSet = true; m_captionDescriptions.push_back(std::move(value)); return *this; } /** * Container specific settings. */ inline const ContainerSettings& GetContainerSettings() const{ return m_containerSettings; } /** * Container specific settings. */ inline bool ContainerSettingsHasBeenSet() const { return m_containerSettingsHasBeenSet; } /** * Container specific settings. */ inline void SetContainerSettings(const ContainerSettings& value) { m_containerSettingsHasBeenSet = true; m_containerSettings = value; } /** * Container specific settings. */ inline void SetContainerSettings(ContainerSettings&& value) { m_containerSettingsHasBeenSet = true; m_containerSettings = std::move(value); } /** * Container specific settings. */ inline Output& WithContainerSettings(const ContainerSettings& value) { SetContainerSettings(value); return *this;} /** * Container specific settings. */ inline Output& WithContainerSettings(ContainerSettings&& value) { SetContainerSettings(std::move(value)); return *this;} /** * Use Extension to specify the file extension for outputs in File output groups. * If you do not specify a value, the service will use default extensions by * container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF * container, mxf * MPEG-4 container, mp4 * WebM container, webm * No Container, * the service will use codec extensions (e.g. AAC, H265, H265, AC3) */ inline const Aws::String& GetExtension() const{ return m_extension; } /** * Use Extension to specify the file extension for outputs in File output groups. * If you do not specify a value, the service will use default extensions by * container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF * container, mxf * MPEG-4 container, mp4 * WebM container, webm * No Container, * the service will use codec extensions (e.g. AAC, H265, H265, AC3) */ inline bool ExtensionHasBeenSet() const { return m_extensionHasBeenSet; } /** * Use Extension to specify the file extension for outputs in File output groups. * If you do not specify a value, the service will use default extensions by * container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF * container, mxf * MPEG-4 container, mp4 * WebM container, webm * No Container, * the service will use codec extensions (e.g. AAC, H265, H265, AC3) */ inline void SetExtension(const Aws::String& value) { m_extensionHasBeenSet = true; m_extension = value; } /** * Use Extension to specify the file extension for outputs in File output groups. * If you do not specify a value, the service will use default extensions by * container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF * container, mxf * MPEG-4 container, mp4 * WebM container, webm * No Container, * the service will use codec extensions (e.g. AAC, H265, H265, AC3) */ inline void SetExtension(Aws::String&& value) { m_extensionHasBeenSet = true; m_extension = std::move(value); } /** * Use Extension to specify the file extension for outputs in File output groups. * If you do not specify a value, the service will use default extensions by * container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF * container, mxf * MPEG-4 container, mp4 * WebM container, webm * No Container, * the service will use codec extensions (e.g. AAC, H265, H265, AC3) */ inline void SetExtension(const char* value) { m_extensionHasBeenSet = true; m_extension.assign(value); } /** * Use Extension to specify the file extension for outputs in File output groups. * If you do not specify a value, the service will use default extensions by * container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF * container, mxf * MPEG-4 container, mp4 * WebM container, webm * No Container, * the service will use codec extensions (e.g. AAC, H265, H265, AC3) */ inline Output& WithExtension(const Aws::String& value) { SetExtension(value); return *this;} /** * Use Extension to specify the file extension for outputs in File output groups. * If you do not specify a value, the service will use default extensions by * container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF * container, mxf * MPEG-4 container, mp4 * WebM container, webm * No Container, * the service will use codec extensions (e.g. AAC, H265, H265, AC3) */ inline Output& WithExtension(Aws::String&& value) { SetExtension(std::move(value)); return *this;} /** * Use Extension to specify the file extension for outputs in File output groups. * If you do not specify a value, the service will use default extensions by * container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * MXF * container, mxf * MPEG-4 container, mp4 * WebM container, webm * No Container, * the service will use codec extensions (e.g. AAC, H265, H265, AC3) */ inline Output& WithExtension(const char* value) { SetExtension(value); return *this;} /** * Use Name modifier to have the service add a string to the end of each output * filename. You specify the base filename as part of your destination URI. When * you create multiple outputs in the same output group, Name modifier is required. * Name modifier also accepts format identifiers. For DASH ISO outputs, if you use * the format identifiers $Number$ or $Time$ in one output, you must use them in * the same way in all outputs of the output group. */ inline const Aws::String& GetNameModifier() const{ return m_nameModifier; } /** * Use Name modifier to have the service add a string to the end of each output * filename. You specify the base filename as part of your destination URI. When * you create multiple outputs in the same output group, Name modifier is required. * Name modifier also accepts format identifiers. For DASH ISO outputs, if you use * the format identifiers $Number$ or $Time$ in one output, you must use them in * the same way in all outputs of the output group. */ inline bool NameModifierHasBeenSet() const { return m_nameModifierHasBeenSet; } /** * Use Name modifier to have the service add a string to the end of each output * filename. You specify the base filename as part of your destination URI. When * you create multiple outputs in the same output group, Name modifier is required. * Name modifier also accepts format identifiers. For DASH ISO outputs, if you use * the format identifiers $Number$ or $Time$ in one output, you must use them in * the same way in all outputs of the output group. */ inline void SetNameModifier(const Aws::String& value) { m_nameModifierHasBeenSet = true; m_nameModifier = value; } /** * Use Name modifier to have the service add a string to the end of each output * filename. You specify the base filename as part of your destination URI. When * you create multiple outputs in the same output group, Name modifier is required. * Name modifier also accepts format identifiers. For DASH ISO outputs, if you use * the format identifiers $Number$ or $Time$ in one output, you must use them in * the same way in all outputs of the output group. */ inline void SetNameModifier(Aws::String&& value) { m_nameModifierHasBeenSet = true; m_nameModifier = std::move(value); } /** * Use Name modifier to have the service add a string to the end of each output * filename. You specify the base filename as part of your destination URI. When * you create multiple outputs in the same output group, Name modifier is required. * Name modifier also accepts format identifiers. For DASH ISO outputs, if you use * the format identifiers $Number$ or $Time$ in one output, you must use them in * the same way in all outputs of the output group. */ inline void SetNameModifier(const char* value) { m_nameModifierHasBeenSet = true; m_nameModifier.assign(value); } /** * Use Name modifier to have the service add a string to the end of each output * filename. You specify the base filename as part of your destination URI. When * you create multiple outputs in the same output group, Name modifier is required. * Name modifier also accepts format identifiers. For DASH ISO outputs, if you use * the format identifiers $Number$ or $Time$ in one output, you must use them in * the same way in all outputs of the output group. */ inline Output& WithNameModifier(const Aws::String& value) { SetNameModifier(value); return *this;} /** * Use Name modifier to have the service add a string to the end of each output * filename. You specify the base filename as part of your destination URI. When * you create multiple outputs in the same output group, Name modifier is required. * Name modifier also accepts format identifiers. For DASH ISO outputs, if you use * the format identifiers $Number$ or $Time$ in one output, you must use them in * the same way in all outputs of the output group. */ inline Output& WithNameModifier(Aws::String&& value) { SetNameModifier(std::move(value)); return *this;} /** * Use Name modifier to have the service add a string to the end of each output * filename. You specify the base filename as part of your destination URI. When * you create multiple outputs in the same output group, Name modifier is required. * Name modifier also accepts format identifiers. For DASH ISO outputs, if you use * the format identifiers $Number$ or $Time$ in one output, you must use them in * the same way in all outputs of the output group. */ inline Output& WithNameModifier(const char* value) { SetNameModifier(value); return *this;} /** * Specific settings for this type of output. */ inline const OutputSettings& GetOutputSettings() const{ return m_outputSettings; } /** * Specific settings for this type of output. */ inline bool OutputSettingsHasBeenSet() const { return m_outputSettingsHasBeenSet; } /** * Specific settings for this type of output. */ inline void SetOutputSettings(const OutputSettings& value) { m_outputSettingsHasBeenSet = true; m_outputSettings = value; } /** * Specific settings for this type of output. */ inline void SetOutputSettings(OutputSettings&& value) { m_outputSettingsHasBeenSet = true; m_outputSettings = std::move(value); } /** * Specific settings for this type of output. */ inline Output& WithOutputSettings(const OutputSettings& value) { SetOutputSettings(value); return *this;} /** * Specific settings for this type of output. */ inline Output& WithOutputSettings(OutputSettings&& value) { SetOutputSettings(std::move(value)); return *this;} /** * Use Preset to specify a preset for your transcoding settings. Provide the system * or custom preset name. You can specify either Preset or Container settings, but * not both. */ inline const Aws::String& GetPreset() const{ return m_preset; } /** * Use Preset to specify a preset for your transcoding settings. Provide the system * or custom preset name. You can specify either Preset or Container settings, but * not both. */ inline bool PresetHasBeenSet() const { return m_presetHasBeenSet; } /** * Use Preset to specify a preset for your transcoding settings. Provide the system * or custom preset name. You can specify either Preset or Container settings, but * not both. */ inline void SetPreset(const Aws::String& value) { m_presetHasBeenSet = true; m_preset = value; } /** * Use Preset to specify a preset for your transcoding settings. Provide the system * or custom preset name. You can specify either Preset or Container settings, but * not both. */ inline void SetPreset(Aws::String&& value) { m_presetHasBeenSet = true; m_preset = std::move(value); } /** * Use Preset to specify a preset for your transcoding settings. Provide the system * or custom preset name. You can specify either Preset or Container settings, but * not both. */ inline void SetPreset(const char* value) { m_presetHasBeenSet = true; m_preset.assign(value); } /** * Use Preset to specify a preset for your transcoding settings. Provide the system * or custom preset name. You can specify either Preset or Container settings, but * not both. */ inline Output& WithPreset(const Aws::String& value) { SetPreset(value); return *this;} /** * Use Preset to specify a preset for your transcoding settings. Provide the system * or custom preset name. You can specify either Preset or Container settings, but * not both. */ inline Output& WithPreset(Aws::String&& value) { SetPreset(std::move(value)); return *this;} /** * Use Preset to specify a preset for your transcoding settings. Provide the system * or custom preset name. You can specify either Preset or Container settings, but * not both. */ inline Output& WithPreset(const char* value) { SetPreset(value); return *this;} /** * VideoDescription contains a group of video encoding settings. The specific video * settings depend on the video codec that you choose for the property codec. * Include one instance of VideoDescription per output. */ inline const VideoDescription& GetVideoDescription() const{ return m_videoDescription; } /** * VideoDescription contains a group of video encoding settings. The specific video * settings depend on the video codec that you choose for the property codec. * Include one instance of VideoDescription per output. */ inline bool VideoDescriptionHasBeenSet() const { return m_videoDescriptionHasBeenSet; } /** * VideoDescription contains a group of video encoding settings. The specific video * settings depend on the video codec that you choose for the property codec. * Include one instance of VideoDescription per output. */ inline void SetVideoDescription(const VideoDescription& value) { m_videoDescriptionHasBeenSet = true; m_videoDescription = value; } /** * VideoDescription contains a group of video encoding settings. The specific video * settings depend on the video codec that you choose for the property codec. * Include one instance of VideoDescription per output. */ inline void SetVideoDescription(VideoDescription&& value) { m_videoDescriptionHasBeenSet = true; m_videoDescription = std::move(value); } /** * VideoDescription contains a group of video encoding settings. The specific video * settings depend on the video codec that you choose for the property codec. * Include one instance of VideoDescription per output. */ inline Output& WithVideoDescription(const VideoDescription& value) { SetVideoDescription(value); return *this;} /** * VideoDescription contains a group of video encoding settings. The specific video * settings depend on the video codec that you choose for the property codec. * Include one instance of VideoDescription per output. */ inline Output& WithVideoDescription(VideoDescription&& value) { SetVideoDescription(std::move(value)); return *this;} private: Aws::Vector m_audioDescriptions; bool m_audioDescriptionsHasBeenSet = false; Aws::Vector m_captionDescriptions; bool m_captionDescriptionsHasBeenSet = false; ContainerSettings m_containerSettings; bool m_containerSettingsHasBeenSet = false; Aws::String m_extension; bool m_extensionHasBeenSet = false; Aws::String m_nameModifier; bool m_nameModifierHasBeenSet = false; OutputSettings m_outputSettings; bool m_outputSettingsHasBeenSet = false; Aws::String m_preset; bool m_presetHasBeenSet = false; VideoDescription m_videoDescription; bool m_videoDescriptionHasBeenSet = false; }; } // namespace Model } // namespace MediaConvert } // namespace Aws