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 <aws/elastictranscoder/model/JobInput.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/elastictranscoder/model/JobOutput.h>
12 #include <aws/core/utils/memory/stl/AWSMap.h>
13 #include <aws/elastictranscoder/model/Timing.h>
14 #include <aws/elastictranscoder/model/Playlist.h>
15 #include <utility>
16 
17 namespace Aws
18 {
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24   class JsonView;
25 } // namespace Json
26 } // namespace Utils
27 namespace ElasticTranscoder
28 {
29 namespace Model
30 {
31 
32   /**
33    * <p>A section of the response body that provides information about the job that
34    * is created.</p><p><h3>See Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/elastictranscoder-2012-09-25/Job">AWS
36    * API Reference</a></p>
37    */
38   class AWS_ELASTICTRANSCODER_API Job
39   {
40   public:
41     Job();
42     Job(Aws::Utils::Json::JsonView jsonValue);
43     Job& operator=(Aws::Utils::Json::JsonView jsonValue);
44     Aws::Utils::Json::JsonValue Jsonize() const;
45 
46 
47     /**
48      * <p>The identifier that Elastic Transcoder assigned to the job. You use this
49      * value to get settings for the job or to delete the job.</p>
50      */
GetId()51     inline const Aws::String& GetId() const{ return m_id; }
52 
53     /**
54      * <p>The identifier that Elastic Transcoder assigned to the job. You use this
55      * value to get settings for the job or to delete the job.</p>
56      */
IdHasBeenSet()57     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
58 
59     /**
60      * <p>The identifier that Elastic Transcoder assigned to the job. You use this
61      * value to get settings for the job or to delete the job.</p>
62      */
SetId(const Aws::String & value)63     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
64 
65     /**
66      * <p>The identifier that Elastic Transcoder assigned to the job. You use this
67      * value to get settings for the job or to delete the job.</p>
68      */
SetId(Aws::String && value)69     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
70 
71     /**
72      * <p>The identifier that Elastic Transcoder assigned to the job. You use this
73      * value to get settings for the job or to delete the job.</p>
74      */
SetId(const char * value)75     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
76 
77     /**
78      * <p>The identifier that Elastic Transcoder assigned to the job. You use this
79      * value to get settings for the job or to delete the job.</p>
80      */
WithId(const Aws::String & value)81     inline Job& WithId(const Aws::String& value) { SetId(value); return *this;}
82 
83     /**
84      * <p>The identifier that Elastic Transcoder assigned to the job. You use this
85      * value to get settings for the job or to delete the job.</p>
86      */
WithId(Aws::String && value)87     inline Job& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
88 
89     /**
90      * <p>The identifier that Elastic Transcoder assigned to the job. You use this
91      * value to get settings for the job or to delete the job.</p>
92      */
WithId(const char * value)93     inline Job& WithId(const char* value) { SetId(value); return *this;}
94 
95 
96     /**
97      * <p>The Amazon Resource Name (ARN) for the job.</p>
98      */
GetArn()99     inline const Aws::String& GetArn() const{ return m_arn; }
100 
101     /**
102      * <p>The Amazon Resource Name (ARN) for the job.</p>
103      */
ArnHasBeenSet()104     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
105 
106     /**
107      * <p>The Amazon Resource Name (ARN) for the job.</p>
108      */
SetArn(const Aws::String & value)109     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
110 
111     /**
112      * <p>The Amazon Resource Name (ARN) for the job.</p>
113      */
SetArn(Aws::String && value)114     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
115 
116     /**
117      * <p>The Amazon Resource Name (ARN) for the job.</p>
118      */
SetArn(const char * value)119     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
120 
121     /**
122      * <p>The Amazon Resource Name (ARN) for the job.</p>
123      */
WithArn(const Aws::String & value)124     inline Job& WithArn(const Aws::String& value) { SetArn(value); return *this;}
125 
126     /**
127      * <p>The Amazon Resource Name (ARN) for the job.</p>
128      */
WithArn(Aws::String && value)129     inline Job& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
130 
131     /**
132      * <p>The Amazon Resource Name (ARN) for the job.</p>
133      */
WithArn(const char * value)134     inline Job& WithArn(const char* value) { SetArn(value); return *this;}
135 
136 
137     /**
138      * <p> The <code>Id</code> of the pipeline that you want Elastic Transcoder to use
139      * for transcoding. The pipeline determines several settings, including the Amazon
140      * S3 bucket from which Elastic Transcoder gets the files to transcode and the
141      * bucket into which Elastic Transcoder puts the transcoded files. </p>
142      */
GetPipelineId()143     inline const Aws::String& GetPipelineId() const{ return m_pipelineId; }
144 
145     /**
146      * <p> The <code>Id</code> of the pipeline that you want Elastic Transcoder to use
147      * for transcoding. The pipeline determines several settings, including the Amazon
148      * S3 bucket from which Elastic Transcoder gets the files to transcode and the
149      * bucket into which Elastic Transcoder puts the transcoded files. </p>
150      */
PipelineIdHasBeenSet()151     inline bool PipelineIdHasBeenSet() const { return m_pipelineIdHasBeenSet; }
152 
153     /**
154      * <p> The <code>Id</code> of the pipeline that you want Elastic Transcoder to use
155      * for transcoding. The pipeline determines several settings, including the Amazon
156      * S3 bucket from which Elastic Transcoder gets the files to transcode and the
157      * bucket into which Elastic Transcoder puts the transcoded files. </p>
158      */
SetPipelineId(const Aws::String & value)159     inline void SetPipelineId(const Aws::String& value) { m_pipelineIdHasBeenSet = true; m_pipelineId = value; }
160 
161     /**
162      * <p> The <code>Id</code> of the pipeline that you want Elastic Transcoder to use
163      * for transcoding. The pipeline determines several settings, including the Amazon
164      * S3 bucket from which Elastic Transcoder gets the files to transcode and the
165      * bucket into which Elastic Transcoder puts the transcoded files. </p>
166      */
SetPipelineId(Aws::String && value)167     inline void SetPipelineId(Aws::String&& value) { m_pipelineIdHasBeenSet = true; m_pipelineId = std::move(value); }
168 
169     /**
170      * <p> The <code>Id</code> of the pipeline that you want Elastic Transcoder to use
171      * for transcoding. The pipeline determines several settings, including the Amazon
172      * S3 bucket from which Elastic Transcoder gets the files to transcode and the
173      * bucket into which Elastic Transcoder puts the transcoded files. </p>
174      */
SetPipelineId(const char * value)175     inline void SetPipelineId(const char* value) { m_pipelineIdHasBeenSet = true; m_pipelineId.assign(value); }
176 
177     /**
178      * <p> The <code>Id</code> of the pipeline that you want Elastic Transcoder to use
179      * for transcoding. The pipeline determines several settings, including the Amazon
180      * S3 bucket from which Elastic Transcoder gets the files to transcode and the
181      * bucket into which Elastic Transcoder puts the transcoded files. </p>
182      */
WithPipelineId(const Aws::String & value)183     inline Job& WithPipelineId(const Aws::String& value) { SetPipelineId(value); return *this;}
184 
185     /**
186      * <p> The <code>Id</code> of the pipeline that you want Elastic Transcoder to use
187      * for transcoding. The pipeline determines several settings, including the Amazon
188      * S3 bucket from which Elastic Transcoder gets the files to transcode and the
189      * bucket into which Elastic Transcoder puts the transcoded files. </p>
190      */
WithPipelineId(Aws::String && value)191     inline Job& WithPipelineId(Aws::String&& value) { SetPipelineId(std::move(value)); return *this;}
192 
193     /**
194      * <p> The <code>Id</code> of the pipeline that you want Elastic Transcoder to use
195      * for transcoding. The pipeline determines several settings, including the Amazon
196      * S3 bucket from which Elastic Transcoder gets the files to transcode and the
197      * bucket into which Elastic Transcoder puts the transcoded files. </p>
198      */
WithPipelineId(const char * value)199     inline Job& WithPipelineId(const char* value) { SetPipelineId(value); return *this;}
200 
201 
202     /**
203      * <p>A section of the request or response body that provides information about the
204      * file that is being transcoded.</p>
205      */
GetInput()206     inline const JobInput& GetInput() const{ return m_input; }
207 
208     /**
209      * <p>A section of the request or response body that provides information about the
210      * file that is being transcoded.</p>
211      */
InputHasBeenSet()212     inline bool InputHasBeenSet() const { return m_inputHasBeenSet; }
213 
214     /**
215      * <p>A section of the request or response body that provides information about the
216      * file that is being transcoded.</p>
217      */
SetInput(const JobInput & value)218     inline void SetInput(const JobInput& value) { m_inputHasBeenSet = true; m_input = value; }
219 
220     /**
221      * <p>A section of the request or response body that provides information about the
222      * file that is being transcoded.</p>
223      */
SetInput(JobInput && value)224     inline void SetInput(JobInput&& value) { m_inputHasBeenSet = true; m_input = std::move(value); }
225 
226     /**
227      * <p>A section of the request or response body that provides information about the
228      * file that is being transcoded.</p>
229      */
WithInput(const JobInput & value)230     inline Job& WithInput(const JobInput& value) { SetInput(value); return *this;}
231 
232     /**
233      * <p>A section of the request or response body that provides information about the
234      * file that is being transcoded.</p>
235      */
WithInput(JobInput && value)236     inline Job& WithInput(JobInput&& value) { SetInput(std::move(value)); return *this;}
237 
238 
239     /**
240      * <p>Information about the files that you're transcoding. If you specified
241      * multiple files for this job, Elastic Transcoder stitches the files together to
242      * make one output.</p>
243      */
GetInputs()244     inline const Aws::Vector<JobInput>& GetInputs() const{ return m_inputs; }
245 
246     /**
247      * <p>Information about the files that you're transcoding. If you specified
248      * multiple files for this job, Elastic Transcoder stitches the files together to
249      * make one output.</p>
250      */
InputsHasBeenSet()251     inline bool InputsHasBeenSet() const { return m_inputsHasBeenSet; }
252 
253     /**
254      * <p>Information about the files that you're transcoding. If you specified
255      * multiple files for this job, Elastic Transcoder stitches the files together to
256      * make one output.</p>
257      */
SetInputs(const Aws::Vector<JobInput> & value)258     inline void SetInputs(const Aws::Vector<JobInput>& value) { m_inputsHasBeenSet = true; m_inputs = value; }
259 
260     /**
261      * <p>Information about the files that you're transcoding. If you specified
262      * multiple files for this job, Elastic Transcoder stitches the files together to
263      * make one output.</p>
264      */
SetInputs(Aws::Vector<JobInput> && value)265     inline void SetInputs(Aws::Vector<JobInput>&& value) { m_inputsHasBeenSet = true; m_inputs = std::move(value); }
266 
267     /**
268      * <p>Information about the files that you're transcoding. If you specified
269      * multiple files for this job, Elastic Transcoder stitches the files together to
270      * make one output.</p>
271      */
WithInputs(const Aws::Vector<JobInput> & value)272     inline Job& WithInputs(const Aws::Vector<JobInput>& value) { SetInputs(value); return *this;}
273 
274     /**
275      * <p>Information about the files that you're transcoding. If you specified
276      * multiple files for this job, Elastic Transcoder stitches the files together to
277      * make one output.</p>
278      */
WithInputs(Aws::Vector<JobInput> && value)279     inline Job& WithInputs(Aws::Vector<JobInput>&& value) { SetInputs(std::move(value)); return *this;}
280 
281     /**
282      * <p>Information about the files that you're transcoding. If you specified
283      * multiple files for this job, Elastic Transcoder stitches the files together to
284      * make one output.</p>
285      */
AddInputs(const JobInput & value)286     inline Job& AddInputs(const JobInput& value) { m_inputsHasBeenSet = true; m_inputs.push_back(value); return *this; }
287 
288     /**
289      * <p>Information about the files that you're transcoding. If you specified
290      * multiple files for this job, Elastic Transcoder stitches the files together to
291      * make one output.</p>
292      */
AddInputs(JobInput && value)293     inline Job& AddInputs(JobInput&& value) { m_inputsHasBeenSet = true; m_inputs.push_back(std::move(value)); return *this; }
294 
295 
296     /**
297      * <p>If you specified one output for a job, information about that output. If you
298      * specified multiple outputs for a job, the Output object lists information about
299      * the first output. This duplicates the information that is listed for the first
300      * output in the Outputs object.</p>  <p>Outputs recommended
301      * instead.</p>  <p>A section of the request or response body that
302      * provides information about the transcoded (target) file. </p>
303      */
GetOutput()304     inline const JobOutput& GetOutput() const{ return m_output; }
305 
306     /**
307      * <p>If you specified one output for a job, information about that output. If you
308      * specified multiple outputs for a job, the Output object lists information about
309      * the first output. This duplicates the information that is listed for the first
310      * output in the Outputs object.</p>  <p>Outputs recommended
311      * instead.</p>  <p>A section of the request or response body that
312      * provides information about the transcoded (target) file. </p>
313      */
OutputHasBeenSet()314     inline bool OutputHasBeenSet() const { return m_outputHasBeenSet; }
315 
316     /**
317      * <p>If you specified one output for a job, information about that output. If you
318      * specified multiple outputs for a job, the Output object lists information about
319      * the first output. This duplicates the information that is listed for the first
320      * output in the Outputs object.</p>  <p>Outputs recommended
321      * instead.</p>  <p>A section of the request or response body that
322      * provides information about the transcoded (target) file. </p>
323      */
SetOutput(const JobOutput & value)324     inline void SetOutput(const JobOutput& value) { m_outputHasBeenSet = true; m_output = value; }
325 
326     /**
327      * <p>If you specified one output for a job, information about that output. If you
328      * specified multiple outputs for a job, the Output object lists information about
329      * the first output. This duplicates the information that is listed for the first
330      * output in the Outputs object.</p>  <p>Outputs recommended
331      * instead.</p>  <p>A section of the request or response body that
332      * provides information about the transcoded (target) file. </p>
333      */
SetOutput(JobOutput && value)334     inline void SetOutput(JobOutput&& value) { m_outputHasBeenSet = true; m_output = std::move(value); }
335 
336     /**
337      * <p>If you specified one output for a job, information about that output. If you
338      * specified multiple outputs for a job, the Output object lists information about
339      * the first output. This duplicates the information that is listed for the first
340      * output in the Outputs object.</p>  <p>Outputs recommended
341      * instead.</p>  <p>A section of the request or response body that
342      * provides information about the transcoded (target) file. </p>
343      */
WithOutput(const JobOutput & value)344     inline Job& WithOutput(const JobOutput& value) { SetOutput(value); return *this;}
345 
346     /**
347      * <p>If you specified one output for a job, information about that output. If you
348      * specified multiple outputs for a job, the Output object lists information about
349      * the first output. This duplicates the information that is listed for the first
350      * output in the Outputs object.</p>  <p>Outputs recommended
351      * instead.</p>  <p>A section of the request or response body that
352      * provides information about the transcoded (target) file. </p>
353      */
WithOutput(JobOutput && value)354     inline Job& WithOutput(JobOutput&& value) { SetOutput(std::move(value)); return *this;}
355 
356 
357     /**
358      * <p>Information about the output files. We recommend that you use the
359      * <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder
360      * to transcode a file into only one format. Do not use both the
361      * <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You
362      * can create a maximum of 30 outputs per job. </p> <p>If you specify more than one
363      * output for a job, Elastic Transcoder creates the files for each output in the
364      * order in which you specify them in the job.</p>
365      */
GetOutputs()366     inline const Aws::Vector<JobOutput>& GetOutputs() const{ return m_outputs; }
367 
368     /**
369      * <p>Information about the output files. We recommend that you use the
370      * <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder
371      * to transcode a file into only one format. Do not use both the
372      * <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You
373      * can create a maximum of 30 outputs per job. </p> <p>If you specify more than one
374      * output for a job, Elastic Transcoder creates the files for each output in the
375      * order in which you specify them in the job.</p>
376      */
OutputsHasBeenSet()377     inline bool OutputsHasBeenSet() const { return m_outputsHasBeenSet; }
378 
379     /**
380      * <p>Information about the output files. We recommend that you use the
381      * <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder
382      * to transcode a file into only one format. Do not use both the
383      * <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You
384      * can create a maximum of 30 outputs per job. </p> <p>If you specify more than one
385      * output for a job, Elastic Transcoder creates the files for each output in the
386      * order in which you specify them in the job.</p>
387      */
SetOutputs(const Aws::Vector<JobOutput> & value)388     inline void SetOutputs(const Aws::Vector<JobOutput>& value) { m_outputsHasBeenSet = true; m_outputs = value; }
389 
390     /**
391      * <p>Information about the output files. We recommend that you use the
392      * <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder
393      * to transcode a file into only one format. Do not use both the
394      * <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You
395      * can create a maximum of 30 outputs per job. </p> <p>If you specify more than one
396      * output for a job, Elastic Transcoder creates the files for each output in the
397      * order in which you specify them in the job.</p>
398      */
SetOutputs(Aws::Vector<JobOutput> && value)399     inline void SetOutputs(Aws::Vector<JobOutput>&& value) { m_outputsHasBeenSet = true; m_outputs = std::move(value); }
400 
401     /**
402      * <p>Information about the output files. We recommend that you use the
403      * <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder
404      * to transcode a file into only one format. Do not use both the
405      * <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You
406      * can create a maximum of 30 outputs per job. </p> <p>If you specify more than one
407      * output for a job, Elastic Transcoder creates the files for each output in the
408      * order in which you specify them in the job.</p>
409      */
WithOutputs(const Aws::Vector<JobOutput> & value)410     inline Job& WithOutputs(const Aws::Vector<JobOutput>& value) { SetOutputs(value); return *this;}
411 
412     /**
413      * <p>Information about the output files. We recommend that you use the
414      * <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder
415      * to transcode a file into only one format. Do not use both the
416      * <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You
417      * can create a maximum of 30 outputs per job. </p> <p>If you specify more than one
418      * output for a job, Elastic Transcoder creates the files for each output in the
419      * order in which you specify them in the job.</p>
420      */
WithOutputs(Aws::Vector<JobOutput> && value)421     inline Job& WithOutputs(Aws::Vector<JobOutput>&& value) { SetOutputs(std::move(value)); return *this;}
422 
423     /**
424      * <p>Information about the output files. We recommend that you use the
425      * <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder
426      * to transcode a file into only one format. Do not use both the
427      * <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You
428      * can create a maximum of 30 outputs per job. </p> <p>If you specify more than one
429      * output for a job, Elastic Transcoder creates the files for each output in the
430      * order in which you specify them in the job.</p>
431      */
AddOutputs(const JobOutput & value)432     inline Job& AddOutputs(const JobOutput& value) { m_outputsHasBeenSet = true; m_outputs.push_back(value); return *this; }
433 
434     /**
435      * <p>Information about the output files. We recommend that you use the
436      * <code>Outputs</code> syntax for all jobs, even when you want Elastic Transcoder
437      * to transcode a file into only one format. Do not use both the
438      * <code>Outputs</code> and <code>Output</code> syntaxes in the same request. You
439      * can create a maximum of 30 outputs per job. </p> <p>If you specify more than one
440      * output for a job, Elastic Transcoder creates the files for each output in the
441      * order in which you specify them in the job.</p>
442      */
AddOutputs(JobOutput && value)443     inline Job& AddOutputs(JobOutput&& value) { m_outputsHasBeenSet = true; m_outputs.push_back(std::move(value)); return *this; }
444 
445 
446     /**
447      * <p>The value, if any, that you want Elastic Transcoder to prepend to the names
448      * of all files that this job creates, including output files, thumbnails, and
449      * playlists. We recommend that you add a / or some other delimiter to the end of
450      * the <code>OutputKeyPrefix</code>.</p>
451      */
GetOutputKeyPrefix()452     inline const Aws::String& GetOutputKeyPrefix() const{ return m_outputKeyPrefix; }
453 
454     /**
455      * <p>The value, if any, that you want Elastic Transcoder to prepend to the names
456      * of all files that this job creates, including output files, thumbnails, and
457      * playlists. We recommend that you add a / or some other delimiter to the end of
458      * the <code>OutputKeyPrefix</code>.</p>
459      */
OutputKeyPrefixHasBeenSet()460     inline bool OutputKeyPrefixHasBeenSet() const { return m_outputKeyPrefixHasBeenSet; }
461 
462     /**
463      * <p>The value, if any, that you want Elastic Transcoder to prepend to the names
464      * of all files that this job creates, including output files, thumbnails, and
465      * playlists. We recommend that you add a / or some other delimiter to the end of
466      * the <code>OutputKeyPrefix</code>.</p>
467      */
SetOutputKeyPrefix(const Aws::String & value)468     inline void SetOutputKeyPrefix(const Aws::String& value) { m_outputKeyPrefixHasBeenSet = true; m_outputKeyPrefix = value; }
469 
470     /**
471      * <p>The value, if any, that you want Elastic Transcoder to prepend to the names
472      * of all files that this job creates, including output files, thumbnails, and
473      * playlists. We recommend that you add a / or some other delimiter to the end of
474      * the <code>OutputKeyPrefix</code>.</p>
475      */
SetOutputKeyPrefix(Aws::String && value)476     inline void SetOutputKeyPrefix(Aws::String&& value) { m_outputKeyPrefixHasBeenSet = true; m_outputKeyPrefix = std::move(value); }
477 
478     /**
479      * <p>The value, if any, that you want Elastic Transcoder to prepend to the names
480      * of all files that this job creates, including output files, thumbnails, and
481      * playlists. We recommend that you add a / or some other delimiter to the end of
482      * the <code>OutputKeyPrefix</code>.</p>
483      */
SetOutputKeyPrefix(const char * value)484     inline void SetOutputKeyPrefix(const char* value) { m_outputKeyPrefixHasBeenSet = true; m_outputKeyPrefix.assign(value); }
485 
486     /**
487      * <p>The value, if any, that you want Elastic Transcoder to prepend to the names
488      * of all files that this job creates, including output files, thumbnails, and
489      * playlists. We recommend that you add a / or some other delimiter to the end of
490      * the <code>OutputKeyPrefix</code>.</p>
491      */
WithOutputKeyPrefix(const Aws::String & value)492     inline Job& WithOutputKeyPrefix(const Aws::String& value) { SetOutputKeyPrefix(value); return *this;}
493 
494     /**
495      * <p>The value, if any, that you want Elastic Transcoder to prepend to the names
496      * of all files that this job creates, including output files, thumbnails, and
497      * playlists. We recommend that you add a / or some other delimiter to the end of
498      * the <code>OutputKeyPrefix</code>.</p>
499      */
WithOutputKeyPrefix(Aws::String && value)500     inline Job& WithOutputKeyPrefix(Aws::String&& value) { SetOutputKeyPrefix(std::move(value)); return *this;}
501 
502     /**
503      * <p>The value, if any, that you want Elastic Transcoder to prepend to the names
504      * of all files that this job creates, including output files, thumbnails, and
505      * playlists. We recommend that you add a / or some other delimiter to the end of
506      * the <code>OutputKeyPrefix</code>.</p>
507      */
WithOutputKeyPrefix(const char * value)508     inline Job& WithOutputKeyPrefix(const char* value) { SetOutputKeyPrefix(value); return *this;}
509 
510 
511     /**
512      *  <p>Outputs in Fragmented MP4 or MPEG-TS format only.</p>
513      *  <p>If you specify a preset in <code>PresetId</code> for which the
514      * value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS),
515      * <code>Playlists</code> contains information about the master playlists that you
516      * want Elastic Transcoder to create.</p> <p>The maximum number of master playlists
517      * in a job is 30.</p>
518      */
GetPlaylists()519     inline const Aws::Vector<Playlist>& GetPlaylists() const{ return m_playlists; }
520 
521     /**
522      *  <p>Outputs in Fragmented MP4 or MPEG-TS format only.</p>
523      *  <p>If you specify a preset in <code>PresetId</code> for which the
524      * value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS),
525      * <code>Playlists</code> contains information about the master playlists that you
526      * want Elastic Transcoder to create.</p> <p>The maximum number of master playlists
527      * in a job is 30.</p>
528      */
PlaylistsHasBeenSet()529     inline bool PlaylistsHasBeenSet() const { return m_playlistsHasBeenSet; }
530 
531     /**
532      *  <p>Outputs in Fragmented MP4 or MPEG-TS format only.</p>
533      *  <p>If you specify a preset in <code>PresetId</code> for which the
534      * value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS),
535      * <code>Playlists</code> contains information about the master playlists that you
536      * want Elastic Transcoder to create.</p> <p>The maximum number of master playlists
537      * in a job is 30.</p>
538      */
SetPlaylists(const Aws::Vector<Playlist> & value)539     inline void SetPlaylists(const Aws::Vector<Playlist>& value) { m_playlistsHasBeenSet = true; m_playlists = value; }
540 
541     /**
542      *  <p>Outputs in Fragmented MP4 or MPEG-TS format only.</p>
543      *  <p>If you specify a preset in <code>PresetId</code> for which the
544      * value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS),
545      * <code>Playlists</code> contains information about the master playlists that you
546      * want Elastic Transcoder to create.</p> <p>The maximum number of master playlists
547      * in a job is 30.</p>
548      */
SetPlaylists(Aws::Vector<Playlist> && value)549     inline void SetPlaylists(Aws::Vector<Playlist>&& value) { m_playlistsHasBeenSet = true; m_playlists = std::move(value); }
550 
551     /**
552      *  <p>Outputs in Fragmented MP4 or MPEG-TS format only.</p>
553      *  <p>If you specify a preset in <code>PresetId</code> for which the
554      * value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS),
555      * <code>Playlists</code> contains information about the master playlists that you
556      * want Elastic Transcoder to create.</p> <p>The maximum number of master playlists
557      * in a job is 30.</p>
558      */
WithPlaylists(const Aws::Vector<Playlist> & value)559     inline Job& WithPlaylists(const Aws::Vector<Playlist>& value) { SetPlaylists(value); return *this;}
560 
561     /**
562      *  <p>Outputs in Fragmented MP4 or MPEG-TS format only.</p>
563      *  <p>If you specify a preset in <code>PresetId</code> for which the
564      * value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS),
565      * <code>Playlists</code> contains information about the master playlists that you
566      * want Elastic Transcoder to create.</p> <p>The maximum number of master playlists
567      * in a job is 30.</p>
568      */
WithPlaylists(Aws::Vector<Playlist> && value)569     inline Job& WithPlaylists(Aws::Vector<Playlist>&& value) { SetPlaylists(std::move(value)); return *this;}
570 
571     /**
572      *  <p>Outputs in Fragmented MP4 or MPEG-TS format only.</p>
573      *  <p>If you specify a preset in <code>PresetId</code> for which the
574      * value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS),
575      * <code>Playlists</code> contains information about the master playlists that you
576      * want Elastic Transcoder to create.</p> <p>The maximum number of master playlists
577      * in a job is 30.</p>
578      */
AddPlaylists(const Playlist & value)579     inline Job& AddPlaylists(const Playlist& value) { m_playlistsHasBeenSet = true; m_playlists.push_back(value); return *this; }
580 
581     /**
582      *  <p>Outputs in Fragmented MP4 or MPEG-TS format only.</p>
583      *  <p>If you specify a preset in <code>PresetId</code> for which the
584      * value of <code>Container</code> is fmp4 (Fragmented MP4) or ts (MPEG-TS),
585      * <code>Playlists</code> contains information about the master playlists that you
586      * want Elastic Transcoder to create.</p> <p>The maximum number of master playlists
587      * in a job is 30.</p>
588      */
AddPlaylists(Playlist && value)589     inline Job& AddPlaylists(Playlist&& value) { m_playlistsHasBeenSet = true; m_playlists.push_back(std::move(value)); return *this; }
590 
591 
592     /**
593      * <p> The status of the job: <code>Submitted</code>, <code>Progressing</code>,
594      * <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. </p>
595      */
GetStatus()596     inline const Aws::String& GetStatus() const{ return m_status; }
597 
598     /**
599      * <p> The status of the job: <code>Submitted</code>, <code>Progressing</code>,
600      * <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. </p>
601      */
StatusHasBeenSet()602     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
603 
604     /**
605      * <p> The status of the job: <code>Submitted</code>, <code>Progressing</code>,
606      * <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. </p>
607      */
SetStatus(const Aws::String & value)608     inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; }
609 
610     /**
611      * <p> The status of the job: <code>Submitted</code>, <code>Progressing</code>,
612      * <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. </p>
613      */
SetStatus(Aws::String && value)614     inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
615 
616     /**
617      * <p> The status of the job: <code>Submitted</code>, <code>Progressing</code>,
618      * <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. </p>
619      */
SetStatus(const char * value)620     inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); }
621 
622     /**
623      * <p> The status of the job: <code>Submitted</code>, <code>Progressing</code>,
624      * <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. </p>
625      */
WithStatus(const Aws::String & value)626     inline Job& WithStatus(const Aws::String& value) { SetStatus(value); return *this;}
627 
628     /**
629      * <p> The status of the job: <code>Submitted</code>, <code>Progressing</code>,
630      * <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. </p>
631      */
WithStatus(Aws::String && value)632     inline Job& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;}
633 
634     /**
635      * <p> The status of the job: <code>Submitted</code>, <code>Progressing</code>,
636      * <code>Complete</code>, <code>Canceled</code>, or <code>Error</code>. </p>
637      */
WithStatus(const char * value)638     inline Job& WithStatus(const char* value) { SetStatus(value); return *this;}
639 
640 
641     /**
642      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
643      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
644      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
645      * that <code>key/value</code> pairs are returned in the same order in which you
646      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
647      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
648      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
649      * <code>Space</code> </p> </li> <li> <p>The following symbols:
650      * <code>_.:/=+-%@</code> </p> </li> </ul>
651      */
GetUserMetadata()652     inline const Aws::Map<Aws::String, Aws::String>& GetUserMetadata() const{ return m_userMetadata; }
653 
654     /**
655      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
656      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
657      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
658      * that <code>key/value</code> pairs are returned in the same order in which you
659      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
660      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
661      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
662      * <code>Space</code> </p> </li> <li> <p>The following symbols:
663      * <code>_.:/=+-%@</code> </p> </li> </ul>
664      */
UserMetadataHasBeenSet()665     inline bool UserMetadataHasBeenSet() const { return m_userMetadataHasBeenSet; }
666 
667     /**
668      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
669      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
670      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
671      * that <code>key/value</code> pairs are returned in the same order in which you
672      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
673      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
674      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
675      * <code>Space</code> </p> </li> <li> <p>The following symbols:
676      * <code>_.:/=+-%@</code> </p> </li> </ul>
677      */
SetUserMetadata(const Aws::Map<Aws::String,Aws::String> & value)678     inline void SetUserMetadata(const Aws::Map<Aws::String, Aws::String>& value) { m_userMetadataHasBeenSet = true; m_userMetadata = value; }
679 
680     /**
681      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
682      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
683      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
684      * that <code>key/value</code> pairs are returned in the same order in which you
685      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
686      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
687      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
688      * <code>Space</code> </p> </li> <li> <p>The following symbols:
689      * <code>_.:/=+-%@</code> </p> </li> </ul>
690      */
SetUserMetadata(Aws::Map<Aws::String,Aws::String> && value)691     inline void SetUserMetadata(Aws::Map<Aws::String, Aws::String>&& value) { m_userMetadataHasBeenSet = true; m_userMetadata = std::move(value); }
692 
693     /**
694      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
695      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
696      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
697      * that <code>key/value</code> pairs are returned in the same order in which you
698      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
699      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
700      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
701      * <code>Space</code> </p> </li> <li> <p>The following symbols:
702      * <code>_.:/=+-%@</code> </p> </li> </ul>
703      */
WithUserMetadata(const Aws::Map<Aws::String,Aws::String> & value)704     inline Job& WithUserMetadata(const Aws::Map<Aws::String, Aws::String>& value) { SetUserMetadata(value); return *this;}
705 
706     /**
707      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
708      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
709      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
710      * that <code>key/value</code> pairs are returned in the same order in which you
711      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
712      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
713      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
714      * <code>Space</code> </p> </li> <li> <p>The following symbols:
715      * <code>_.:/=+-%@</code> </p> </li> </ul>
716      */
WithUserMetadata(Aws::Map<Aws::String,Aws::String> && value)717     inline Job& WithUserMetadata(Aws::Map<Aws::String, Aws::String>&& value) { SetUserMetadata(std::move(value)); return *this;}
718 
719     /**
720      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
721      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
722      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
723      * that <code>key/value</code> pairs are returned in the same order in which you
724      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
725      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
726      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
727      * <code>Space</code> </p> </li> <li> <p>The following symbols:
728      * <code>_.:/=+-%@</code> </p> </li> </ul>
729      */
AddUserMetadata(const Aws::String & key,const Aws::String & value)730     inline Job& AddUserMetadata(const Aws::String& key, const Aws::String& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(key, value); return *this; }
731 
732     /**
733      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
734      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
735      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
736      * that <code>key/value</code> pairs are returned in the same order in which you
737      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
738      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
739      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
740      * <code>Space</code> </p> </li> <li> <p>The following symbols:
741      * <code>_.:/=+-%@</code> </p> </li> </ul>
742      */
AddUserMetadata(Aws::String && key,const Aws::String & value)743     inline Job& AddUserMetadata(Aws::String&& key, const Aws::String& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(std::move(key), value); return *this; }
744 
745     /**
746      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
747      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
748      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
749      * that <code>key/value</code> pairs are returned in the same order in which you
750      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
751      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
752      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
753      * <code>Space</code> </p> </li> <li> <p>The following symbols:
754      * <code>_.:/=+-%@</code> </p> </li> </ul>
755      */
AddUserMetadata(const Aws::String & key,Aws::String && value)756     inline Job& AddUserMetadata(const Aws::String& key, Aws::String&& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(key, std::move(value)); return *this; }
757 
758     /**
759      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
760      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
761      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
762      * that <code>key/value</code> pairs are returned in the same order in which you
763      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
764      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
765      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
766      * <code>Space</code> </p> </li> <li> <p>The following symbols:
767      * <code>_.:/=+-%@</code> </p> </li> </ul>
768      */
AddUserMetadata(Aws::String && key,Aws::String && value)769     inline Job& AddUserMetadata(Aws::String&& key, Aws::String&& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(std::move(key), std::move(value)); return *this; }
770 
771     /**
772      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
773      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
774      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
775      * that <code>key/value</code> pairs are returned in the same order in which you
776      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
777      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
778      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
779      * <code>Space</code> </p> </li> <li> <p>The following symbols:
780      * <code>_.:/=+-%@</code> </p> </li> </ul>
781      */
AddUserMetadata(const char * key,Aws::String && value)782     inline Job& AddUserMetadata(const char* key, Aws::String&& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(key, std::move(value)); return *this; }
783 
784     /**
785      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
786      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
787      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
788      * that <code>key/value</code> pairs are returned in the same order in which you
789      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
790      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
791      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
792      * <code>Space</code> </p> </li> <li> <p>The following symbols:
793      * <code>_.:/=+-%@</code> </p> </li> </ul>
794      */
AddUserMetadata(Aws::String && key,const char * value)795     inline Job& AddUserMetadata(Aws::String&& key, const char* value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(std::move(key), value); return *this; }
796 
797     /**
798      * <p>User-defined metadata that you want to associate with an Elastic Transcoder
799      * job. You specify metadata in <code>key/value</code> pairs, and you can add up to
800      * 10 <code>key/value</code> pairs per job. Elastic Transcoder does not guarantee
801      * that <code>key/value</code> pairs are returned in the same order in which you
802      * specify them.</p> <p>Metadata <code>keys</code> and <code>values</code> must use
803      * characters from the following list:</p> <ul> <li> <p> <code>0-9</code> </p>
804      * </li> <li> <p> <code>A-Z</code> and <code>a-z</code> </p> </li> <li> <p>
805      * <code>Space</code> </p> </li> <li> <p>The following symbols:
806      * <code>_.:/=+-%@</code> </p> </li> </ul>
807      */
AddUserMetadata(const char * key,const char * value)808     inline Job& AddUserMetadata(const char* key, const char* value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(key, value); return *this; }
809 
810 
811     /**
812      * <p>Details about the timing of a job.</p>
813      */
GetTiming()814     inline const Timing& GetTiming() const{ return m_timing; }
815 
816     /**
817      * <p>Details about the timing of a job.</p>
818      */
TimingHasBeenSet()819     inline bool TimingHasBeenSet() const { return m_timingHasBeenSet; }
820 
821     /**
822      * <p>Details about the timing of a job.</p>
823      */
SetTiming(const Timing & value)824     inline void SetTiming(const Timing& value) { m_timingHasBeenSet = true; m_timing = value; }
825 
826     /**
827      * <p>Details about the timing of a job.</p>
828      */
SetTiming(Timing && value)829     inline void SetTiming(Timing&& value) { m_timingHasBeenSet = true; m_timing = std::move(value); }
830 
831     /**
832      * <p>Details about the timing of a job.</p>
833      */
WithTiming(const Timing & value)834     inline Job& WithTiming(const Timing& value) { SetTiming(value); return *this;}
835 
836     /**
837      * <p>Details about the timing of a job.</p>
838      */
WithTiming(Timing && value)839     inline Job& WithTiming(Timing&& value) { SetTiming(std::move(value)); return *this;}
840 
841   private:
842 
843     Aws::String m_id;
844     bool m_idHasBeenSet;
845 
846     Aws::String m_arn;
847     bool m_arnHasBeenSet;
848 
849     Aws::String m_pipelineId;
850     bool m_pipelineIdHasBeenSet;
851 
852     JobInput m_input;
853     bool m_inputHasBeenSet;
854 
855     Aws::Vector<JobInput> m_inputs;
856     bool m_inputsHasBeenSet;
857 
858     JobOutput m_output;
859     bool m_outputHasBeenSet;
860 
861     Aws::Vector<JobOutput> m_outputs;
862     bool m_outputsHasBeenSet;
863 
864     Aws::String m_outputKeyPrefix;
865     bool m_outputKeyPrefixHasBeenSet;
866 
867     Aws::Vector<Playlist> m_playlists;
868     bool m_playlistsHasBeenSet;
869 
870     Aws::String m_status;
871     bool m_statusHasBeenSet;
872 
873     Aws::Map<Aws::String, Aws::String> m_userMetadata;
874     bool m_userMetadataHasBeenSet;
875 
876     Timing m_timing;
877     bool m_timingHasBeenSet;
878   };
879 
880 } // namespace Model
881 } // namespace ElasticTranscoder
882 } // namespace Aws
883