/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the kinesisvideo-2017-09-30.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.KinesisVideo.Model
{
///
/// The structure that contains the information required for the KVS images delivery.
/// If null, the configuration will be deleted from the stream.
///
public partial class ImageGenerationConfiguration
{
private ImageGenerationDestinationConfig _destinationConfig;
private Format _format;
private Dictionary _formatConfig = new Dictionary();
private int? _heightPixels;
private ImageSelectorType _imageSelectorType;
private int? _samplingInterval;
private ConfigurationStatus _status;
private int? _widthPixels;
///
/// Gets and sets the property DestinationConfig.
///
/// The structure that contains the information required to deliver images to a customer.
///
///
[AWSProperty(Required=true)]
public ImageGenerationDestinationConfig DestinationConfig
{
get { return this._destinationConfig; }
set { this._destinationConfig = value; }
}
// Check to see if DestinationConfig property is set
internal bool IsSetDestinationConfig()
{
return this._destinationConfig != null;
}
///
/// Gets and sets the property Format.
///
/// The accepted image format.
///
///
[AWSProperty(Required=true)]
public Format Format
{
get { return this._format; }
set { this._format = value; }
}
// Check to see if Format property is set
internal bool IsSetFormat()
{
return this._format != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=1, Max=1)]
public Dictionary FormatConfig
{
get { return this._formatConfig; }
set { this._formatConfig = value; }
}
// Check to see if FormatConfig property is set
internal bool IsSetFormatConfig()
{
return this._formatConfig != null && this._formatConfig.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=1, Max=2160)]
public int HeightPixels
{
get { return this._heightPixels.GetValueOrDefault(); }
set { this._heightPixels = value; }
}
// Check to see if HeightPixels property is set
internal bool IsSetHeightPixels()
{
return this._heightPixels.HasValue;
}
///
/// Gets and sets the property ImageSelectorType.
///
/// The origin of the Server or Producer timestamps to use to generate the images.
///
///
[AWSProperty(Required=true)]
public ImageSelectorType ImageSelectorType
{
get { return this._imageSelectorType; }
set { this._imageSelectorType = value; }
}
// Check to see if ImageSelectorType property is set
internal bool IsSetImageSelectorType()
{
return this._imageSelectorType != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true, Min=3000, Max=20000)]
public int SamplingInterval
{
get { return this._samplingInterval.GetValueOrDefault(); }
set { this._samplingInterval = value; }
}
// Check to see if SamplingInterval property is set
internal bool IsSetSamplingInterval()
{
return this._samplingInterval.HasValue;
}
///
/// Gets and sets the property Status.
///
/// Indicates whether the ContinuousImageGenerationConfigurations
API is
/// enabled or disabled.
///
///
[AWSProperty(Required=true)]
public ConfigurationStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=1, Max=3840)]
public int WidthPixels
{
get { return this._widthPixels.GetValueOrDefault(); }
set { this._widthPixels = value; }
}
// Check to see if WidthPixels property is set
internal bool IsSetWidthPixels()
{
return this._widthPixels.HasValue;
}
}
}