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/mediaconvert/MediaConvert_EXPORTS.h>
8 #include <aws/mediaconvert/model/AccelerationSettings.h>
9 #include <aws/mediaconvert/model/AccelerationStatus.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/mediaconvert/model/BillingTagsSource.h>
12 #include <aws/core/utils/DateTime.h>
13 #include <aws/mediaconvert/model/JobPhase.h>
14 #include <aws/core/utils/memory/stl/AWSVector.h>
15 #include <aws/mediaconvert/model/JobMessages.h>
16 #include <aws/mediaconvert/model/JobSettings.h>
17 #include <aws/mediaconvert/model/SimulateReservedQueue.h>
18 #include <aws/mediaconvert/model/JobStatus.h>
19 #include <aws/mediaconvert/model/StatusUpdateInterval.h>
20 #include <aws/mediaconvert/model/Timing.h>
21 #include <aws/core/utils/memory/stl/AWSMap.h>
22 #include <aws/mediaconvert/model/HopDestination.h>
23 #include <aws/mediaconvert/model/OutputGroupDetail.h>
24 #include <aws/mediaconvert/model/QueueTransition.h>
25 #include <utility>
26 
27 namespace Aws
28 {
29 namespace Utils
30 {
31 namespace Json
32 {
33   class JsonValue;
34   class JsonView;
35 } // namespace Json
36 } // namespace Utils
37 namespace MediaConvert
38 {
39 namespace Model
40 {
41 
42   /**
43    * Each job converts an input file into an output file or files. For more
44    * information, see the User Guide at
45    * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
46    * Also:</h3>   <a
47    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/Job">AWS
48    * API Reference</a></p>
49    */
50   class AWS_MEDIACONVERT_API Job
51   {
52   public:
53     Job();
54     Job(Aws::Utils::Json::JsonView jsonValue);
55     Job& operator=(Aws::Utils::Json::JsonView jsonValue);
56     Aws::Utils::Json::JsonValue Jsonize() const;
57 
58 
59     /**
60      * Accelerated transcoding can significantly speed up jobs with long, visually
61      * complex content.
62      */
GetAccelerationSettings()63     inline const AccelerationSettings& GetAccelerationSettings() const{ return m_accelerationSettings; }
64 
65     /**
66      * Accelerated transcoding can significantly speed up jobs with long, visually
67      * complex content.
68      */
AccelerationSettingsHasBeenSet()69     inline bool AccelerationSettingsHasBeenSet() const { return m_accelerationSettingsHasBeenSet; }
70 
71     /**
72      * Accelerated transcoding can significantly speed up jobs with long, visually
73      * complex content.
74      */
SetAccelerationSettings(const AccelerationSettings & value)75     inline void SetAccelerationSettings(const AccelerationSettings& value) { m_accelerationSettingsHasBeenSet = true; m_accelerationSettings = value; }
76 
77     /**
78      * Accelerated transcoding can significantly speed up jobs with long, visually
79      * complex content.
80      */
SetAccelerationSettings(AccelerationSettings && value)81     inline void SetAccelerationSettings(AccelerationSettings&& value) { m_accelerationSettingsHasBeenSet = true; m_accelerationSettings = std::move(value); }
82 
83     /**
84      * Accelerated transcoding can significantly speed up jobs with long, visually
85      * complex content.
86      */
WithAccelerationSettings(const AccelerationSettings & value)87     inline Job& WithAccelerationSettings(const AccelerationSettings& value) { SetAccelerationSettings(value); return *this;}
88 
89     /**
90      * Accelerated transcoding can significantly speed up jobs with long, visually
91      * complex content.
92      */
WithAccelerationSettings(AccelerationSettings && value)93     inline Job& WithAccelerationSettings(AccelerationSettings&& value) { SetAccelerationSettings(std::move(value)); return *this;}
94 
95 
96     /**
97      * Describes whether the current job is running with accelerated transcoding. For
98      * jobs that have Acceleration (AccelerationMode) set to DISABLED,
99      * AccelerationStatus is always NOT_APPLICABLE. For jobs that have Acceleration
100      * (AccelerationMode) set to ENABLED or PREFERRED, AccelerationStatus is one of the
101      * other states. AccelerationStatus is IN_PROGRESS initially, while the service
102      * determines whether the input files and job settings are compatible with
103      * accelerated transcoding. If they are, AcclerationStatus is ACCELERATED. If your
104      * input files and job settings aren't compatible with accelerated transcoding, the
105      * service either fails your job or runs it without accelerated transcoding,
106      * depending on how you set Acceleration (AccelerationMode). When the service runs
107      * your job without accelerated transcoding, AccelerationStatus is NOT_ACCELERATED.
108      */
GetAccelerationStatus()109     inline const AccelerationStatus& GetAccelerationStatus() const{ return m_accelerationStatus; }
110 
111     /**
112      * Describes whether the current job is running with accelerated transcoding. For
113      * jobs that have Acceleration (AccelerationMode) set to DISABLED,
114      * AccelerationStatus is always NOT_APPLICABLE. For jobs that have Acceleration
115      * (AccelerationMode) set to ENABLED or PREFERRED, AccelerationStatus is one of the
116      * other states. AccelerationStatus is IN_PROGRESS initially, while the service
117      * determines whether the input files and job settings are compatible with
118      * accelerated transcoding. If they are, AcclerationStatus is ACCELERATED. If your
119      * input files and job settings aren't compatible with accelerated transcoding, the
120      * service either fails your job or runs it without accelerated transcoding,
121      * depending on how you set Acceleration (AccelerationMode). When the service runs
122      * your job without accelerated transcoding, AccelerationStatus is NOT_ACCELERATED.
123      */
AccelerationStatusHasBeenSet()124     inline bool AccelerationStatusHasBeenSet() const { return m_accelerationStatusHasBeenSet; }
125 
126     /**
127      * Describes whether the current job is running with accelerated transcoding. For
128      * jobs that have Acceleration (AccelerationMode) set to DISABLED,
129      * AccelerationStatus is always NOT_APPLICABLE. For jobs that have Acceleration
130      * (AccelerationMode) set to ENABLED or PREFERRED, AccelerationStatus is one of the
131      * other states. AccelerationStatus is IN_PROGRESS initially, while the service
132      * determines whether the input files and job settings are compatible with
133      * accelerated transcoding. If they are, AcclerationStatus is ACCELERATED. If your
134      * input files and job settings aren't compatible with accelerated transcoding, the
135      * service either fails your job or runs it without accelerated transcoding,
136      * depending on how you set Acceleration (AccelerationMode). When the service runs
137      * your job without accelerated transcoding, AccelerationStatus is NOT_ACCELERATED.
138      */
SetAccelerationStatus(const AccelerationStatus & value)139     inline void SetAccelerationStatus(const AccelerationStatus& value) { m_accelerationStatusHasBeenSet = true; m_accelerationStatus = value; }
140 
141     /**
142      * Describes whether the current job is running with accelerated transcoding. For
143      * jobs that have Acceleration (AccelerationMode) set to DISABLED,
144      * AccelerationStatus is always NOT_APPLICABLE. For jobs that have Acceleration
145      * (AccelerationMode) set to ENABLED or PREFERRED, AccelerationStatus is one of the
146      * other states. AccelerationStatus is IN_PROGRESS initially, while the service
147      * determines whether the input files and job settings are compatible with
148      * accelerated transcoding. If they are, AcclerationStatus is ACCELERATED. If your
149      * input files and job settings aren't compatible with accelerated transcoding, the
150      * service either fails your job or runs it without accelerated transcoding,
151      * depending on how you set Acceleration (AccelerationMode). When the service runs
152      * your job without accelerated transcoding, AccelerationStatus is NOT_ACCELERATED.
153      */
SetAccelerationStatus(AccelerationStatus && value)154     inline void SetAccelerationStatus(AccelerationStatus&& value) { m_accelerationStatusHasBeenSet = true; m_accelerationStatus = std::move(value); }
155 
156     /**
157      * Describes whether the current job is running with accelerated transcoding. For
158      * jobs that have Acceleration (AccelerationMode) set to DISABLED,
159      * AccelerationStatus is always NOT_APPLICABLE. For jobs that have Acceleration
160      * (AccelerationMode) set to ENABLED or PREFERRED, AccelerationStatus is one of the
161      * other states. AccelerationStatus is IN_PROGRESS initially, while the service
162      * determines whether the input files and job settings are compatible with
163      * accelerated transcoding. If they are, AcclerationStatus is ACCELERATED. If your
164      * input files and job settings aren't compatible with accelerated transcoding, the
165      * service either fails your job or runs it without accelerated transcoding,
166      * depending on how you set Acceleration (AccelerationMode). When the service runs
167      * your job without accelerated transcoding, AccelerationStatus is NOT_ACCELERATED.
168      */
WithAccelerationStatus(const AccelerationStatus & value)169     inline Job& WithAccelerationStatus(const AccelerationStatus& value) { SetAccelerationStatus(value); return *this;}
170 
171     /**
172      * Describes whether the current job is running with accelerated transcoding. For
173      * jobs that have Acceleration (AccelerationMode) set to DISABLED,
174      * AccelerationStatus is always NOT_APPLICABLE. For jobs that have Acceleration
175      * (AccelerationMode) set to ENABLED or PREFERRED, AccelerationStatus is one of the
176      * other states. AccelerationStatus is IN_PROGRESS initially, while the service
177      * determines whether the input files and job settings are compatible with
178      * accelerated transcoding. If they are, AcclerationStatus is ACCELERATED. If your
179      * input files and job settings aren't compatible with accelerated transcoding, the
180      * service either fails your job or runs it without accelerated transcoding,
181      * depending on how you set Acceleration (AccelerationMode). When the service runs
182      * your job without accelerated transcoding, AccelerationStatus is NOT_ACCELERATED.
183      */
WithAccelerationStatus(AccelerationStatus && value)184     inline Job& WithAccelerationStatus(AccelerationStatus&& value) { SetAccelerationStatus(std::move(value)); return *this;}
185 
186 
187     /**
188      * An identifier for this resource that is unique within all of AWS.
189      */
GetArn()190     inline const Aws::String& GetArn() const{ return m_arn; }
191 
192     /**
193      * An identifier for this resource that is unique within all of AWS.
194      */
ArnHasBeenSet()195     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
196 
197     /**
198      * An identifier for this resource that is unique within all of AWS.
199      */
SetArn(const Aws::String & value)200     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
201 
202     /**
203      * An identifier for this resource that is unique within all of AWS.
204      */
SetArn(Aws::String && value)205     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
206 
207     /**
208      * An identifier for this resource that is unique within all of AWS.
209      */
SetArn(const char * value)210     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
211 
212     /**
213      * An identifier for this resource that is unique within all of AWS.
214      */
WithArn(const Aws::String & value)215     inline Job& WithArn(const Aws::String& value) { SetArn(value); return *this;}
216 
217     /**
218      * An identifier for this resource that is unique within all of AWS.
219      */
WithArn(Aws::String && value)220     inline Job& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
221 
222     /**
223      * An identifier for this resource that is unique within all of AWS.
224      */
WithArn(const char * value)225     inline Job& WithArn(const char* value) { SetArn(value); return *this;}
226 
227 
228     /**
229      * The tag type that AWS Billing and Cost Management will use to sort your AWS
230      * Elemental MediaConvert costs on any billing report that you set up.
231      */
GetBillingTagsSource()232     inline const BillingTagsSource& GetBillingTagsSource() const{ return m_billingTagsSource; }
233 
234     /**
235      * The tag type that AWS Billing and Cost Management will use to sort your AWS
236      * Elemental MediaConvert costs on any billing report that you set up.
237      */
BillingTagsSourceHasBeenSet()238     inline bool BillingTagsSourceHasBeenSet() const { return m_billingTagsSourceHasBeenSet; }
239 
240     /**
241      * The tag type that AWS Billing and Cost Management will use to sort your AWS
242      * Elemental MediaConvert costs on any billing report that you set up.
243      */
SetBillingTagsSource(const BillingTagsSource & value)244     inline void SetBillingTagsSource(const BillingTagsSource& value) { m_billingTagsSourceHasBeenSet = true; m_billingTagsSource = value; }
245 
246     /**
247      * The tag type that AWS Billing and Cost Management will use to sort your AWS
248      * Elemental MediaConvert costs on any billing report that you set up.
249      */
SetBillingTagsSource(BillingTagsSource && value)250     inline void SetBillingTagsSource(BillingTagsSource&& value) { m_billingTagsSourceHasBeenSet = true; m_billingTagsSource = std::move(value); }
251 
252     /**
253      * The tag type that AWS Billing and Cost Management will use to sort your AWS
254      * Elemental MediaConvert costs on any billing report that you set up.
255      */
WithBillingTagsSource(const BillingTagsSource & value)256     inline Job& WithBillingTagsSource(const BillingTagsSource& value) { SetBillingTagsSource(value); return *this;}
257 
258     /**
259      * The tag type that AWS Billing and Cost Management will use to sort your AWS
260      * Elemental MediaConvert costs on any billing report that you set up.
261      */
WithBillingTagsSource(BillingTagsSource && value)262     inline Job& WithBillingTagsSource(BillingTagsSource&& value) { SetBillingTagsSource(std::move(value)); return *this;}
263 
264 
265     /**
266      * The time, in Unix epoch format in seconds, when the job got created.
267      */
GetCreatedAt()268     inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; }
269 
270     /**
271      * The time, in Unix epoch format in seconds, when the job got created.
272      */
CreatedAtHasBeenSet()273     inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; }
274 
275     /**
276      * The time, in Unix epoch format in seconds, when the job got created.
277      */
SetCreatedAt(const Aws::Utils::DateTime & value)278     inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; }
279 
280     /**
281      * The time, in Unix epoch format in seconds, when the job got created.
282      */
SetCreatedAt(Aws::Utils::DateTime && value)283     inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); }
284 
285     /**
286      * The time, in Unix epoch format in seconds, when the job got created.
287      */
WithCreatedAt(const Aws::Utils::DateTime & value)288     inline Job& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;}
289 
290     /**
291      * The time, in Unix epoch format in seconds, when the job got created.
292      */
WithCreatedAt(Aws::Utils::DateTime && value)293     inline Job& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;}
294 
295 
296     /**
297      * A job's phase can be PROBING, TRANSCODING OR UPLOADING
298      */
GetCurrentPhase()299     inline const JobPhase& GetCurrentPhase() const{ return m_currentPhase; }
300 
301     /**
302      * A job's phase can be PROBING, TRANSCODING OR UPLOADING
303      */
CurrentPhaseHasBeenSet()304     inline bool CurrentPhaseHasBeenSet() const { return m_currentPhaseHasBeenSet; }
305 
306     /**
307      * A job's phase can be PROBING, TRANSCODING OR UPLOADING
308      */
SetCurrentPhase(const JobPhase & value)309     inline void SetCurrentPhase(const JobPhase& value) { m_currentPhaseHasBeenSet = true; m_currentPhase = value; }
310 
311     /**
312      * A job's phase can be PROBING, TRANSCODING OR UPLOADING
313      */
SetCurrentPhase(JobPhase && value)314     inline void SetCurrentPhase(JobPhase&& value) { m_currentPhaseHasBeenSet = true; m_currentPhase = std::move(value); }
315 
316     /**
317      * A job's phase can be PROBING, TRANSCODING OR UPLOADING
318      */
WithCurrentPhase(const JobPhase & value)319     inline Job& WithCurrentPhase(const JobPhase& value) { SetCurrentPhase(value); return *this;}
320 
321     /**
322      * A job's phase can be PROBING, TRANSCODING OR UPLOADING
323      */
WithCurrentPhase(JobPhase && value)324     inline Job& WithCurrentPhase(JobPhase&& value) { SetCurrentPhase(std::move(value)); return *this;}
325 
326 
327     /**
328      * Error code for the job
329      */
GetErrorCode()330     inline int GetErrorCode() const{ return m_errorCode; }
331 
332     /**
333      * Error code for the job
334      */
ErrorCodeHasBeenSet()335     inline bool ErrorCodeHasBeenSet() const { return m_errorCodeHasBeenSet; }
336 
337     /**
338      * Error code for the job
339      */
SetErrorCode(int value)340     inline void SetErrorCode(int value) { m_errorCodeHasBeenSet = true; m_errorCode = value; }
341 
342     /**
343      * Error code for the job
344      */
WithErrorCode(int value)345     inline Job& WithErrorCode(int value) { SetErrorCode(value); return *this;}
346 
347 
348     /**
349      * Error message of Job
350      */
GetErrorMessage()351     inline const Aws::String& GetErrorMessage() const{ return m_errorMessage; }
352 
353     /**
354      * Error message of Job
355      */
ErrorMessageHasBeenSet()356     inline bool ErrorMessageHasBeenSet() const { return m_errorMessageHasBeenSet; }
357 
358     /**
359      * Error message of Job
360      */
SetErrorMessage(const Aws::String & value)361     inline void SetErrorMessage(const Aws::String& value) { m_errorMessageHasBeenSet = true; m_errorMessage = value; }
362 
363     /**
364      * Error message of Job
365      */
SetErrorMessage(Aws::String && value)366     inline void SetErrorMessage(Aws::String&& value) { m_errorMessageHasBeenSet = true; m_errorMessage = std::move(value); }
367 
368     /**
369      * Error message of Job
370      */
SetErrorMessage(const char * value)371     inline void SetErrorMessage(const char* value) { m_errorMessageHasBeenSet = true; m_errorMessage.assign(value); }
372 
373     /**
374      * Error message of Job
375      */
WithErrorMessage(const Aws::String & value)376     inline Job& WithErrorMessage(const Aws::String& value) { SetErrorMessage(value); return *this;}
377 
378     /**
379      * Error message of Job
380      */
WithErrorMessage(Aws::String && value)381     inline Job& WithErrorMessage(Aws::String&& value) { SetErrorMessage(std::move(value)); return *this;}
382 
383     /**
384      * Error message of Job
385      */
WithErrorMessage(const char * value)386     inline Job& WithErrorMessage(const char* value) { SetErrorMessage(value); return *this;}
387 
388 
389     /**
390      * Optional list of hop destinations.
391      */
GetHopDestinations()392     inline const Aws::Vector<HopDestination>& GetHopDestinations() const{ return m_hopDestinations; }
393 
394     /**
395      * Optional list of hop destinations.
396      */
HopDestinationsHasBeenSet()397     inline bool HopDestinationsHasBeenSet() const { return m_hopDestinationsHasBeenSet; }
398 
399     /**
400      * Optional list of hop destinations.
401      */
SetHopDestinations(const Aws::Vector<HopDestination> & value)402     inline void SetHopDestinations(const Aws::Vector<HopDestination>& value) { m_hopDestinationsHasBeenSet = true; m_hopDestinations = value; }
403 
404     /**
405      * Optional list of hop destinations.
406      */
SetHopDestinations(Aws::Vector<HopDestination> && value)407     inline void SetHopDestinations(Aws::Vector<HopDestination>&& value) { m_hopDestinationsHasBeenSet = true; m_hopDestinations = std::move(value); }
408 
409     /**
410      * Optional list of hop destinations.
411      */
WithHopDestinations(const Aws::Vector<HopDestination> & value)412     inline Job& WithHopDestinations(const Aws::Vector<HopDestination>& value) { SetHopDestinations(value); return *this;}
413 
414     /**
415      * Optional list of hop destinations.
416      */
WithHopDestinations(Aws::Vector<HopDestination> && value)417     inline Job& WithHopDestinations(Aws::Vector<HopDestination>&& value) { SetHopDestinations(std::move(value)); return *this;}
418 
419     /**
420      * Optional list of hop destinations.
421      */
AddHopDestinations(const HopDestination & value)422     inline Job& AddHopDestinations(const HopDestination& value) { m_hopDestinationsHasBeenSet = true; m_hopDestinations.push_back(value); return *this; }
423 
424     /**
425      * Optional list of hop destinations.
426      */
AddHopDestinations(HopDestination && value)427     inline Job& AddHopDestinations(HopDestination&& value) { m_hopDestinationsHasBeenSet = true; m_hopDestinations.push_back(std::move(value)); return *this; }
428 
429 
430     /**
431      * A portion of the job's ARN, unique within your AWS Elemental MediaConvert
432      * resources
433      */
GetId()434     inline const Aws::String& GetId() const{ return m_id; }
435 
436     /**
437      * A portion of the job's ARN, unique within your AWS Elemental MediaConvert
438      * resources
439      */
IdHasBeenSet()440     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
441 
442     /**
443      * A portion of the job's ARN, unique within your AWS Elemental MediaConvert
444      * resources
445      */
SetId(const Aws::String & value)446     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
447 
448     /**
449      * A portion of the job's ARN, unique within your AWS Elemental MediaConvert
450      * resources
451      */
SetId(Aws::String && value)452     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
453 
454     /**
455      * A portion of the job's ARN, unique within your AWS Elemental MediaConvert
456      * resources
457      */
SetId(const char * value)458     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
459 
460     /**
461      * A portion of the job's ARN, unique within your AWS Elemental MediaConvert
462      * resources
463      */
WithId(const Aws::String & value)464     inline Job& WithId(const Aws::String& value) { SetId(value); return *this;}
465 
466     /**
467      * A portion of the job's ARN, unique within your AWS Elemental MediaConvert
468      * resources
469      */
WithId(Aws::String && value)470     inline Job& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
471 
472     /**
473      * A portion of the job's ARN, unique within your AWS Elemental MediaConvert
474      * resources
475      */
WithId(const char * value)476     inline Job& WithId(const char* value) { SetId(value); return *this;}
477 
478 
479     /**
480      * An estimate of how far your job has progressed. This estimate is shown as a
481      * percentage of the total time from when your job leaves its queue to when your
482      * output files appear in your output Amazon S3 bucket. AWS Elemental MediaConvert
483      * provides jobPercentComplete in CloudWatch STATUS_UPDATE events and in the
484      * response to GetJob and ListJobs requests. The jobPercentComplete estimate is
485      * reliable for the following input containers: Quicktime, Transport Stream, MP4,
486      * and MXF. For some jobs, the service can't provide information about job
487      * progress. In those cases, jobPercentComplete returns a null value.
488      */
GetJobPercentComplete()489     inline int GetJobPercentComplete() const{ return m_jobPercentComplete; }
490 
491     /**
492      * An estimate of how far your job has progressed. This estimate is shown as a
493      * percentage of the total time from when your job leaves its queue to when your
494      * output files appear in your output Amazon S3 bucket. AWS Elemental MediaConvert
495      * provides jobPercentComplete in CloudWatch STATUS_UPDATE events and in the
496      * response to GetJob and ListJobs requests. The jobPercentComplete estimate is
497      * reliable for the following input containers: Quicktime, Transport Stream, MP4,
498      * and MXF. For some jobs, the service can't provide information about job
499      * progress. In those cases, jobPercentComplete returns a null value.
500      */
JobPercentCompleteHasBeenSet()501     inline bool JobPercentCompleteHasBeenSet() const { return m_jobPercentCompleteHasBeenSet; }
502 
503     /**
504      * An estimate of how far your job has progressed. This estimate is shown as a
505      * percentage of the total time from when your job leaves its queue to when your
506      * output files appear in your output Amazon S3 bucket. AWS Elemental MediaConvert
507      * provides jobPercentComplete in CloudWatch STATUS_UPDATE events and in the
508      * response to GetJob and ListJobs requests. The jobPercentComplete estimate is
509      * reliable for the following input containers: Quicktime, Transport Stream, MP4,
510      * and MXF. For some jobs, the service can't provide information about job
511      * progress. In those cases, jobPercentComplete returns a null value.
512      */
SetJobPercentComplete(int value)513     inline void SetJobPercentComplete(int value) { m_jobPercentCompleteHasBeenSet = true; m_jobPercentComplete = value; }
514 
515     /**
516      * An estimate of how far your job has progressed. This estimate is shown as a
517      * percentage of the total time from when your job leaves its queue to when your
518      * output files appear in your output Amazon S3 bucket. AWS Elemental MediaConvert
519      * provides jobPercentComplete in CloudWatch STATUS_UPDATE events and in the
520      * response to GetJob and ListJobs requests. The jobPercentComplete estimate is
521      * reliable for the following input containers: Quicktime, Transport Stream, MP4,
522      * and MXF. For some jobs, the service can't provide information about job
523      * progress. In those cases, jobPercentComplete returns a null value.
524      */
WithJobPercentComplete(int value)525     inline Job& WithJobPercentComplete(int value) { SetJobPercentComplete(value); return *this;}
526 
527 
528     /**
529      * The job template that the job is created from, if it is created from a job
530      * template.
531      */
GetJobTemplate()532     inline const Aws::String& GetJobTemplate() const{ return m_jobTemplate; }
533 
534     /**
535      * The job template that the job is created from, if it is created from a job
536      * template.
537      */
JobTemplateHasBeenSet()538     inline bool JobTemplateHasBeenSet() const { return m_jobTemplateHasBeenSet; }
539 
540     /**
541      * The job template that the job is created from, if it is created from a job
542      * template.
543      */
SetJobTemplate(const Aws::String & value)544     inline void SetJobTemplate(const Aws::String& value) { m_jobTemplateHasBeenSet = true; m_jobTemplate = value; }
545 
546     /**
547      * The job template that the job is created from, if it is created from a job
548      * template.
549      */
SetJobTemplate(Aws::String && value)550     inline void SetJobTemplate(Aws::String&& value) { m_jobTemplateHasBeenSet = true; m_jobTemplate = std::move(value); }
551 
552     /**
553      * The job template that the job is created from, if it is created from a job
554      * template.
555      */
SetJobTemplate(const char * value)556     inline void SetJobTemplate(const char* value) { m_jobTemplateHasBeenSet = true; m_jobTemplate.assign(value); }
557 
558     /**
559      * The job template that the job is created from, if it is created from a job
560      * template.
561      */
WithJobTemplate(const Aws::String & value)562     inline Job& WithJobTemplate(const Aws::String& value) { SetJobTemplate(value); return *this;}
563 
564     /**
565      * The job template that the job is created from, if it is created from a job
566      * template.
567      */
WithJobTemplate(Aws::String && value)568     inline Job& WithJobTemplate(Aws::String&& value) { SetJobTemplate(std::move(value)); return *this;}
569 
570     /**
571      * The job template that the job is created from, if it is created from a job
572      * template.
573      */
WithJobTemplate(const char * value)574     inline Job& WithJobTemplate(const char* value) { SetJobTemplate(value); return *this;}
575 
576 
577     /**
578      * Provides messages from the service about jobs that you have already successfully
579      * submitted.
580      */
GetMessages()581     inline const JobMessages& GetMessages() const{ return m_messages; }
582 
583     /**
584      * Provides messages from the service about jobs that you have already successfully
585      * submitted.
586      */
MessagesHasBeenSet()587     inline bool MessagesHasBeenSet() const { return m_messagesHasBeenSet; }
588 
589     /**
590      * Provides messages from the service about jobs that you have already successfully
591      * submitted.
592      */
SetMessages(const JobMessages & value)593     inline void SetMessages(const JobMessages& value) { m_messagesHasBeenSet = true; m_messages = value; }
594 
595     /**
596      * Provides messages from the service about jobs that you have already successfully
597      * submitted.
598      */
SetMessages(JobMessages && value)599     inline void SetMessages(JobMessages&& value) { m_messagesHasBeenSet = true; m_messages = std::move(value); }
600 
601     /**
602      * Provides messages from the service about jobs that you have already successfully
603      * submitted.
604      */
WithMessages(const JobMessages & value)605     inline Job& WithMessages(const JobMessages& value) { SetMessages(value); return *this;}
606 
607     /**
608      * Provides messages from the service about jobs that you have already successfully
609      * submitted.
610      */
WithMessages(JobMessages && value)611     inline Job& WithMessages(JobMessages&& value) { SetMessages(std::move(value)); return *this;}
612 
613 
614     /**
615      * List of output group details
616      */
GetOutputGroupDetails()617     inline const Aws::Vector<OutputGroupDetail>& GetOutputGroupDetails() const{ return m_outputGroupDetails; }
618 
619     /**
620      * List of output group details
621      */
OutputGroupDetailsHasBeenSet()622     inline bool OutputGroupDetailsHasBeenSet() const { return m_outputGroupDetailsHasBeenSet; }
623 
624     /**
625      * List of output group details
626      */
SetOutputGroupDetails(const Aws::Vector<OutputGroupDetail> & value)627     inline void SetOutputGroupDetails(const Aws::Vector<OutputGroupDetail>& value) { m_outputGroupDetailsHasBeenSet = true; m_outputGroupDetails = value; }
628 
629     /**
630      * List of output group details
631      */
SetOutputGroupDetails(Aws::Vector<OutputGroupDetail> && value)632     inline void SetOutputGroupDetails(Aws::Vector<OutputGroupDetail>&& value) { m_outputGroupDetailsHasBeenSet = true; m_outputGroupDetails = std::move(value); }
633 
634     /**
635      * List of output group details
636      */
WithOutputGroupDetails(const Aws::Vector<OutputGroupDetail> & value)637     inline Job& WithOutputGroupDetails(const Aws::Vector<OutputGroupDetail>& value) { SetOutputGroupDetails(value); return *this;}
638 
639     /**
640      * List of output group details
641      */
WithOutputGroupDetails(Aws::Vector<OutputGroupDetail> && value)642     inline Job& WithOutputGroupDetails(Aws::Vector<OutputGroupDetail>&& value) { SetOutputGroupDetails(std::move(value)); return *this;}
643 
644     /**
645      * List of output group details
646      */
AddOutputGroupDetails(const OutputGroupDetail & value)647     inline Job& AddOutputGroupDetails(const OutputGroupDetail& value) { m_outputGroupDetailsHasBeenSet = true; m_outputGroupDetails.push_back(value); return *this; }
648 
649     /**
650      * List of output group details
651      */
AddOutputGroupDetails(OutputGroupDetail && value)652     inline Job& AddOutputGroupDetails(OutputGroupDetail&& value) { m_outputGroupDetailsHasBeenSet = true; m_outputGroupDetails.push_back(std::move(value)); return *this; }
653 
654 
655     /**
656      * Relative priority on the job.
657      */
GetPriority()658     inline int GetPriority() const{ return m_priority; }
659 
660     /**
661      * Relative priority on the job.
662      */
PriorityHasBeenSet()663     inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; }
664 
665     /**
666      * Relative priority on the job.
667      */
SetPriority(int value)668     inline void SetPriority(int value) { m_priorityHasBeenSet = true; m_priority = value; }
669 
670     /**
671      * Relative priority on the job.
672      */
WithPriority(int value)673     inline Job& WithPriority(int value) { SetPriority(value); return *this;}
674 
675 
676     /**
677      * When you create a job, you can specify a queue to send it to. If you don't
678      * specify, the job will go to the default queue. For more about queues, see the
679      * User Guide topic at
680      * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
681      */
GetQueue()682     inline const Aws::String& GetQueue() const{ return m_queue; }
683 
684     /**
685      * When you create a job, you can specify a queue to send it to. If you don't
686      * specify, the job will go to the default queue. For more about queues, see the
687      * User Guide topic at
688      * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
689      */
QueueHasBeenSet()690     inline bool QueueHasBeenSet() const { return m_queueHasBeenSet; }
691 
692     /**
693      * When you create a job, you can specify a queue to send it to. If you don't
694      * specify, the job will go to the default queue. For more about queues, see the
695      * User Guide topic at
696      * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
697      */
SetQueue(const Aws::String & value)698     inline void SetQueue(const Aws::String& value) { m_queueHasBeenSet = true; m_queue = value; }
699 
700     /**
701      * When you create a job, you can specify a queue to send it to. If you don't
702      * specify, the job will go to the default queue. For more about queues, see the
703      * User Guide topic at
704      * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
705      */
SetQueue(Aws::String && value)706     inline void SetQueue(Aws::String&& value) { m_queueHasBeenSet = true; m_queue = std::move(value); }
707 
708     /**
709      * When you create a job, you can specify a queue to send it to. If you don't
710      * specify, the job will go to the default queue. For more about queues, see the
711      * User Guide topic at
712      * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
713      */
SetQueue(const char * value)714     inline void SetQueue(const char* value) { m_queueHasBeenSet = true; m_queue.assign(value); }
715 
716     /**
717      * When you create a job, you can specify a queue to send it to. If you don't
718      * specify, the job will go to the default queue. For more about queues, see the
719      * User Guide topic at
720      * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
721      */
WithQueue(const Aws::String & value)722     inline Job& WithQueue(const Aws::String& value) { SetQueue(value); return *this;}
723 
724     /**
725      * When you create a job, you can specify a queue to send it to. If you don't
726      * specify, the job will go to the default queue. For more about queues, see the
727      * User Guide topic at
728      * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
729      */
WithQueue(Aws::String && value)730     inline Job& WithQueue(Aws::String&& value) { SetQueue(std::move(value)); return *this;}
731 
732     /**
733      * When you create a job, you can specify a queue to send it to. If you don't
734      * specify, the job will go to the default queue. For more about queues, see the
735      * User Guide topic at
736      * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
737      */
WithQueue(const char * value)738     inline Job& WithQueue(const char* value) { SetQueue(value); return *this;}
739 
740 
741     /**
742      * The job's queue hopping history.
743      */
GetQueueTransitions()744     inline const Aws::Vector<QueueTransition>& GetQueueTransitions() const{ return m_queueTransitions; }
745 
746     /**
747      * The job's queue hopping history.
748      */
QueueTransitionsHasBeenSet()749     inline bool QueueTransitionsHasBeenSet() const { return m_queueTransitionsHasBeenSet; }
750 
751     /**
752      * The job's queue hopping history.
753      */
SetQueueTransitions(const Aws::Vector<QueueTransition> & value)754     inline void SetQueueTransitions(const Aws::Vector<QueueTransition>& value) { m_queueTransitionsHasBeenSet = true; m_queueTransitions = value; }
755 
756     /**
757      * The job's queue hopping history.
758      */
SetQueueTransitions(Aws::Vector<QueueTransition> && value)759     inline void SetQueueTransitions(Aws::Vector<QueueTransition>&& value) { m_queueTransitionsHasBeenSet = true; m_queueTransitions = std::move(value); }
760 
761     /**
762      * The job's queue hopping history.
763      */
WithQueueTransitions(const Aws::Vector<QueueTransition> & value)764     inline Job& WithQueueTransitions(const Aws::Vector<QueueTransition>& value) { SetQueueTransitions(value); return *this;}
765 
766     /**
767      * The job's queue hopping history.
768      */
WithQueueTransitions(Aws::Vector<QueueTransition> && value)769     inline Job& WithQueueTransitions(Aws::Vector<QueueTransition>&& value) { SetQueueTransitions(std::move(value)); return *this;}
770 
771     /**
772      * The job's queue hopping history.
773      */
AddQueueTransitions(const QueueTransition & value)774     inline Job& AddQueueTransitions(const QueueTransition& value) { m_queueTransitionsHasBeenSet = true; m_queueTransitions.push_back(value); return *this; }
775 
776     /**
777      * The job's queue hopping history.
778      */
AddQueueTransitions(QueueTransition && value)779     inline Job& AddQueueTransitions(QueueTransition&& value) { m_queueTransitionsHasBeenSet = true; m_queueTransitions.push_back(std::move(value)); return *this; }
780 
781 
782     /**
783      * The number of times that the service automatically attempted to process your job
784      * after encountering an error.
785      */
GetRetryCount()786     inline int GetRetryCount() const{ return m_retryCount; }
787 
788     /**
789      * The number of times that the service automatically attempted to process your job
790      * after encountering an error.
791      */
RetryCountHasBeenSet()792     inline bool RetryCountHasBeenSet() const { return m_retryCountHasBeenSet; }
793 
794     /**
795      * The number of times that the service automatically attempted to process your job
796      * after encountering an error.
797      */
SetRetryCount(int value)798     inline void SetRetryCount(int value) { m_retryCountHasBeenSet = true; m_retryCount = value; }
799 
800     /**
801      * The number of times that the service automatically attempted to process your job
802      * after encountering an error.
803      */
WithRetryCount(int value)804     inline Job& WithRetryCount(int value) { SetRetryCount(value); return *this;}
805 
806 
807     /**
808      * The IAM role you use for creating this job. For details about permissions, see
809      * the User Guide topic at the User Guide at
810      * https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
811      */
GetRole()812     inline const Aws::String& GetRole() const{ return m_role; }
813 
814     /**
815      * The IAM role you use for creating this job. For details about permissions, see
816      * the User Guide topic at the User Guide at
817      * https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
818      */
RoleHasBeenSet()819     inline bool RoleHasBeenSet() const { return m_roleHasBeenSet; }
820 
821     /**
822      * The IAM role you use for creating this job. For details about permissions, see
823      * the User Guide topic at the User Guide at
824      * https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
825      */
SetRole(const Aws::String & value)826     inline void SetRole(const Aws::String& value) { m_roleHasBeenSet = true; m_role = value; }
827 
828     /**
829      * The IAM role you use for creating this job. For details about permissions, see
830      * the User Guide topic at the User Guide at
831      * https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
832      */
SetRole(Aws::String && value)833     inline void SetRole(Aws::String&& value) { m_roleHasBeenSet = true; m_role = std::move(value); }
834 
835     /**
836      * The IAM role you use for creating this job. For details about permissions, see
837      * the User Guide topic at the User Guide at
838      * https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
839      */
SetRole(const char * value)840     inline void SetRole(const char* value) { m_roleHasBeenSet = true; m_role.assign(value); }
841 
842     /**
843      * The IAM role you use for creating this job. For details about permissions, see
844      * the User Guide topic at the User Guide at
845      * https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
846      */
WithRole(const Aws::String & value)847     inline Job& WithRole(const Aws::String& value) { SetRole(value); return *this;}
848 
849     /**
850      * The IAM role you use for creating this job. For details about permissions, see
851      * the User Guide topic at the User Guide at
852      * https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
853      */
WithRole(Aws::String && value)854     inline Job& WithRole(Aws::String&& value) { SetRole(std::move(value)); return *this;}
855 
856     /**
857      * The IAM role you use for creating this job. For details about permissions, see
858      * the User Guide topic at the User Guide at
859      * https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
860      */
WithRole(const char * value)861     inline Job& WithRole(const char* value) { SetRole(value); return *this;}
862 
863 
864     /**
865      * JobSettings contains all the transcode settings for a job.
866      */
GetSettings()867     inline const JobSettings& GetSettings() const{ return m_settings; }
868 
869     /**
870      * JobSettings contains all the transcode settings for a job.
871      */
SettingsHasBeenSet()872     inline bool SettingsHasBeenSet() const { return m_settingsHasBeenSet; }
873 
874     /**
875      * JobSettings contains all the transcode settings for a job.
876      */
SetSettings(const JobSettings & value)877     inline void SetSettings(const JobSettings& value) { m_settingsHasBeenSet = true; m_settings = value; }
878 
879     /**
880      * JobSettings contains all the transcode settings for a job.
881      */
SetSettings(JobSettings && value)882     inline void SetSettings(JobSettings&& value) { m_settingsHasBeenSet = true; m_settings = std::move(value); }
883 
884     /**
885      * JobSettings contains all the transcode settings for a job.
886      */
WithSettings(const JobSettings & value)887     inline Job& WithSettings(const JobSettings& value) { SetSettings(value); return *this;}
888 
889     /**
890      * JobSettings contains all the transcode settings for a job.
891      */
WithSettings(JobSettings && value)892     inline Job& WithSettings(JobSettings&& value) { SetSettings(std::move(value)); return *this;}
893 
894 
895     /**
896      * Enable this setting when you run a test job to estimate how many reserved
897      * transcoding slots (RTS) you need. When this is enabled, MediaConvert runs your
898      * job from an on-demand queue with similar performance to what you will see with
899      * one RTS in a reserved queue. This setting is disabled by default.
900      */
GetSimulateReservedQueue()901     inline const SimulateReservedQueue& GetSimulateReservedQueue() const{ return m_simulateReservedQueue; }
902 
903     /**
904      * Enable this setting when you run a test job to estimate how many reserved
905      * transcoding slots (RTS) you need. When this is enabled, MediaConvert runs your
906      * job from an on-demand queue with similar performance to what you will see with
907      * one RTS in a reserved queue. This setting is disabled by default.
908      */
SimulateReservedQueueHasBeenSet()909     inline bool SimulateReservedQueueHasBeenSet() const { return m_simulateReservedQueueHasBeenSet; }
910 
911     /**
912      * Enable this setting when you run a test job to estimate how many reserved
913      * transcoding slots (RTS) you need. When this is enabled, MediaConvert runs your
914      * job from an on-demand queue with similar performance to what you will see with
915      * one RTS in a reserved queue. This setting is disabled by default.
916      */
SetSimulateReservedQueue(const SimulateReservedQueue & value)917     inline void SetSimulateReservedQueue(const SimulateReservedQueue& value) { m_simulateReservedQueueHasBeenSet = true; m_simulateReservedQueue = value; }
918 
919     /**
920      * Enable this setting when you run a test job to estimate how many reserved
921      * transcoding slots (RTS) you need. When this is enabled, MediaConvert runs your
922      * job from an on-demand queue with similar performance to what you will see with
923      * one RTS in a reserved queue. This setting is disabled by default.
924      */
SetSimulateReservedQueue(SimulateReservedQueue && value)925     inline void SetSimulateReservedQueue(SimulateReservedQueue&& value) { m_simulateReservedQueueHasBeenSet = true; m_simulateReservedQueue = std::move(value); }
926 
927     /**
928      * Enable this setting when you run a test job to estimate how many reserved
929      * transcoding slots (RTS) you need. When this is enabled, MediaConvert runs your
930      * job from an on-demand queue with similar performance to what you will see with
931      * one RTS in a reserved queue. This setting is disabled by default.
932      */
WithSimulateReservedQueue(const SimulateReservedQueue & value)933     inline Job& WithSimulateReservedQueue(const SimulateReservedQueue& value) { SetSimulateReservedQueue(value); return *this;}
934 
935     /**
936      * Enable this setting when you run a test job to estimate how many reserved
937      * transcoding slots (RTS) you need. When this is enabled, MediaConvert runs your
938      * job from an on-demand queue with similar performance to what you will see with
939      * one RTS in a reserved queue. This setting is disabled by default.
940      */
WithSimulateReservedQueue(SimulateReservedQueue && value)941     inline Job& WithSimulateReservedQueue(SimulateReservedQueue&& value) { SetSimulateReservedQueue(std::move(value)); return *this;}
942 
943 
944     /**
945      * A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.
946      */
GetStatus()947     inline const JobStatus& GetStatus() const{ return m_status; }
948 
949     /**
950      * A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.
951      */
StatusHasBeenSet()952     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
953 
954     /**
955      * A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.
956      */
SetStatus(const JobStatus & value)957     inline void SetStatus(const JobStatus& value) { m_statusHasBeenSet = true; m_status = value; }
958 
959     /**
960      * A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.
961      */
SetStatus(JobStatus && value)962     inline void SetStatus(JobStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
963 
964     /**
965      * A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.
966      */
WithStatus(const JobStatus & value)967     inline Job& WithStatus(const JobStatus& value) { SetStatus(value); return *this;}
968 
969     /**
970      * A job's status can be SUBMITTED, PROGRESSING, COMPLETE, CANCELED, or ERROR.
971      */
WithStatus(JobStatus && value)972     inline Job& WithStatus(JobStatus&& value) { SetStatus(std::move(value)); return *this;}
973 
974 
975     /**
976      * Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
977      * Events. Set the interval, in seconds, between status updates. MediaConvert sends
978      * an update at this interval from the time the service begins processing your job
979      * to the time it completes the transcode or encounters an error.
980      */
GetStatusUpdateInterval()981     inline const StatusUpdateInterval& GetStatusUpdateInterval() const{ return m_statusUpdateInterval; }
982 
983     /**
984      * Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
985      * Events. Set the interval, in seconds, between status updates. MediaConvert sends
986      * an update at this interval from the time the service begins processing your job
987      * to the time it completes the transcode or encounters an error.
988      */
StatusUpdateIntervalHasBeenSet()989     inline bool StatusUpdateIntervalHasBeenSet() const { return m_statusUpdateIntervalHasBeenSet; }
990 
991     /**
992      * Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
993      * Events. Set the interval, in seconds, between status updates. MediaConvert sends
994      * an update at this interval from the time the service begins processing your job
995      * to the time it completes the transcode or encounters an error.
996      */
SetStatusUpdateInterval(const StatusUpdateInterval & value)997     inline void SetStatusUpdateInterval(const StatusUpdateInterval& value) { m_statusUpdateIntervalHasBeenSet = true; m_statusUpdateInterval = value; }
998 
999     /**
1000      * Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
1001      * Events. Set the interval, in seconds, between status updates. MediaConvert sends
1002      * an update at this interval from the time the service begins processing your job
1003      * to the time it completes the transcode or encounters an error.
1004      */
SetStatusUpdateInterval(StatusUpdateInterval && value)1005     inline void SetStatusUpdateInterval(StatusUpdateInterval&& value) { m_statusUpdateIntervalHasBeenSet = true; m_statusUpdateInterval = std::move(value); }
1006 
1007     /**
1008      * Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
1009      * Events. Set the interval, in seconds, between status updates. MediaConvert sends
1010      * an update at this interval from the time the service begins processing your job
1011      * to the time it completes the transcode or encounters an error.
1012      */
WithStatusUpdateInterval(const StatusUpdateInterval & value)1013     inline Job& WithStatusUpdateInterval(const StatusUpdateInterval& value) { SetStatusUpdateInterval(value); return *this;}
1014 
1015     /**
1016      * Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch
1017      * Events. Set the interval, in seconds, between status updates. MediaConvert sends
1018      * an update at this interval from the time the service begins processing your job
1019      * to the time it completes the transcode or encounters an error.
1020      */
WithStatusUpdateInterval(StatusUpdateInterval && value)1021     inline Job& WithStatusUpdateInterval(StatusUpdateInterval&& value) { SetStatusUpdateInterval(std::move(value)); return *this;}
1022 
1023 
1024     /**
1025      * Information about when jobs are submitted, started, and finished is specified in
1026      * Unix epoch format in seconds.
1027      */
GetTiming()1028     inline const Timing& GetTiming() const{ return m_timing; }
1029 
1030     /**
1031      * Information about when jobs are submitted, started, and finished is specified in
1032      * Unix epoch format in seconds.
1033      */
TimingHasBeenSet()1034     inline bool TimingHasBeenSet() const { return m_timingHasBeenSet; }
1035 
1036     /**
1037      * Information about when jobs are submitted, started, and finished is specified in
1038      * Unix epoch format in seconds.
1039      */
SetTiming(const Timing & value)1040     inline void SetTiming(const Timing& value) { m_timingHasBeenSet = true; m_timing = value; }
1041 
1042     /**
1043      * Information about when jobs are submitted, started, and finished is specified in
1044      * Unix epoch format in seconds.
1045      */
SetTiming(Timing && value)1046     inline void SetTiming(Timing&& value) { m_timingHasBeenSet = true; m_timing = std::move(value); }
1047 
1048     /**
1049      * Information about when jobs are submitted, started, and finished is specified in
1050      * Unix epoch format in seconds.
1051      */
WithTiming(const Timing & value)1052     inline Job& WithTiming(const Timing& value) { SetTiming(value); return *this;}
1053 
1054     /**
1055      * Information about when jobs are submitted, started, and finished is specified in
1056      * Unix epoch format in seconds.
1057      */
WithTiming(Timing && value)1058     inline Job& WithTiming(Timing&& value) { SetTiming(std::move(value)); return *this;}
1059 
1060 
1061     /**
1062      * User-defined metadata that you want to associate with an MediaConvert job. You
1063      * specify metadata in key/value pairs.
1064      */
GetUserMetadata()1065     inline const Aws::Map<Aws::String, Aws::String>& GetUserMetadata() const{ return m_userMetadata; }
1066 
1067     /**
1068      * User-defined metadata that you want to associate with an MediaConvert job. You
1069      * specify metadata in key/value pairs.
1070      */
UserMetadataHasBeenSet()1071     inline bool UserMetadataHasBeenSet() const { return m_userMetadataHasBeenSet; }
1072 
1073     /**
1074      * User-defined metadata that you want to associate with an MediaConvert job. You
1075      * specify metadata in key/value pairs.
1076      */
SetUserMetadata(const Aws::Map<Aws::String,Aws::String> & value)1077     inline void SetUserMetadata(const Aws::Map<Aws::String, Aws::String>& value) { m_userMetadataHasBeenSet = true; m_userMetadata = value; }
1078 
1079     /**
1080      * User-defined metadata that you want to associate with an MediaConvert job. You
1081      * specify metadata in key/value pairs.
1082      */
SetUserMetadata(Aws::Map<Aws::String,Aws::String> && value)1083     inline void SetUserMetadata(Aws::Map<Aws::String, Aws::String>&& value) { m_userMetadataHasBeenSet = true; m_userMetadata = std::move(value); }
1084 
1085     /**
1086      * User-defined metadata that you want to associate with an MediaConvert job. You
1087      * specify metadata in key/value pairs.
1088      */
WithUserMetadata(const Aws::Map<Aws::String,Aws::String> & value)1089     inline Job& WithUserMetadata(const Aws::Map<Aws::String, Aws::String>& value) { SetUserMetadata(value); return *this;}
1090 
1091     /**
1092      * User-defined metadata that you want to associate with an MediaConvert job. You
1093      * specify metadata in key/value pairs.
1094      */
WithUserMetadata(Aws::Map<Aws::String,Aws::String> && value)1095     inline Job& WithUserMetadata(Aws::Map<Aws::String, Aws::String>&& value) { SetUserMetadata(std::move(value)); return *this;}
1096 
1097     /**
1098      * User-defined metadata that you want to associate with an MediaConvert job. You
1099      * specify metadata in key/value pairs.
1100      */
AddUserMetadata(const Aws::String & key,const Aws::String & value)1101     inline Job& AddUserMetadata(const Aws::String& key, const Aws::String& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(key, value); return *this; }
1102 
1103     /**
1104      * User-defined metadata that you want to associate with an MediaConvert job. You
1105      * specify metadata in key/value pairs.
1106      */
AddUserMetadata(Aws::String && key,const Aws::String & value)1107     inline Job& AddUserMetadata(Aws::String&& key, const Aws::String& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(std::move(key), value); return *this; }
1108 
1109     /**
1110      * User-defined metadata that you want to associate with an MediaConvert job. You
1111      * specify metadata in key/value pairs.
1112      */
AddUserMetadata(const Aws::String & key,Aws::String && value)1113     inline Job& AddUserMetadata(const Aws::String& key, Aws::String&& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(key, std::move(value)); return *this; }
1114 
1115     /**
1116      * User-defined metadata that you want to associate with an MediaConvert job. You
1117      * specify metadata in key/value pairs.
1118      */
AddUserMetadata(Aws::String && key,Aws::String && value)1119     inline Job& AddUserMetadata(Aws::String&& key, Aws::String&& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(std::move(key), std::move(value)); return *this; }
1120 
1121     /**
1122      * User-defined metadata that you want to associate with an MediaConvert job. You
1123      * specify metadata in key/value pairs.
1124      */
AddUserMetadata(const char * key,Aws::String && value)1125     inline Job& AddUserMetadata(const char* key, Aws::String&& value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(key, std::move(value)); return *this; }
1126 
1127     /**
1128      * User-defined metadata that you want to associate with an MediaConvert job. You
1129      * specify metadata in key/value pairs.
1130      */
AddUserMetadata(Aws::String && key,const char * value)1131     inline Job& AddUserMetadata(Aws::String&& key, const char* value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(std::move(key), value); return *this; }
1132 
1133     /**
1134      * User-defined metadata that you want to associate with an MediaConvert job. You
1135      * specify metadata in key/value pairs.
1136      */
AddUserMetadata(const char * key,const char * value)1137     inline Job& AddUserMetadata(const char* key, const char* value) { m_userMetadataHasBeenSet = true; m_userMetadata.emplace(key, value); return *this; }
1138 
1139   private:
1140 
1141     AccelerationSettings m_accelerationSettings;
1142     bool m_accelerationSettingsHasBeenSet;
1143 
1144     AccelerationStatus m_accelerationStatus;
1145     bool m_accelerationStatusHasBeenSet;
1146 
1147     Aws::String m_arn;
1148     bool m_arnHasBeenSet;
1149 
1150     BillingTagsSource m_billingTagsSource;
1151     bool m_billingTagsSourceHasBeenSet;
1152 
1153     Aws::Utils::DateTime m_createdAt;
1154     bool m_createdAtHasBeenSet;
1155 
1156     JobPhase m_currentPhase;
1157     bool m_currentPhaseHasBeenSet;
1158 
1159     int m_errorCode;
1160     bool m_errorCodeHasBeenSet;
1161 
1162     Aws::String m_errorMessage;
1163     bool m_errorMessageHasBeenSet;
1164 
1165     Aws::Vector<HopDestination> m_hopDestinations;
1166     bool m_hopDestinationsHasBeenSet;
1167 
1168     Aws::String m_id;
1169     bool m_idHasBeenSet;
1170 
1171     int m_jobPercentComplete;
1172     bool m_jobPercentCompleteHasBeenSet;
1173 
1174     Aws::String m_jobTemplate;
1175     bool m_jobTemplateHasBeenSet;
1176 
1177     JobMessages m_messages;
1178     bool m_messagesHasBeenSet;
1179 
1180     Aws::Vector<OutputGroupDetail> m_outputGroupDetails;
1181     bool m_outputGroupDetailsHasBeenSet;
1182 
1183     int m_priority;
1184     bool m_priorityHasBeenSet;
1185 
1186     Aws::String m_queue;
1187     bool m_queueHasBeenSet;
1188 
1189     Aws::Vector<QueueTransition> m_queueTransitions;
1190     bool m_queueTransitionsHasBeenSet;
1191 
1192     int m_retryCount;
1193     bool m_retryCountHasBeenSet;
1194 
1195     Aws::String m_role;
1196     bool m_roleHasBeenSet;
1197 
1198     JobSettings m_settings;
1199     bool m_settingsHasBeenSet;
1200 
1201     SimulateReservedQueue m_simulateReservedQueue;
1202     bool m_simulateReservedQueueHasBeenSet;
1203 
1204     JobStatus m_status;
1205     bool m_statusHasBeenSet;
1206 
1207     StatusUpdateInterval m_statusUpdateInterval;
1208     bool m_statusUpdateIntervalHasBeenSet;
1209 
1210     Timing m_timing;
1211     bool m_timingHasBeenSet;
1212 
1213     Aws::Map<Aws::String, Aws::String> m_userMetadata;
1214     bool m_userMetadataHasBeenSet;
1215   };
1216 
1217 } // namespace Model
1218 } // namespace MediaConvert
1219 } // namespace Aws
1220