1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/elastictranscoder/ElasticTranscoder_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace ElasticTranscoder
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Settings that determine when a clip begins and how long it
28    * lasts.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/elastictranscoder-2012-09-25/TimeSpan">AWS
30    * API Reference</a></p>
31    */
32   class AWS_ELASTICTRANSCODER_API TimeSpan
33   {
34   public:
35     TimeSpan();
36     TimeSpan(Aws::Utils::Json::JsonView jsonValue);
37     TimeSpan& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The place in the input file where you want a clip to start. The format can be
43      * either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a
44      * second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value,
45      * Elastic Transcoder starts at the beginning of the input file.</p>
46      */
GetStartTime()47     inline const Aws::String& GetStartTime() const{ return m_startTime; }
48 
49     /**
50      * <p>The place in the input file where you want a clip to start. The format can be
51      * either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a
52      * second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value,
53      * Elastic Transcoder starts at the beginning of the input file.</p>
54      */
StartTimeHasBeenSet()55     inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; }
56 
57     /**
58      * <p>The place in the input file where you want a clip to start. The format can be
59      * either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a
60      * second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value,
61      * Elastic Transcoder starts at the beginning of the input file.</p>
62      */
SetStartTime(const Aws::String & value)63     inline void SetStartTime(const Aws::String& value) { m_startTimeHasBeenSet = true; m_startTime = value; }
64 
65     /**
66      * <p>The place in the input file where you want a clip to start. The format can be
67      * either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a
68      * second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value,
69      * Elastic Transcoder starts at the beginning of the input file.</p>
70      */
SetStartTime(Aws::String && value)71     inline void SetStartTime(Aws::String&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); }
72 
73     /**
74      * <p>The place in the input file where you want a clip to start. The format can be
75      * either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a
76      * second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value,
77      * Elastic Transcoder starts at the beginning of the input file.</p>
78      */
SetStartTime(const char * value)79     inline void SetStartTime(const char* value) { m_startTimeHasBeenSet = true; m_startTime.assign(value); }
80 
81     /**
82      * <p>The place in the input file where you want a clip to start. The format can be
83      * either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a
84      * second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value,
85      * Elastic Transcoder starts at the beginning of the input file.</p>
86      */
WithStartTime(const Aws::String & value)87     inline TimeSpan& WithStartTime(const Aws::String& value) { SetStartTime(value); return *this;}
88 
89     /**
90      * <p>The place in the input file where you want a clip to start. The format can be
91      * either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a
92      * second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value,
93      * Elastic Transcoder starts at the beginning of the input file.</p>
94      */
WithStartTime(Aws::String && value)95     inline TimeSpan& WithStartTime(Aws::String&& value) { SetStartTime(std::move(value)); return *this;}
96 
97     /**
98      * <p>The place in the input file where you want a clip to start. The format can be
99      * either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a
100      * second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value,
101      * Elastic Transcoder starts at the beginning of the input file.</p>
102      */
WithStartTime(const char * value)103     inline TimeSpan& WithStartTime(const char* value) { SetStartTime(value); return *this;}
104 
105 
106     /**
107      * <p>The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
108      * value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
109      * value: 86399.999). If you don't specify a value, Elastic Transcoder creates an
110      * output file from StartTime to the end of the file.</p> <p>If you specify a value
111      * longer than the duration of the input file, Elastic Transcoder transcodes the
112      * file and returns a warning message.</p>
113      */
GetDuration()114     inline const Aws::String& GetDuration() const{ return m_duration; }
115 
116     /**
117      * <p>The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
118      * value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
119      * value: 86399.999). If you don't specify a value, Elastic Transcoder creates an
120      * output file from StartTime to the end of the file.</p> <p>If you specify a value
121      * longer than the duration of the input file, Elastic Transcoder transcodes the
122      * file and returns a warning message.</p>
123      */
DurationHasBeenSet()124     inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; }
125 
126     /**
127      * <p>The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
128      * value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
129      * value: 86399.999). If you don't specify a value, Elastic Transcoder creates an
130      * output file from StartTime to the end of the file.</p> <p>If you specify a value
131      * longer than the duration of the input file, Elastic Transcoder transcodes the
132      * file and returns a warning message.</p>
133      */
SetDuration(const Aws::String & value)134     inline void SetDuration(const Aws::String& value) { m_durationHasBeenSet = true; m_duration = value; }
135 
136     /**
137      * <p>The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
138      * value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
139      * value: 86399.999). If you don't specify a value, Elastic Transcoder creates an
140      * output file from StartTime to the end of the file.</p> <p>If you specify a value
141      * longer than the duration of the input file, Elastic Transcoder transcodes the
142      * file and returns a warning message.</p>
143      */
SetDuration(Aws::String && value)144     inline void SetDuration(Aws::String&& value) { m_durationHasBeenSet = true; m_duration = std::move(value); }
145 
146     /**
147      * <p>The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
148      * value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
149      * value: 86399.999). If you don't specify a value, Elastic Transcoder creates an
150      * output file from StartTime to the end of the file.</p> <p>If you specify a value
151      * longer than the duration of the input file, Elastic Transcoder transcodes the
152      * file and returns a warning message.</p>
153      */
SetDuration(const char * value)154     inline void SetDuration(const char* value) { m_durationHasBeenSet = true; m_duration.assign(value); }
155 
156     /**
157      * <p>The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
158      * value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
159      * value: 86399.999). If you don't specify a value, Elastic Transcoder creates an
160      * output file from StartTime to the end of the file.</p> <p>If you specify a value
161      * longer than the duration of the input file, Elastic Transcoder transcodes the
162      * file and returns a warning message.</p>
163      */
WithDuration(const Aws::String & value)164     inline TimeSpan& WithDuration(const Aws::String& value) { SetDuration(value); return *this;}
165 
166     /**
167      * <p>The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
168      * value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
169      * value: 86399.999). If you don't specify a value, Elastic Transcoder creates an
170      * output file from StartTime to the end of the file.</p> <p>If you specify a value
171      * longer than the duration of the input file, Elastic Transcoder transcodes the
172      * file and returns a warning message.</p>
173      */
WithDuration(Aws::String && value)174     inline TimeSpan& WithDuration(Aws::String&& value) { SetDuration(std::move(value)); return *this;}
175 
176     /**
177      * <p>The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
178      * value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
179      * value: 86399.999). If you don't specify a value, Elastic Transcoder creates an
180      * output file from StartTime to the end of the file.</p> <p>If you specify a value
181      * longer than the duration of the input file, Elastic Transcoder transcodes the
182      * file and returns a warning message.</p>
183      */
WithDuration(const char * value)184     inline TimeSpan& WithDuration(const char* value) { SetDuration(value); return *this;}
185 
186   private:
187 
188     Aws::String m_startTime;
189     bool m_startTimeHasBeenSet;
190 
191     Aws::String m_duration;
192     bool m_durationHasBeenSet;
193   };
194 
195 } // namespace Model
196 } // namespace ElasticTranscoder
197 } // namespace Aws
198