/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ElasticTranscoder { namespace Model { /** *

The CreateJobOutput structure.

See Also:

AWS * API Reference

*/ class CreateJobOutput { public: AWS_ELASTICTRANSCODER_API CreateJobOutput(); AWS_ELASTICTRANSCODER_API CreateJobOutput(Aws::Utils::Json::JsonView jsonValue); AWS_ELASTICTRANSCODER_API CreateJobOutput& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_ELASTICTRANSCODER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name to assign to the transcoded file. Elastic Transcoder saves the file * in the Amazon S3 bucket specified by the OutputBucket object in the * pipeline that is specified by the pipeline ID. If a file with the specified name * already exists in the output bucket, the job fails.

*/ inline const Aws::String& GetKey() const{ return m_key; } /** *

The name to assign to the transcoded file. Elastic Transcoder saves the file * in the Amazon S3 bucket specified by the OutputBucket object in the * pipeline that is specified by the pipeline ID. If a file with the specified name * already exists in the output bucket, the job fails.

*/ inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; } /** *

The name to assign to the transcoded file. Elastic Transcoder saves the file * in the Amazon S3 bucket specified by the OutputBucket object in the * pipeline that is specified by the pipeline ID. If a file with the specified name * already exists in the output bucket, the job fails.

*/ inline void SetKey(const Aws::String& value) { m_keyHasBeenSet = true; m_key = value; } /** *

The name to assign to the transcoded file. Elastic Transcoder saves the file * in the Amazon S3 bucket specified by the OutputBucket object in the * pipeline that is specified by the pipeline ID. If a file with the specified name * already exists in the output bucket, the job fails.

*/ inline void SetKey(Aws::String&& value) { m_keyHasBeenSet = true; m_key = std::move(value); } /** *

The name to assign to the transcoded file. Elastic Transcoder saves the file * in the Amazon S3 bucket specified by the OutputBucket object in the * pipeline that is specified by the pipeline ID. If a file with the specified name * already exists in the output bucket, the job fails.

*/ inline void SetKey(const char* value) { m_keyHasBeenSet = true; m_key.assign(value); } /** *

The name to assign to the transcoded file. Elastic Transcoder saves the file * in the Amazon S3 bucket specified by the OutputBucket object in the * pipeline that is specified by the pipeline ID. If a file with the specified name * already exists in the output bucket, the job fails.

*/ inline CreateJobOutput& WithKey(const Aws::String& value) { SetKey(value); return *this;} /** *

The name to assign to the transcoded file. Elastic Transcoder saves the file * in the Amazon S3 bucket specified by the OutputBucket object in the * pipeline that is specified by the pipeline ID. If a file with the specified name * already exists in the output bucket, the job fails.

*/ inline CreateJobOutput& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;} /** *

The name to assign to the transcoded file. Elastic Transcoder saves the file * in the Amazon S3 bucket specified by the OutputBucket object in the * pipeline that is specified by the pipeline ID. If a file with the specified name * already exists in the output bucket, the job fails.

*/ inline CreateJobOutput& WithKey(const char* value) { SetKey(value); return *this;} /** *

Whether you want Elastic Transcoder to create thumbnails for your videos and, * if so, how you want Elastic Transcoder to name the files.

If you don't * want Elastic Transcoder to create thumbnails, specify "".

If you do want * Elastic Transcoder to create thumbnails, specify the information that you want * to include in the file name for each thumbnail. You can specify the following * values in any sequence:

  • {count} * (Required): If you want to create thumbnails, you must include * {count} in the ThumbnailPattern object. Wherever you * specify {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails for a * transcoded file.

    If you specify a literal value and/or * {resolution} but you omit {count}, Elastic Transcoder * returns a validation error and does not create the job.

  • *
  • Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, you can * include them as a file name prefix or as a delimiter between * {resolution} and {count}.

  • * {resolution} (Optional): If you want Elastic Transcoder to * include the resolution in the file name, include {resolution} in * the ThumbnailPattern object.

When creating * thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg * or .png) that appears in the preset that you specified in the * PresetID value of CreateJobOutput. Elastic Transcoder * also appends the applicable file name extension.

*/ inline const Aws::String& GetThumbnailPattern() const{ return m_thumbnailPattern; } /** *

Whether you want Elastic Transcoder to create thumbnails for your videos and, * if so, how you want Elastic Transcoder to name the files.

If you don't * want Elastic Transcoder to create thumbnails, specify "".

If you do want * Elastic Transcoder to create thumbnails, specify the information that you want * to include in the file name for each thumbnail. You can specify the following * values in any sequence:

  • {count} * (Required): If you want to create thumbnails, you must include * {count} in the ThumbnailPattern object. Wherever you * specify {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails for a * transcoded file.

    If you specify a literal value and/or * {resolution} but you omit {count}, Elastic Transcoder * returns a validation error and does not create the job.

  • *
  • Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, you can * include them as a file name prefix or as a delimiter between * {resolution} and {count}.

  • * {resolution} (Optional): If you want Elastic Transcoder to * include the resolution in the file name, include {resolution} in * the ThumbnailPattern object.

When creating * thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg * or .png) that appears in the preset that you specified in the * PresetID value of CreateJobOutput. Elastic Transcoder * also appends the applicable file name extension.

*/ inline bool ThumbnailPatternHasBeenSet() const { return m_thumbnailPatternHasBeenSet; } /** *

Whether you want Elastic Transcoder to create thumbnails for your videos and, * if so, how you want Elastic Transcoder to name the files.

If you don't * want Elastic Transcoder to create thumbnails, specify "".

If you do want * Elastic Transcoder to create thumbnails, specify the information that you want * to include in the file name for each thumbnail. You can specify the following * values in any sequence:

  • {count} * (Required): If you want to create thumbnails, you must include * {count} in the ThumbnailPattern object. Wherever you * specify {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails for a * transcoded file.

    If you specify a literal value and/or * {resolution} but you omit {count}, Elastic Transcoder * returns a validation error and does not create the job.

  • *
  • Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, you can * include them as a file name prefix or as a delimiter between * {resolution} and {count}.

  • * {resolution} (Optional): If you want Elastic Transcoder to * include the resolution in the file name, include {resolution} in * the ThumbnailPattern object.

When creating * thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg * or .png) that appears in the preset that you specified in the * PresetID value of CreateJobOutput. Elastic Transcoder * also appends the applicable file name extension.

*/ inline void SetThumbnailPattern(const Aws::String& value) { m_thumbnailPatternHasBeenSet = true; m_thumbnailPattern = value; } /** *

Whether you want Elastic Transcoder to create thumbnails for your videos and, * if so, how you want Elastic Transcoder to name the files.

If you don't * want Elastic Transcoder to create thumbnails, specify "".

If you do want * Elastic Transcoder to create thumbnails, specify the information that you want * to include in the file name for each thumbnail. You can specify the following * values in any sequence:

  • {count} * (Required): If you want to create thumbnails, you must include * {count} in the ThumbnailPattern object. Wherever you * specify {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails for a * transcoded file.

    If you specify a literal value and/or * {resolution} but you omit {count}, Elastic Transcoder * returns a validation error and does not create the job.

  • *
  • Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, you can * include them as a file name prefix or as a delimiter between * {resolution} and {count}.

  • * {resolution} (Optional): If you want Elastic Transcoder to * include the resolution in the file name, include {resolution} in * the ThumbnailPattern object.

When creating * thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg * or .png) that appears in the preset that you specified in the * PresetID value of CreateJobOutput. Elastic Transcoder * also appends the applicable file name extension.

*/ inline void SetThumbnailPattern(Aws::String&& value) { m_thumbnailPatternHasBeenSet = true; m_thumbnailPattern = std::move(value); } /** *

Whether you want Elastic Transcoder to create thumbnails for your videos and, * if so, how you want Elastic Transcoder to name the files.

If you don't * want Elastic Transcoder to create thumbnails, specify "".

If you do want * Elastic Transcoder to create thumbnails, specify the information that you want * to include in the file name for each thumbnail. You can specify the following * values in any sequence:

  • {count} * (Required): If you want to create thumbnails, you must include * {count} in the ThumbnailPattern object. Wherever you * specify {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails for a * transcoded file.

    If you specify a literal value and/or * {resolution} but you omit {count}, Elastic Transcoder * returns a validation error and does not create the job.

  • *
  • Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, you can * include them as a file name prefix or as a delimiter between * {resolution} and {count}.

  • * {resolution} (Optional): If you want Elastic Transcoder to * include the resolution in the file name, include {resolution} in * the ThumbnailPattern object.

When creating * thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg * or .png) that appears in the preset that you specified in the * PresetID value of CreateJobOutput. Elastic Transcoder * also appends the applicable file name extension.

*/ inline void SetThumbnailPattern(const char* value) { m_thumbnailPatternHasBeenSet = true; m_thumbnailPattern.assign(value); } /** *

Whether you want Elastic Transcoder to create thumbnails for your videos and, * if so, how you want Elastic Transcoder to name the files.

If you don't * want Elastic Transcoder to create thumbnails, specify "".

If you do want * Elastic Transcoder to create thumbnails, specify the information that you want * to include in the file name for each thumbnail. You can specify the following * values in any sequence:

  • {count} * (Required): If you want to create thumbnails, you must include * {count} in the ThumbnailPattern object. Wherever you * specify {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails for a * transcoded file.

    If you specify a literal value and/or * {resolution} but you omit {count}, Elastic Transcoder * returns a validation error and does not create the job.

  • *
  • Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, you can * include them as a file name prefix or as a delimiter between * {resolution} and {count}.

  • * {resolution} (Optional): If you want Elastic Transcoder to * include the resolution in the file name, include {resolution} in * the ThumbnailPattern object.

When creating * thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg * or .png) that appears in the preset that you specified in the * PresetID value of CreateJobOutput. Elastic Transcoder * also appends the applicable file name extension.

*/ inline CreateJobOutput& WithThumbnailPattern(const Aws::String& value) { SetThumbnailPattern(value); return *this;} /** *

Whether you want Elastic Transcoder to create thumbnails for your videos and, * if so, how you want Elastic Transcoder to name the files.

If you don't * want Elastic Transcoder to create thumbnails, specify "".

If you do want * Elastic Transcoder to create thumbnails, specify the information that you want * to include in the file name for each thumbnail. You can specify the following * values in any sequence:

  • {count} * (Required): If you want to create thumbnails, you must include * {count} in the ThumbnailPattern object. Wherever you * specify {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails for a * transcoded file.

    If you specify a literal value and/or * {resolution} but you omit {count}, Elastic Transcoder * returns a validation error and does not create the job.

  • *
  • Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, you can * include them as a file name prefix or as a delimiter between * {resolution} and {count}.

  • * {resolution} (Optional): If you want Elastic Transcoder to * include the resolution in the file name, include {resolution} in * the ThumbnailPattern object.

When creating * thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg * or .png) that appears in the preset that you specified in the * PresetID value of CreateJobOutput. Elastic Transcoder * also appends the applicable file name extension.

*/ inline CreateJobOutput& WithThumbnailPattern(Aws::String&& value) { SetThumbnailPattern(std::move(value)); return *this;} /** *

Whether you want Elastic Transcoder to create thumbnails for your videos and, * if so, how you want Elastic Transcoder to name the files.

If you don't * want Elastic Transcoder to create thumbnails, specify "".

If you do want * Elastic Transcoder to create thumbnails, specify the information that you want * to include in the file name for each thumbnail. You can specify the following * values in any sequence:

  • {count} * (Required): If you want to create thumbnails, you must include * {count} in the ThumbnailPattern object. Wherever you * specify {count}, Elastic Transcoder adds a five-digit sequence * number (beginning with 00001) to thumbnail file names. The number * indicates where a given thumbnail appears in the sequence of thumbnails for a * transcoded file.

    If you specify a literal value and/or * {resolution} but you omit {count}, Elastic Transcoder * returns a validation error and does not create the job.

  • *
  • Literal values (Optional): You can specify literal values * anywhere in the ThumbnailPattern object. For example, you can * include them as a file name prefix or as a delimiter between * {resolution} and {count}.

  • * {resolution} (Optional): If you want Elastic Transcoder to * include the resolution in the file name, include {resolution} in * the ThumbnailPattern object.

When creating * thumbnails, Elastic Transcoder automatically saves the files in the format (.jpg * or .png) that appears in the preset that you specified in the * PresetID value of CreateJobOutput. Elastic Transcoder * also appends the applicable file name extension.

*/ inline CreateJobOutput& WithThumbnailPattern(const char* value) { SetThumbnailPattern(value); return *this;} /** *

The encryption settings, if any, that you want Elastic Transcoder to apply to * your thumbnail.

*/ inline const Encryption& GetThumbnailEncryption() const{ return m_thumbnailEncryption; } /** *

The encryption settings, if any, that you want Elastic Transcoder to apply to * your thumbnail.

*/ inline bool ThumbnailEncryptionHasBeenSet() const { return m_thumbnailEncryptionHasBeenSet; } /** *

The encryption settings, if any, that you want Elastic Transcoder to apply to * your thumbnail.

*/ inline void SetThumbnailEncryption(const Encryption& value) { m_thumbnailEncryptionHasBeenSet = true; m_thumbnailEncryption = value; } /** *

The encryption settings, if any, that you want Elastic Transcoder to apply to * your thumbnail.

*/ inline void SetThumbnailEncryption(Encryption&& value) { m_thumbnailEncryptionHasBeenSet = true; m_thumbnailEncryption = std::move(value); } /** *

The encryption settings, if any, that you want Elastic Transcoder to apply to * your thumbnail.

*/ inline CreateJobOutput& WithThumbnailEncryption(const Encryption& value) { SetThumbnailEncryption(value); return *this;} /** *

The encryption settings, if any, that you want Elastic Transcoder to apply to * your thumbnail.

*/ inline CreateJobOutput& WithThumbnailEncryption(Encryption&& value) { SetThumbnailEncryption(std::move(value)); return *this;} /** *

The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following values: * auto, 0, 90, 180, * 270. The value auto generally works only if the file * that you're transcoding contains rotation metadata.

*/ inline const Aws::String& GetRotate() const{ return m_rotate; } /** *

The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following values: * auto, 0, 90, 180, * 270. The value auto generally works only if the file * that you're transcoding contains rotation metadata.

*/ inline bool RotateHasBeenSet() const { return m_rotateHasBeenSet; } /** *

The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following values: * auto, 0, 90, 180, * 270. The value auto generally works only if the file * that you're transcoding contains rotation metadata.

*/ inline void SetRotate(const Aws::String& value) { m_rotateHasBeenSet = true; m_rotate = value; } /** *

The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following values: * auto, 0, 90, 180, * 270. The value auto generally works only if the file * that you're transcoding contains rotation metadata.

*/ inline void SetRotate(Aws::String&& value) { m_rotateHasBeenSet = true; m_rotate = std::move(value); } /** *

The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following values: * auto, 0, 90, 180, * 270. The value auto generally works only if the file * that you're transcoding contains rotation metadata.

*/ inline void SetRotate(const char* value) { m_rotateHasBeenSet = true; m_rotate.assign(value); } /** *

The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following values: * auto, 0, 90, 180, * 270. The value auto generally works only if the file * that you're transcoding contains rotation metadata.

*/ inline CreateJobOutput& WithRotate(const Aws::String& value) { SetRotate(value); return *this;} /** *

The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following values: * auto, 0, 90, 180, * 270. The value auto generally works only if the file * that you're transcoding contains rotation metadata.

*/ inline CreateJobOutput& WithRotate(Aws::String&& value) { SetRotate(std::move(value)); return *this;} /** *

The number of degrees clockwise by which you want Elastic Transcoder to * rotate the output relative to the input. Enter one of the following values: * auto, 0, 90, 180, * 270. The value auto generally works only if the file * that you're transcoding contains rotation metadata.

*/ inline CreateJobOutput& WithRotate(const char* value) { SetRotate(value); return *this;} /** *

The Id of the preset to use for this job. The preset determines * the audio, video, and thumbnail settings that Elastic Transcoder uses for * transcoding.

*/ inline const Aws::String& GetPresetId() const{ return m_presetId; } /** *

The Id of the preset to use for this job. The preset determines * the audio, video, and thumbnail settings that Elastic Transcoder uses for * transcoding.

*/ inline bool PresetIdHasBeenSet() const { return m_presetIdHasBeenSet; } /** *

The Id of the preset to use for this job. The preset determines * the audio, video, and thumbnail settings that Elastic Transcoder uses for * transcoding.

*/ inline void SetPresetId(const Aws::String& value) { m_presetIdHasBeenSet = true; m_presetId = value; } /** *

The Id of the preset to use for this job. The preset determines * the audio, video, and thumbnail settings that Elastic Transcoder uses for * transcoding.

*/ inline void SetPresetId(Aws::String&& value) { m_presetIdHasBeenSet = true; m_presetId = std::move(value); } /** *

The Id of the preset to use for this job. The preset determines * the audio, video, and thumbnail settings that Elastic Transcoder uses for * transcoding.

*/ inline void SetPresetId(const char* value) { m_presetIdHasBeenSet = true; m_presetId.assign(value); } /** *

The Id of the preset to use for this job. The preset determines * the audio, video, and thumbnail settings that Elastic Transcoder uses for * transcoding.

*/ inline CreateJobOutput& WithPresetId(const Aws::String& value) { SetPresetId(value); return *this;} /** *

The Id of the preset to use for this job. The preset determines * the audio, video, and thumbnail settings that Elastic Transcoder uses for * transcoding.

*/ inline CreateJobOutput& WithPresetId(Aws::String&& value) { SetPresetId(std::move(value)); return *this;} /** *

The Id of the preset to use for this job. The preset determines * the audio, video, and thumbnail settings that Elastic Transcoder uses for * transcoding.

*/ inline CreateJobOutput& WithPresetId(const char* value) { SetPresetId(value); return *this;} /** *

(Outputs in Fragmented MP4 or MPEG-TS format only.

*

If you specify a preset in PresetId for which the * value of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the target maximum * duration of each segment in seconds. For HLSv3 format playlists, * each media segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments for an * output are stored in a single file. Each segment is approximately the length of * the SegmentDuration, though individual segments might be shorter or * longer.

The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, the duration * of the last segment is the remainder of total length/SegmentDuration.

*

Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output to the * master playlist for this job, include it in the OutputKeys of the * associated playlist.

*/ inline const Aws::String& GetSegmentDuration() const{ return m_segmentDuration; } /** *

(Outputs in Fragmented MP4 or MPEG-TS format only.

*

If you specify a preset in PresetId for which the * value of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the target maximum * duration of each segment in seconds. For HLSv3 format playlists, * each media segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments for an * output are stored in a single file. Each segment is approximately the length of * the SegmentDuration, though individual segments might be shorter or * longer.

The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, the duration * of the last segment is the remainder of total length/SegmentDuration.

*

Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output to the * master playlist for this job, include it in the OutputKeys of the * associated playlist.

*/ inline bool SegmentDurationHasBeenSet() const { return m_segmentDurationHasBeenSet; } /** *

(Outputs in Fragmented MP4 or MPEG-TS format only.

*

If you specify a preset in PresetId for which the * value of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the target maximum * duration of each segment in seconds. For HLSv3 format playlists, * each media segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments for an * output are stored in a single file. Each segment is approximately the length of * the SegmentDuration, though individual segments might be shorter or * longer.

The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, the duration * of the last segment is the remainder of total length/SegmentDuration.

*

Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output to the * master playlist for this job, include it in the OutputKeys of the * associated playlist.

*/ inline void SetSegmentDuration(const Aws::String& value) { m_segmentDurationHasBeenSet = true; m_segmentDuration = value; } /** *

(Outputs in Fragmented MP4 or MPEG-TS format only.

*

If you specify a preset in PresetId for which the * value of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the target maximum * duration of each segment in seconds. For HLSv3 format playlists, * each media segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments for an * output are stored in a single file. Each segment is approximately the length of * the SegmentDuration, though individual segments might be shorter or * longer.

The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, the duration * of the last segment is the remainder of total length/SegmentDuration.

*

Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output to the * master playlist for this job, include it in the OutputKeys of the * associated playlist.

*/ inline void SetSegmentDuration(Aws::String&& value) { m_segmentDurationHasBeenSet = true; m_segmentDuration = std::move(value); } /** *

(Outputs in Fragmented MP4 or MPEG-TS format only.

*

If you specify a preset in PresetId for which the * value of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the target maximum * duration of each segment in seconds. For HLSv3 format playlists, * each media segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments for an * output are stored in a single file. Each segment is approximately the length of * the SegmentDuration, though individual segments might be shorter or * longer.

The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, the duration * of the last segment is the remainder of total length/SegmentDuration.

*

Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output to the * master playlist for this job, include it in the OutputKeys of the * associated playlist.

*/ inline void SetSegmentDuration(const char* value) { m_segmentDurationHasBeenSet = true; m_segmentDuration.assign(value); } /** *

(Outputs in Fragmented MP4 or MPEG-TS format only.

*

If you specify a preset in PresetId for which the * value of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the target maximum * duration of each segment in seconds. For HLSv3 format playlists, * each media segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments for an * output are stored in a single file. Each segment is approximately the length of * the SegmentDuration, though individual segments might be shorter or * longer.

The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, the duration * of the last segment is the remainder of total length/SegmentDuration.

*

Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output to the * master playlist for this job, include it in the OutputKeys of the * associated playlist.

*/ inline CreateJobOutput& WithSegmentDuration(const Aws::String& value) { SetSegmentDuration(value); return *this;} /** *

(Outputs in Fragmented MP4 or MPEG-TS format only.

*

If you specify a preset in PresetId for which the * value of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the target maximum * duration of each segment in seconds. For HLSv3 format playlists, * each media segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments for an * output are stored in a single file. Each segment is approximately the length of * the SegmentDuration, though individual segments might be shorter or * longer.

The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, the duration * of the last segment is the remainder of total length/SegmentDuration.

*

Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output to the * master playlist for this job, include it in the OutputKeys of the * associated playlist.

*/ inline CreateJobOutput& WithSegmentDuration(Aws::String&& value) { SetSegmentDuration(std::move(value)); return *this;} /** *

(Outputs in Fragmented MP4 or MPEG-TS format only.

*

If you specify a preset in PresetId for which the * value of Container is fmp4 (Fragmented MP4) or * ts (MPEG-TS), SegmentDuration is the target maximum * duration of each segment in seconds. For HLSv3 format playlists, * each media segment is stored in a separate .ts file. For * HLSv4 and Smooth playlists, all media segments for an * output are stored in a single file. Each segment is approximately the length of * the SegmentDuration, though individual segments might be shorter or * longer.

The range of valid values is 1 to 60 seconds. If the duration of * the video is not evenly divisible by SegmentDuration, the duration * of the last segment is the remainder of total length/SegmentDuration.

*

Elastic Transcoder creates an output-specific playlist for each output * HLS output that you specify in OutputKeys. To add an output to the * master playlist for this job, include it in the OutputKeys of the * associated playlist.

*/ inline CreateJobOutput& WithSegmentDuration(const char* value) { SetSegmentDuration(value); return *this;} /** *

Information about the watermarks that you want Elastic Transcoder to add to * the video during transcoding. You can specify up to four watermarks for each * output. Settings for each watermark must be defined in the preset for the * current output.

*/ inline const Aws::Vector& GetWatermarks() const{ return m_watermarks; } /** *

Information about the watermarks that you want Elastic Transcoder to add to * the video during transcoding. You can specify up to four watermarks for each * output. Settings for each watermark must be defined in the preset for the * current output.

*/ inline bool WatermarksHasBeenSet() const { return m_watermarksHasBeenSet; } /** *

Information about the watermarks that you want Elastic Transcoder to add to * the video during transcoding. You can specify up to four watermarks for each * output. Settings for each watermark must be defined in the preset for the * current output.

*/ inline void SetWatermarks(const Aws::Vector& value) { m_watermarksHasBeenSet = true; m_watermarks = value; } /** *

Information about the watermarks that you want Elastic Transcoder to add to * the video during transcoding. You can specify up to four watermarks for each * output. Settings for each watermark must be defined in the preset for the * current output.

*/ inline void SetWatermarks(Aws::Vector&& value) { m_watermarksHasBeenSet = true; m_watermarks = std::move(value); } /** *

Information about the watermarks that you want Elastic Transcoder to add to * the video during transcoding. You can specify up to four watermarks for each * output. Settings for each watermark must be defined in the preset for the * current output.

*/ inline CreateJobOutput& WithWatermarks(const Aws::Vector& value) { SetWatermarks(value); return *this;} /** *

Information about the watermarks that you want Elastic Transcoder to add to * the video during transcoding. You can specify up to four watermarks for each * output. Settings for each watermark must be defined in the preset for the * current output.

*/ inline CreateJobOutput& WithWatermarks(Aws::Vector&& value) { SetWatermarks(std::move(value)); return *this;} /** *

Information about the watermarks that you want Elastic Transcoder to add to * the video during transcoding. You can specify up to four watermarks for each * output. Settings for each watermark must be defined in the preset for the * current output.

*/ inline CreateJobOutput& AddWatermarks(const JobWatermark& value) { m_watermarksHasBeenSet = true; m_watermarks.push_back(value); return *this; } /** *

Information about the watermarks that you want Elastic Transcoder to add to * the video during transcoding. You can specify up to four watermarks for each * output. Settings for each watermark must be defined in the preset for the * current output.

*/ inline CreateJobOutput& AddWatermarks(JobWatermark&& value) { m_watermarksHasBeenSet = true; m_watermarks.push_back(std::move(value)); return *this; } /** *

Information about the album art that you want Elastic Transcoder to add to * the file during transcoding. You can specify up to twenty album artworks for * each output. Settings for each artwork must be defined in the job for the * current output.

*/ inline const JobAlbumArt& GetAlbumArt() const{ return m_albumArt; } /** *

Information about the album art that you want Elastic Transcoder to add to * the file during transcoding. You can specify up to twenty album artworks for * each output. Settings for each artwork must be defined in the job for the * current output.

*/ inline bool AlbumArtHasBeenSet() const { return m_albumArtHasBeenSet; } /** *

Information about the album art that you want Elastic Transcoder to add to * the file during transcoding. You can specify up to twenty album artworks for * each output. Settings for each artwork must be defined in the job for the * current output.

*/ inline void SetAlbumArt(const JobAlbumArt& value) { m_albumArtHasBeenSet = true; m_albumArt = value; } /** *

Information about the album art that you want Elastic Transcoder to add to * the file during transcoding. You can specify up to twenty album artworks for * each output. Settings for each artwork must be defined in the job for the * current output.

*/ inline void SetAlbumArt(JobAlbumArt&& value) { m_albumArtHasBeenSet = true; m_albumArt = std::move(value); } /** *

Information about the album art that you want Elastic Transcoder to add to * the file during transcoding. You can specify up to twenty album artworks for * each output. Settings for each artwork must be defined in the job for the * current output.

*/ inline CreateJobOutput& WithAlbumArt(const JobAlbumArt& value) { SetAlbumArt(value); return *this;} /** *

Information about the album art that you want Elastic Transcoder to add to * the file during transcoding. You can specify up to twenty album artworks for * each output. Settings for each artwork must be defined in the job for the * current output.

*/ inline CreateJobOutput& WithAlbumArt(JobAlbumArt&& value) { SetAlbumArt(std::move(value)); return *this;} /** *

You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic Transcoder * supports two types of captions:

  • Embedded: Embedded * captions are included in the same file as the audio and video. Elastic * Transcoder supports only one embedded caption per language, to a maximum of 300 * embedded captions per file.

    Valid input values include: CEA-608 * (EIA-608, first non-empty channel only), CEA-708 (EIA-708, * first non-empty channel only), and mov-text

    Valid outputs * include: mov-text

    Elastic Transcoder supports a maximum of * one embedded format per output.

  • Sidecar: Sidecar * captions are kept in a separate metadata file from the audio and video data. * Sidecar captions require a player that is capable of understanding the * relationship between the video file and the sidecar file. Elastic Transcoder * supports only one sidecar caption per language, to a maximum of 20 sidecar * captions per file.

    Valid input values include: dfxp (first * div element only), ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt

    Valid outputs include: dfxp (first div * element only), scc, srt, and webvtt.

    *

If you want ttml or smpte-tt compatible captions, specify dfxp as * your output format.

Elastic Transcoder does not support OCR (Optical * Character Recognition), does not accept pictures as a valid input for captions, * and is not available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process.

To remove captions or leave the captions empty, set * Captions to null. To pass through existing captions unchanged, set * the MergePolicy to MergeRetain, and pass in a null * CaptionSources array.

For more information on embedded * files, see the Subtitles Wikipedia page.

For more information on sidecar * files, see the Extensible Metadata Platform and Sidecar file Wikipedia * pages.

*/ inline const Captions& GetCaptions() const{ return m_captions; } /** *

You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic Transcoder * supports two types of captions:

  • Embedded: Embedded * captions are included in the same file as the audio and video. Elastic * Transcoder supports only one embedded caption per language, to a maximum of 300 * embedded captions per file.

    Valid input values include: CEA-608 * (EIA-608, first non-empty channel only), CEA-708 (EIA-708, * first non-empty channel only), and mov-text

    Valid outputs * include: mov-text

    Elastic Transcoder supports a maximum of * one embedded format per output.

  • Sidecar: Sidecar * captions are kept in a separate metadata file from the audio and video data. * Sidecar captions require a player that is capable of understanding the * relationship between the video file and the sidecar file. Elastic Transcoder * supports only one sidecar caption per language, to a maximum of 20 sidecar * captions per file.

    Valid input values include: dfxp (first * div element only), ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt

    Valid outputs include: dfxp (first div * element only), scc, srt, and webvtt.

    *

If you want ttml or smpte-tt compatible captions, specify dfxp as * your output format.

Elastic Transcoder does not support OCR (Optical * Character Recognition), does not accept pictures as a valid input for captions, * and is not available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process.

To remove captions or leave the captions empty, set * Captions to null. To pass through existing captions unchanged, set * the MergePolicy to MergeRetain, and pass in a null * CaptionSources array.

For more information on embedded * files, see the Subtitles Wikipedia page.

For more information on sidecar * files, see the Extensible Metadata Platform and Sidecar file Wikipedia * pages.

*/ inline bool CaptionsHasBeenSet() const { return m_captionsHasBeenSet; } /** *

You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic Transcoder * supports two types of captions:

  • Embedded: Embedded * captions are included in the same file as the audio and video. Elastic * Transcoder supports only one embedded caption per language, to a maximum of 300 * embedded captions per file.

    Valid input values include: CEA-608 * (EIA-608, first non-empty channel only), CEA-708 (EIA-708, * first non-empty channel only), and mov-text

    Valid outputs * include: mov-text

    Elastic Transcoder supports a maximum of * one embedded format per output.

  • Sidecar: Sidecar * captions are kept in a separate metadata file from the audio and video data. * Sidecar captions require a player that is capable of understanding the * relationship between the video file and the sidecar file. Elastic Transcoder * supports only one sidecar caption per language, to a maximum of 20 sidecar * captions per file.

    Valid input values include: dfxp (first * div element only), ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt

    Valid outputs include: dfxp (first div * element only), scc, srt, and webvtt.

    *

If you want ttml or smpte-tt compatible captions, specify dfxp as * your output format.

Elastic Transcoder does not support OCR (Optical * Character Recognition), does not accept pictures as a valid input for captions, * and is not available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process.

To remove captions or leave the captions empty, set * Captions to null. To pass through existing captions unchanged, set * the MergePolicy to MergeRetain, and pass in a null * CaptionSources array.

For more information on embedded * files, see the Subtitles Wikipedia page.

For more information on sidecar * files, see the Extensible Metadata Platform and Sidecar file Wikipedia * pages.

*/ inline void SetCaptions(const Captions& value) { m_captionsHasBeenSet = true; m_captions = value; } /** *

You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic Transcoder * supports two types of captions:

  • Embedded: Embedded * captions are included in the same file as the audio and video. Elastic * Transcoder supports only one embedded caption per language, to a maximum of 300 * embedded captions per file.

    Valid input values include: CEA-608 * (EIA-608, first non-empty channel only), CEA-708 (EIA-708, * first non-empty channel only), and mov-text

    Valid outputs * include: mov-text

    Elastic Transcoder supports a maximum of * one embedded format per output.

  • Sidecar: Sidecar * captions are kept in a separate metadata file from the audio and video data. * Sidecar captions require a player that is capable of understanding the * relationship between the video file and the sidecar file. Elastic Transcoder * supports only one sidecar caption per language, to a maximum of 20 sidecar * captions per file.

    Valid input values include: dfxp (first * div element only), ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt

    Valid outputs include: dfxp (first div * element only), scc, srt, and webvtt.

    *

If you want ttml or smpte-tt compatible captions, specify dfxp as * your output format.

Elastic Transcoder does not support OCR (Optical * Character Recognition), does not accept pictures as a valid input for captions, * and is not available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process.

To remove captions or leave the captions empty, set * Captions to null. To pass through existing captions unchanged, set * the MergePolicy to MergeRetain, and pass in a null * CaptionSources array.

For more information on embedded * files, see the Subtitles Wikipedia page.

For more information on sidecar * files, see the Extensible Metadata Platform and Sidecar file Wikipedia * pages.

*/ inline void SetCaptions(Captions&& value) { m_captionsHasBeenSet = true; m_captions = std::move(value); } /** *

You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic Transcoder * supports two types of captions:

  • Embedded: Embedded * captions are included in the same file as the audio and video. Elastic * Transcoder supports only one embedded caption per language, to a maximum of 300 * embedded captions per file.

    Valid input values include: CEA-608 * (EIA-608, first non-empty channel only), CEA-708 (EIA-708, * first non-empty channel only), and mov-text

    Valid outputs * include: mov-text

    Elastic Transcoder supports a maximum of * one embedded format per output.

  • Sidecar: Sidecar * captions are kept in a separate metadata file from the audio and video data. * Sidecar captions require a player that is capable of understanding the * relationship between the video file and the sidecar file. Elastic Transcoder * supports only one sidecar caption per language, to a maximum of 20 sidecar * captions per file.

    Valid input values include: dfxp (first * div element only), ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt

    Valid outputs include: dfxp (first div * element only), scc, srt, and webvtt.

    *

If you want ttml or smpte-tt compatible captions, specify dfxp as * your output format.

Elastic Transcoder does not support OCR (Optical * Character Recognition), does not accept pictures as a valid input for captions, * and is not available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process.

To remove captions or leave the captions empty, set * Captions to null. To pass through existing captions unchanged, set * the MergePolicy to MergeRetain, and pass in a null * CaptionSources array.

For more information on embedded * files, see the Subtitles Wikipedia page.

For more information on sidecar * files, see the Extensible Metadata Platform and Sidecar file Wikipedia * pages.

*/ inline CreateJobOutput& WithCaptions(const Captions& value) { SetCaptions(value); return *this;} /** *

You can configure Elastic Transcoder to transcode captions, or subtitles, * from one format to another. All captions must be in UTF-8. Elastic Transcoder * supports two types of captions:

  • Embedded: Embedded * captions are included in the same file as the audio and video. Elastic * Transcoder supports only one embedded caption per language, to a maximum of 300 * embedded captions per file.

    Valid input values include: CEA-608 * (EIA-608, first non-empty channel only), CEA-708 (EIA-708, * first non-empty channel only), and mov-text

    Valid outputs * include: mov-text

    Elastic Transcoder supports a maximum of * one embedded format per output.

  • Sidecar: Sidecar * captions are kept in a separate metadata file from the audio and video data. * Sidecar captions require a player that is capable of understanding the * relationship between the video file and the sidecar file. Elastic Transcoder * supports only one sidecar caption per language, to a maximum of 20 sidecar * captions per file.

    Valid input values include: dfxp (first * div element only), ebu-tt, scc, smpt, * srt, ttml (first div element only), and * webvtt

    Valid outputs include: dfxp (first div * element only), scc, srt, and webvtt.

    *

If you want ttml or smpte-tt compatible captions, specify dfxp as * your output format.

Elastic Transcoder does not support OCR (Optical * Character Recognition), does not accept pictures as a valid input for captions, * and is not available for audio-only transcoding. Elastic Transcoder does not * preserve text formatting (for example, italics) during the transcoding * process.

To remove captions or leave the captions empty, set * Captions to null. To pass through existing captions unchanged, set * the MergePolicy to MergeRetain, and pass in a null * CaptionSources array.

For more information on embedded * files, see the Subtitles Wikipedia page.

For more information on sidecar * files, see the Extensible Metadata Platform and Sidecar file Wikipedia * pages.

*/ inline CreateJobOutput& WithCaptions(Captions&& value) { SetCaptions(std::move(value)); return *this;} /** *

You can specify encryption settings for any output files that you want to use * for a transcoding job. This includes the output file and any watermarks, * thumbnails, album art, or captions that you want to use. You must specify * encryption settings for each file individually.

*/ inline const Encryption& GetEncryption() const{ return m_encryption; } /** *

You can specify encryption settings for any output files that you want to use * for a transcoding job. This includes the output file and any watermarks, * thumbnails, album art, or captions that you want to use. You must specify * encryption settings for each file individually.

*/ inline bool EncryptionHasBeenSet() const { return m_encryptionHasBeenSet; } /** *

You can specify encryption settings for any output files that you want to use * for a transcoding job. This includes the output file and any watermarks, * thumbnails, album art, or captions that you want to use. You must specify * encryption settings for each file individually.

*/ inline void SetEncryption(const Encryption& value) { m_encryptionHasBeenSet = true; m_encryption = value; } /** *

You can specify encryption settings for any output files that you want to use * for a transcoding job. This includes the output file and any watermarks, * thumbnails, album art, or captions that you want to use. You must specify * encryption settings for each file individually.

*/ inline void SetEncryption(Encryption&& value) { m_encryptionHasBeenSet = true; m_encryption = std::move(value); } /** *

You can specify encryption settings for any output files that you want to use * for a transcoding job. This includes the output file and any watermarks, * thumbnails, album art, or captions that you want to use. You must specify * encryption settings for each file individually.

*/ inline CreateJobOutput& WithEncryption(const Encryption& value) { SetEncryption(value); return *this;} /** *

You can specify encryption settings for any output files that you want to use * for a transcoding job. This includes the output file and any watermarks, * thumbnails, album art, or captions that you want to use. You must specify * encryption settings for each file individually.

*/ inline CreateJobOutput& WithEncryption(Encryption&& value) { SetEncryption(std::move(value)); return *this;} private: Aws::String m_key; bool m_keyHasBeenSet = false; Aws::String m_thumbnailPattern; bool m_thumbnailPatternHasBeenSet = false; Encryption m_thumbnailEncryption; bool m_thumbnailEncryptionHasBeenSet = false; Aws::String m_rotate; bool m_rotateHasBeenSet = false; Aws::String m_presetId; bool m_presetIdHasBeenSet = false; Aws::String m_segmentDuration; bool m_segmentDurationHasBeenSet = false; Aws::Vector m_watermarks; bool m_watermarksHasBeenSet = false; JobAlbumArt m_albumArt; bool m_albumArtHasBeenSet = false; Captions m_captions; bool m_captionsHasBeenSet = false; Encryption m_encryption; bool m_encryptionHasBeenSet = false; }; } // namespace Model } // namespace ElasticTranscoder } // namespace Aws