/*
 * 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 elastictranscoder-2012-09-25.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.ElasticTranscoder.Model
{
    /// 
    /// Thumbnails for videos.
    /// 
    public partial class Thumbnails
    {
        private string _aspectRatio;
        private string _format;
        private string _interval;
        private string _maxHeight;
        private string _maxWidth;
        private string _paddingPolicy;
        private string _resolution;
        private string _sizingPolicy;
        /// 
        /// Gets and sets the property AspectRatio.  
        /// 
        /// To better control resolution and aspect ratio of thumbnails, we recommend that you
        /// use the values MaxWidth, MaxHeight, SizingPolicy,
        /// and PaddingPolicy instead of Resolution and AspectRatio.
        /// The two groups of settings are mutually exclusive. Do not use them together.
        /// 
        ///   
        /// 
        /// The aspect ratio of thumbnails. Valid values include:
        /// 
        ///  
        /// 
        ///  auto, 1:1, 4:3, 3:2, 16:9
        /// 
        /// 
        ///  
        /// 
        /// If you specify auto, Elastic Transcoder tries to preserve the aspect
        /// ratio of the video in the output file.
        /// 
        /// 
        public string AspectRatio
        {
            get { return this._aspectRatio; }
            set { this._aspectRatio = value; }
        }
        // Check to see if AspectRatio property is set
        internal bool IsSetAspectRatio()
        {
            return this._aspectRatio != null;
        }
        /// 
        /// Gets and sets the property Format. 
        /// 
        /// The format of thumbnails, if any. Valid values are jpg and png.
        /// 
        /// 
        ///  
        /// 
        /// You specify whether you want Elastic Transcoder to create thumbnails when you create
        /// a job.
        /// 
        /// 
        public string 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 Interval. 
        /// 
        /// The approximate number of seconds between thumbnails. Specify an integer value.
        /// 
        /// 
        public string Interval
        {
            get { return this._interval; }
            set { this._interval = value; }
        }
        // Check to see if Interval property is set
        internal bool IsSetInterval()
        {
            return this._interval != null;
        }
        /// 
        /// Gets and sets the property MaxHeight. 
        /// 
        /// The maximum height of thumbnails in pixels. If you specify auto, Elastic Transcoder
        /// uses 1080 (Full HD) as the default value. If you specify a numeric value, enter an
        /// even integer between 32 and 3072.
        /// 
        /// 
        public string MaxHeight
        {
            get { return this._maxHeight; }
            set { this._maxHeight = value; }
        }
        // Check to see if MaxHeight property is set
        internal bool IsSetMaxHeight()
        {
            return this._maxHeight != null;
        }
        /// 
        /// Gets and sets the property MaxWidth. 
        /// 
        /// The maximum width of thumbnails in pixels. If you specify auto, Elastic Transcoder
        /// uses 1920 (Full HD) as the default value. If you specify a numeric value, enter an
        /// even integer between 32 and 4096.
        /// 
        /// 
        public string MaxWidth
        {
            get { return this._maxWidth; }
            set { this._maxWidth = value; }
        }
        // Check to see if MaxWidth property is set
        internal bool IsSetMaxWidth()
        {
            return this._maxWidth != null;
        }
        /// 
        /// Gets and sets the property PaddingPolicy. 
        /// 
        /// When you set PaddingPolicy to Pad, Elastic Transcoder may
        /// add black bars to the top and bottom and/or left and right sides of thumbnails to
        /// make the total size of the thumbnails match the values that you specified for thumbnail
        /// MaxWidth and MaxHeight settings.
        /// 
        /// 
        public string PaddingPolicy
        {
            get { return this._paddingPolicy; }
            set { this._paddingPolicy = value; }
        }
        // Check to see if PaddingPolicy property is set
        internal bool IsSetPaddingPolicy()
        {
            return this._paddingPolicy != null;
        }
        /// 
        /// Gets and sets the property Resolution.  
        /// 
        /// To better control resolution and aspect ratio of thumbnails, we recommend that you
        /// use the values MaxWidth, MaxHeight, SizingPolicy,
        /// and PaddingPolicy instead of Resolution and AspectRatio.
        /// The two groups of settings are mutually exclusive. Do not use them together.
        /// 
        ///   
        /// 
        /// The width and height of thumbnail files in pixels. Specify a value in the format 
        /// width  x  height  where both values are even integers.
        /// The values cannot exceed the width and height that you specified in the Video:Resolution
        /// object.
        /// 
        /// 
        public string Resolution
        {
            get { return this._resolution; }
            set { this._resolution = value; }
        }
        // Check to see if Resolution property is set
        internal bool IsSetResolution()
        {
            return this._resolution != null;
        }
        /// 
        /// Gets and sets the property SizingPolicy. 
        /// 
        /// Specify one of the following values to control scaling of thumbnails:
        /// 
        ///   -  
        /// 
        ///  Fit: Elastic Transcoder scales thumbnails so they match the value that
        /// you specified in thumbnail MaxWidth or MaxHeight settings without exceeding the other
        /// value. 
        /// 
        ///
-  
        /// 
        ///  Fill: Elastic Transcoder scales thumbnails so they match the value that
        /// you specified in thumbnailMaxWidthorMaxHeightsettings
        /// and matches or exceeds the other value. Elastic Transcoder centers the image in thumbnails
        /// and then crops in the dimension (if any) that exceeds the maximum value.
        /// 
        ///
-  
        /// 
        ///  Stretch: Elastic Transcoder stretches thumbnails to match the values
        /// that you specified for thumbnailMaxWidthandMaxHeight/// settings. If the relative proportions of the input video and thumbnails are different,
        /// the thumbnails will be distorted.
        /// 
        ///
-  
        /// 
        ///  Keep: Elastic Transcoder does not scale thumbnails. If either dimension
        /// of the input video exceeds the values that you specified for thumbnailMaxWidth/// andMaxHeightsettings, Elastic Transcoder crops the thumbnails.
        /// 
        ///
-  
        /// 
        ///  ShrinkToFit: Elastic Transcoder scales thumbnails down so that their
        /// dimensions match the values that you specified for at least one of thumbnailMaxWidth/// andMaxHeightwithout exceeding either value. If you specify this option,
        /// Elastic Transcoder does not scale thumbnails up.
        /// 
        ///
-  
        /// 
        ///  ShrinkToFill: Elastic Transcoder scales thumbnails down so that their
        /// dimensions match the values that you specified for at least one ofMaxWidth/// andMaxHeightwithout dropping below either value. If you specify this
        /// option, Elastic Transcoder does not scale thumbnails up.
        /// 
        ///
/// 
        public string SizingPolicy
        {
            get { return this._sizingPolicy; }
            set { this._sizingPolicy = value; }
        }
        // Check to see if SizingPolicy property is set
        internal bool IsSetSizingPolicy()
        {
            return this._sizingPolicy != null;
        }
    }
}