/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace IVS { namespace Model { /** *

An object representing a configuration of thumbnails for recorded * video.

See Also:

AWS * API Reference

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

Thumbnail recording mode. Default: INTERVAL.

*/ inline const RecordingMode& GetRecordingMode() const{ return m_recordingMode; } /** *

Thumbnail recording mode. Default: INTERVAL.

*/ inline bool RecordingModeHasBeenSet() const { return m_recordingModeHasBeenSet; } /** *

Thumbnail recording mode. Default: INTERVAL.

*/ inline void SetRecordingMode(const RecordingMode& value) { m_recordingModeHasBeenSet = true; m_recordingMode = value; } /** *

Thumbnail recording mode. Default: INTERVAL.

*/ inline void SetRecordingMode(RecordingMode&& value) { m_recordingModeHasBeenSet = true; m_recordingMode = std::move(value); } /** *

Thumbnail recording mode. Default: INTERVAL.

*/ inline ThumbnailConfiguration& WithRecordingMode(const RecordingMode& value) { SetRecordingMode(value); return *this;} /** *

Thumbnail recording mode. Default: INTERVAL.

*/ inline ThumbnailConfiguration& WithRecordingMode(RecordingMode&& value) { SetRecordingMode(std::move(value)); return *this;} /** *

Indicates the desired resolution of recorded thumbnails. Thumbnails are * recorded at the selected resolution if the corresponding rendition is available * during the stream; otherwise, they are recorded at source resolution. For more * information about resolution values and their corresponding height and width * dimensions, see Auto-Record * to Amazon S3. Default: Null (source resolution is returned).

*/ inline const ThumbnailConfigurationResolution& GetResolution() const{ return m_resolution; } /** *

Indicates the desired resolution of recorded thumbnails. Thumbnails are * recorded at the selected resolution if the corresponding rendition is available * during the stream; otherwise, they are recorded at source resolution. For more * information about resolution values and their corresponding height and width * dimensions, see Auto-Record * to Amazon S3. Default: Null (source resolution is returned).

*/ inline bool ResolutionHasBeenSet() const { return m_resolutionHasBeenSet; } /** *

Indicates the desired resolution of recorded thumbnails. Thumbnails are * recorded at the selected resolution if the corresponding rendition is available * during the stream; otherwise, they are recorded at source resolution. For more * information about resolution values and their corresponding height and width * dimensions, see Auto-Record * to Amazon S3. Default: Null (source resolution is returned).

*/ inline void SetResolution(const ThumbnailConfigurationResolution& value) { m_resolutionHasBeenSet = true; m_resolution = value; } /** *

Indicates the desired resolution of recorded thumbnails. Thumbnails are * recorded at the selected resolution if the corresponding rendition is available * during the stream; otherwise, they are recorded at source resolution. For more * information about resolution values and their corresponding height and width * dimensions, see Auto-Record * to Amazon S3. Default: Null (source resolution is returned).

*/ inline void SetResolution(ThumbnailConfigurationResolution&& value) { m_resolutionHasBeenSet = true; m_resolution = std::move(value); } /** *

Indicates the desired resolution of recorded thumbnails. Thumbnails are * recorded at the selected resolution if the corresponding rendition is available * during the stream; otherwise, they are recorded at source resolution. For more * information about resolution values and their corresponding height and width * dimensions, see Auto-Record * to Amazon S3. Default: Null (source resolution is returned).

*/ inline ThumbnailConfiguration& WithResolution(const ThumbnailConfigurationResolution& value) { SetResolution(value); return *this;} /** *

Indicates the desired resolution of recorded thumbnails. Thumbnails are * recorded at the selected resolution if the corresponding rendition is available * during the stream; otherwise, they are recorded at source resolution. For more * information about resolution values and their corresponding height and width * dimensions, see Auto-Record * to Amazon S3. Default: Null (source resolution is returned).

*/ inline ThumbnailConfiguration& WithResolution(ThumbnailConfigurationResolution&& value) { SetResolution(std::move(value)); return *this;} /** *

Indicates the format in which thumbnails are recorded. * SEQUENTIAL records all generated thumbnails in a serial manner, to * the media/thumbnails directory. LATEST saves the latest thumbnail * in media/latest_thumbnail/thumb.jpg and overwrites it at the interval specified * by targetIntervalSeconds. You can enable both * SEQUENTIAL and LATEST. Default: * SEQUENTIAL.

*/ inline const Aws::Vector& GetStorage() const{ return m_storage; } /** *

Indicates the format in which thumbnails are recorded. * SEQUENTIAL records all generated thumbnails in a serial manner, to * the media/thumbnails directory. LATEST saves the latest thumbnail * in media/latest_thumbnail/thumb.jpg and overwrites it at the interval specified * by targetIntervalSeconds. You can enable both * SEQUENTIAL and LATEST. Default: * SEQUENTIAL.

*/ inline bool StorageHasBeenSet() const { return m_storageHasBeenSet; } /** *

Indicates the format in which thumbnails are recorded. * SEQUENTIAL records all generated thumbnails in a serial manner, to * the media/thumbnails directory. LATEST saves the latest thumbnail * in media/latest_thumbnail/thumb.jpg and overwrites it at the interval specified * by targetIntervalSeconds. You can enable both * SEQUENTIAL and LATEST. Default: * SEQUENTIAL.

*/ inline void SetStorage(const Aws::Vector& value) { m_storageHasBeenSet = true; m_storage = value; } /** *

Indicates the format in which thumbnails are recorded. * SEQUENTIAL records all generated thumbnails in a serial manner, to * the media/thumbnails directory. LATEST saves the latest thumbnail * in media/latest_thumbnail/thumb.jpg and overwrites it at the interval specified * by targetIntervalSeconds. You can enable both * SEQUENTIAL and LATEST. Default: * SEQUENTIAL.

*/ inline void SetStorage(Aws::Vector&& value) { m_storageHasBeenSet = true; m_storage = std::move(value); } /** *

Indicates the format in which thumbnails are recorded. * SEQUENTIAL records all generated thumbnails in a serial manner, to * the media/thumbnails directory. LATEST saves the latest thumbnail * in media/latest_thumbnail/thumb.jpg and overwrites it at the interval specified * by targetIntervalSeconds. You can enable both * SEQUENTIAL and LATEST. Default: * SEQUENTIAL.

*/ inline ThumbnailConfiguration& WithStorage(const Aws::Vector& value) { SetStorage(value); return *this;} /** *

Indicates the format in which thumbnails are recorded. * SEQUENTIAL records all generated thumbnails in a serial manner, to * the media/thumbnails directory. LATEST saves the latest thumbnail * in media/latest_thumbnail/thumb.jpg and overwrites it at the interval specified * by targetIntervalSeconds. You can enable both * SEQUENTIAL and LATEST. Default: * SEQUENTIAL.

*/ inline ThumbnailConfiguration& WithStorage(Aws::Vector&& value) { SetStorage(std::move(value)); return *this;} /** *

Indicates the format in which thumbnails are recorded. * SEQUENTIAL records all generated thumbnails in a serial manner, to * the media/thumbnails directory. LATEST saves the latest thumbnail * in media/latest_thumbnail/thumb.jpg and overwrites it at the interval specified * by targetIntervalSeconds. You can enable both * SEQUENTIAL and LATEST. Default: * SEQUENTIAL.

*/ inline ThumbnailConfiguration& AddStorage(const ThumbnailConfigurationStorage& value) { m_storageHasBeenSet = true; m_storage.push_back(value); return *this; } /** *

Indicates the format in which thumbnails are recorded. * SEQUENTIAL records all generated thumbnails in a serial manner, to * the media/thumbnails directory. LATEST saves the latest thumbnail * in media/latest_thumbnail/thumb.jpg and overwrites it at the interval specified * by targetIntervalSeconds. You can enable both * SEQUENTIAL and LATEST. Default: * SEQUENTIAL.

*/ inline ThumbnailConfiguration& AddStorage(ThumbnailConfigurationStorage&& value) { m_storageHasBeenSet = true; m_storage.push_back(std::move(value)); return *this; } /** *

The targeted thumbnail-generation interval in seconds. This is configurable * (and required) only if recordingMode is INTERVAL. * Default: 60.

Important: For the BASIC channel type, * setting a value for targetIntervalSeconds does not guarantee that * thumbnails are generated at the specified interval. For thumbnails to be * generated at the targetIntervalSeconds interval, the * IDR/Keyframe value for the input video must be less than the * targetIntervalSeconds value. See * Amazon IVS Streaming Configuration for information on setting * IDR/Keyframe to the recommended value in video-encoder * settings.

*/ inline long long GetTargetIntervalSeconds() const{ return m_targetIntervalSeconds; } /** *

The targeted thumbnail-generation interval in seconds. This is configurable * (and required) only if recordingMode is INTERVAL. * Default: 60.

Important: For the BASIC channel type, * setting a value for targetIntervalSeconds does not guarantee that * thumbnails are generated at the specified interval. For thumbnails to be * generated at the targetIntervalSeconds interval, the * IDR/Keyframe value for the input video must be less than the * targetIntervalSeconds value. See * Amazon IVS Streaming Configuration for information on setting * IDR/Keyframe to the recommended value in video-encoder * settings.

*/ inline bool TargetIntervalSecondsHasBeenSet() const { return m_targetIntervalSecondsHasBeenSet; } /** *

The targeted thumbnail-generation interval in seconds. This is configurable * (and required) only if recordingMode is INTERVAL. * Default: 60.

Important: For the BASIC channel type, * setting a value for targetIntervalSeconds does not guarantee that * thumbnails are generated at the specified interval. For thumbnails to be * generated at the targetIntervalSeconds interval, the * IDR/Keyframe value for the input video must be less than the * targetIntervalSeconds value. See * Amazon IVS Streaming Configuration for information on setting * IDR/Keyframe to the recommended value in video-encoder * settings.

*/ inline void SetTargetIntervalSeconds(long long value) { m_targetIntervalSecondsHasBeenSet = true; m_targetIntervalSeconds = value; } /** *

The targeted thumbnail-generation interval in seconds. This is configurable * (and required) only if recordingMode is INTERVAL. * Default: 60.

Important: For the BASIC channel type, * setting a value for targetIntervalSeconds does not guarantee that * thumbnails are generated at the specified interval. For thumbnails to be * generated at the targetIntervalSeconds interval, the * IDR/Keyframe value for the input video must be less than the * targetIntervalSeconds value. See * Amazon IVS Streaming Configuration for information on setting * IDR/Keyframe to the recommended value in video-encoder * settings.

*/ inline ThumbnailConfiguration& WithTargetIntervalSeconds(long long value) { SetTargetIntervalSeconds(value); return *this;} private: RecordingMode m_recordingMode; bool m_recordingModeHasBeenSet = false; ThumbnailConfigurationResolution m_resolution; bool m_resolutionHasBeenSet = false; Aws::Vector m_storage; bool m_storageHasBeenSet = false; long long m_targetIntervalSeconds; bool m_targetIntervalSecondsHasBeenSet = false; }; } // namespace Model } // namespace IVS } // namespace Aws