/** * 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 KinesisVideo { namespace Model { /** *

The structure that contains the information required for the KVS images * delivery. If null, the configuration will be deleted from the * stream.

See Also:

AWS * API Reference

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

Indicates whether the ContinuousImageGenerationConfigurations * API is enabled or disabled.

*/ inline const ConfigurationStatus& GetStatus() const{ return m_status; } /** *

Indicates whether the ContinuousImageGenerationConfigurations * API is enabled or disabled.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

Indicates whether the ContinuousImageGenerationConfigurations * API is enabled or disabled.

*/ inline void SetStatus(const ConfigurationStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

Indicates whether the ContinuousImageGenerationConfigurations * API is enabled or disabled.

*/ inline void SetStatus(ConfigurationStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

Indicates whether the ContinuousImageGenerationConfigurations * API is enabled or disabled.

*/ inline ImageGenerationConfiguration& WithStatus(const ConfigurationStatus& value) { SetStatus(value); return *this;} /** *

Indicates whether the ContinuousImageGenerationConfigurations * API is enabled or disabled.

*/ inline ImageGenerationConfiguration& WithStatus(ConfigurationStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

The origin of the Server or Producer timestamps to use to generate the * images.

*/ inline const ImageSelectorType& GetImageSelectorType() const{ return m_imageSelectorType; } /** *

The origin of the Server or Producer timestamps to use to generate the * images.

*/ inline bool ImageSelectorTypeHasBeenSet() const { return m_imageSelectorTypeHasBeenSet; } /** *

The origin of the Server or Producer timestamps to use to generate the * images.

*/ inline void SetImageSelectorType(const ImageSelectorType& value) { m_imageSelectorTypeHasBeenSet = true; m_imageSelectorType = value; } /** *

The origin of the Server or Producer timestamps to use to generate the * images.

*/ inline void SetImageSelectorType(ImageSelectorType&& value) { m_imageSelectorTypeHasBeenSet = true; m_imageSelectorType = std::move(value); } /** *

The origin of the Server or Producer timestamps to use to generate the * images.

*/ inline ImageGenerationConfiguration& WithImageSelectorType(const ImageSelectorType& value) { SetImageSelectorType(value); return *this;} /** *

The origin of the Server or Producer timestamps to use to generate the * images.

*/ inline ImageGenerationConfiguration& WithImageSelectorType(ImageSelectorType&& value) { SetImageSelectorType(std::move(value)); return *this;} /** *

The structure that contains the information required to deliver images to a * customer.

*/ inline const ImageGenerationDestinationConfig& GetDestinationConfig() const{ return m_destinationConfig; } /** *

The structure that contains the information required to deliver images to a * customer.

*/ inline bool DestinationConfigHasBeenSet() const { return m_destinationConfigHasBeenSet; } /** *

The structure that contains the information required to deliver images to a * customer.

*/ inline void SetDestinationConfig(const ImageGenerationDestinationConfig& value) { m_destinationConfigHasBeenSet = true; m_destinationConfig = value; } /** *

The structure that contains the information required to deliver images to a * customer.

*/ inline void SetDestinationConfig(ImageGenerationDestinationConfig&& value) { m_destinationConfigHasBeenSet = true; m_destinationConfig = std::move(value); } /** *

The structure that contains the information required to deliver images to a * customer.

*/ inline ImageGenerationConfiguration& WithDestinationConfig(const ImageGenerationDestinationConfig& value) { SetDestinationConfig(value); return *this;} /** *

The structure that contains the information required to deliver images to a * customer.

*/ inline ImageGenerationConfiguration& WithDestinationConfig(ImageGenerationDestinationConfig&& value) { SetDestinationConfig(std::move(value)); return *this;} /** *

The time interval in milliseconds (ms) at which the images need to be * generated from the stream. The minimum value that can be provided is 33 ms, * because a camera that generates content at 30 FPS would create a frame every * 33.3 ms. If the timestamp range is less than the sampling interval, the Image * from the StartTimestamp will be returned if available.

*/ inline int GetSamplingInterval() const{ return m_samplingInterval; } /** *

The time interval in milliseconds (ms) at which the images need to be * generated from the stream. The minimum value that can be provided is 33 ms, * because a camera that generates content at 30 FPS would create a frame every * 33.3 ms. If the timestamp range is less than the sampling interval, the Image * from the StartTimestamp will be returned if available.

*/ inline bool SamplingIntervalHasBeenSet() const { return m_samplingIntervalHasBeenSet; } /** *

The time interval in milliseconds (ms) at which the images need to be * generated from the stream. The minimum value that can be provided is 33 ms, * because a camera that generates content at 30 FPS would create a frame every * 33.3 ms. If the timestamp range is less than the sampling interval, the Image * from the StartTimestamp will be returned if available.

*/ inline void SetSamplingInterval(int value) { m_samplingIntervalHasBeenSet = true; m_samplingInterval = value; } /** *

The time interval in milliseconds (ms) at which the images need to be * generated from the stream. The minimum value that can be provided is 33 ms, * because a camera that generates content at 30 FPS would create a frame every * 33.3 ms. If the timestamp range is less than the sampling interval, the Image * from the StartTimestamp will be returned if available.

*/ inline ImageGenerationConfiguration& WithSamplingInterval(int value) { SetSamplingInterval(value); return *this;} /** *

The accepted image format.

*/ inline const Format& GetFormat() const{ return m_format; } /** *

The accepted image format.

*/ inline bool FormatHasBeenSet() const { return m_formatHasBeenSet; } /** *

The accepted image format.

*/ inline void SetFormat(const Format& value) { m_formatHasBeenSet = true; m_format = value; } /** *

The accepted image format.

*/ inline void SetFormat(Format&& value) { m_formatHasBeenSet = true; m_format = std::move(value); } /** *

The accepted image format.

*/ inline ImageGenerationConfiguration& WithFormat(const Format& value) { SetFormat(value); return *this;} /** *

The accepted image format.

*/ inline ImageGenerationConfiguration& WithFormat(Format&& value) { SetFormat(std::move(value)); return *this;} /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline const Aws::Map& GetFormatConfig() const{ return m_formatConfig; } /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline bool FormatConfigHasBeenSet() const { return m_formatConfigHasBeenSet; } /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline void SetFormatConfig(const Aws::Map& value) { m_formatConfigHasBeenSet = true; m_formatConfig = value; } /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline void SetFormatConfig(Aws::Map&& value) { m_formatConfigHasBeenSet = true; m_formatConfig = std::move(value); } /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline ImageGenerationConfiguration& WithFormatConfig(const Aws::Map& value) { SetFormatConfig(value); return *this;} /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline ImageGenerationConfiguration& WithFormatConfig(Aws::Map&& value) { SetFormatConfig(std::move(value)); return *this;} /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline ImageGenerationConfiguration& AddFormatConfig(const FormatConfigKey& key, const Aws::String& value) { m_formatConfigHasBeenSet = true; m_formatConfig.emplace(key, value); return *this; } /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline ImageGenerationConfiguration& AddFormatConfig(FormatConfigKey&& key, const Aws::String& value) { m_formatConfigHasBeenSet = true; m_formatConfig.emplace(std::move(key), value); return *this; } /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline ImageGenerationConfiguration& AddFormatConfig(const FormatConfigKey& key, Aws::String&& value) { m_formatConfigHasBeenSet = true; m_formatConfig.emplace(key, std::move(value)); return *this; } /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline ImageGenerationConfiguration& AddFormatConfig(FormatConfigKey&& key, Aws::String&& value) { m_formatConfigHasBeenSet = true; m_formatConfig.emplace(std::move(key), std::move(value)); return *this; } /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline ImageGenerationConfiguration& AddFormatConfig(FormatConfigKey&& key, const char* value) { m_formatConfigHasBeenSet = true; m_formatConfig.emplace(std::move(key), value); return *this; } /** *

The list of a key-value pair structure that contains extra parameters that * can be applied when the image is generated. The FormatConfig key is * the JPEGQuality, which indicates the JPEG quality key to be used to * generate the image. The FormatConfig value accepts ints from 1 to * 100. If the value is 1, the image will be generated with less quality and the * best compression. If the value is 100, the image will be generated with the best * quality and less compression. If no value is provided, the default value of the * JPEGQuality key will be set to 80.

*/ inline ImageGenerationConfiguration& AddFormatConfig(const FormatConfigKey& key, const char* value) { m_formatConfigHasBeenSet = true; m_formatConfig.emplace(key, value); return *this; } /** *

The width of the output image that is used in conjunction with the * HeightPixels parameter. When both WidthPixels and * HeightPixels parameters are provided, the image will be stretched * to fit the specified aspect ratio. If only the WidthPixels * parameter is provided, its original aspect ratio will be used to calculate the * HeightPixels ratio. If neither parameter is provided, the original * image size will be returned.

*/ inline int GetWidthPixels() const{ return m_widthPixels; } /** *

The width of the output image that is used in conjunction with the * HeightPixels parameter. When both WidthPixels and * HeightPixels parameters are provided, the image will be stretched * to fit the specified aspect ratio. If only the WidthPixels * parameter is provided, its original aspect ratio will be used to calculate the * HeightPixels ratio. If neither parameter is provided, the original * image size will be returned.

*/ inline bool WidthPixelsHasBeenSet() const { return m_widthPixelsHasBeenSet; } /** *

The width of the output image that is used in conjunction with the * HeightPixels parameter. When both WidthPixels and * HeightPixels parameters are provided, the image will be stretched * to fit the specified aspect ratio. If only the WidthPixels * parameter is provided, its original aspect ratio will be used to calculate the * HeightPixels ratio. If neither parameter is provided, the original * image size will be returned.

*/ inline void SetWidthPixels(int value) { m_widthPixelsHasBeenSet = true; m_widthPixels = value; } /** *

The width of the output image that is used in conjunction with the * HeightPixels parameter. When both WidthPixels and * HeightPixels parameters are provided, the image will be stretched * to fit the specified aspect ratio. If only the WidthPixels * parameter is provided, its original aspect ratio will be used to calculate the * HeightPixels ratio. If neither parameter is provided, the original * image size will be returned.

*/ inline ImageGenerationConfiguration& WithWidthPixels(int value) { SetWidthPixels(value); return *this;} /** *

The height of the output image that is used in conjunction with the * WidthPixels parameter. When both HeightPixels and * WidthPixels parameters are provided, the image will be stretched to * fit the specified aspect ratio. If only the HeightPixels parameter * is provided, its original aspect ratio will be used to calculate the * WidthPixels ratio. If neither parameter is provided, the original * image size will be returned.

*/ inline int GetHeightPixels() const{ return m_heightPixels; } /** *

The height of the output image that is used in conjunction with the * WidthPixels parameter. When both HeightPixels and * WidthPixels parameters are provided, the image will be stretched to * fit the specified aspect ratio. If only the HeightPixels parameter * is provided, its original aspect ratio will be used to calculate the * WidthPixels ratio. If neither parameter is provided, the original * image size will be returned.

*/ inline bool HeightPixelsHasBeenSet() const { return m_heightPixelsHasBeenSet; } /** *

The height of the output image that is used in conjunction with the * WidthPixels parameter. When both HeightPixels and * WidthPixels parameters are provided, the image will be stretched to * fit the specified aspect ratio. If only the HeightPixels parameter * is provided, its original aspect ratio will be used to calculate the * WidthPixels ratio. If neither parameter is provided, the original * image size will be returned.

*/ inline void SetHeightPixels(int value) { m_heightPixelsHasBeenSet = true; m_heightPixels = value; } /** *

The height of the output image that is used in conjunction with the * WidthPixels parameter. When both HeightPixels and * WidthPixels parameters are provided, the image will be stretched to * fit the specified aspect ratio. If only the HeightPixels parameter * is provided, its original aspect ratio will be used to calculate the * WidthPixels ratio. If neither parameter is provided, the original * image size will be returned.

*/ inline ImageGenerationConfiguration& WithHeightPixels(int value) { SetHeightPixels(value); return *this;} private: ConfigurationStatus m_status; bool m_statusHasBeenSet = false; ImageSelectorType m_imageSelectorType; bool m_imageSelectorTypeHasBeenSet = false; ImageGenerationDestinationConfig m_destinationConfig; bool m_destinationConfigHasBeenSet = false; int m_samplingInterval; bool m_samplingIntervalHasBeenSet = false; Format m_format; bool m_formatHasBeenSet = false; Aws::Map m_formatConfig; bool m_formatConfigHasBeenSet = false; int m_widthPixels; bool m_widthPixelsHasBeenSet = false; int m_heightPixels; bool m_heightPixelsHasBeenSet = false; }; } // namespace Model } // namespace KinesisVideo } // namespace Aws