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/s3control/S3Control_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/s3control/model/JobStatus.h>
10 #include <aws/s3control/model/JobManifest.h>
11 #include <aws/s3control/model/JobOperation.h>
12 #include <aws/s3control/model/JobProgressSummary.h>
13 #include <aws/core/utils/memory/stl/AWSVector.h>
14 #include <aws/s3control/model/JobReport.h>
15 #include <aws/core/utils/DateTime.h>
16 #include <aws/s3control/model/JobFailure.h>
17 #include <utility>
18 
19 namespace Aws
20 {
21 namespace Utils
22 {
23 namespace Xml
24 {
25   class XmlNode;
26 } // namespace Xml
27 } // namespace Utils
28 namespace S3Control
29 {
30 namespace Model
31 {
32 
33   /**
34    * <p>A container element for the job configuration and status information returned
35    * by a <code>Describe Job</code> request.</p><p><h3>See Also:</h3>   <a
36    * href="http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobDescriptor">AWS
37    * API Reference</a></p>
38    */
39   class AWS_S3CONTROL_API JobDescriptor
40   {
41   public:
42     JobDescriptor();
43     JobDescriptor(const Aws::Utils::Xml::XmlNode& xmlNode);
44     JobDescriptor& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
45 
46     void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const;
47 
48 
49     /**
50      * <p>The ID for the specified job.</p>
51      */
GetJobId()52     inline const Aws::String& GetJobId() const{ return m_jobId; }
53 
54     /**
55      * <p>The ID for the specified job.</p>
56      */
JobIdHasBeenSet()57     inline bool JobIdHasBeenSet() const { return m_jobIdHasBeenSet; }
58 
59     /**
60      * <p>The ID for the specified job.</p>
61      */
SetJobId(const Aws::String & value)62     inline void SetJobId(const Aws::String& value) { m_jobIdHasBeenSet = true; m_jobId = value; }
63 
64     /**
65      * <p>The ID for the specified job.</p>
66      */
SetJobId(Aws::String && value)67     inline void SetJobId(Aws::String&& value) { m_jobIdHasBeenSet = true; m_jobId = std::move(value); }
68 
69     /**
70      * <p>The ID for the specified job.</p>
71      */
SetJobId(const char * value)72     inline void SetJobId(const char* value) { m_jobIdHasBeenSet = true; m_jobId.assign(value); }
73 
74     /**
75      * <p>The ID for the specified job.</p>
76      */
WithJobId(const Aws::String & value)77     inline JobDescriptor& WithJobId(const Aws::String& value) { SetJobId(value); return *this;}
78 
79     /**
80      * <p>The ID for the specified job.</p>
81      */
WithJobId(Aws::String && value)82     inline JobDescriptor& WithJobId(Aws::String&& value) { SetJobId(std::move(value)); return *this;}
83 
84     /**
85      * <p>The ID for the specified job.</p>
86      */
WithJobId(const char * value)87     inline JobDescriptor& WithJobId(const char* value) { SetJobId(value); return *this;}
88 
89 
90     /**
91      * <p>Indicates whether confirmation is required before Amazon S3 begins running
92      * the specified job. Confirmation is required only for jobs created through the
93      * Amazon S3 console.</p>
94      */
GetConfirmationRequired()95     inline bool GetConfirmationRequired() const{ return m_confirmationRequired; }
96 
97     /**
98      * <p>Indicates whether confirmation is required before Amazon S3 begins running
99      * the specified job. Confirmation is required only for jobs created through the
100      * Amazon S3 console.</p>
101      */
ConfirmationRequiredHasBeenSet()102     inline bool ConfirmationRequiredHasBeenSet() const { return m_confirmationRequiredHasBeenSet; }
103 
104     /**
105      * <p>Indicates whether confirmation is required before Amazon S3 begins running
106      * the specified job. Confirmation is required only for jobs created through the
107      * Amazon S3 console.</p>
108      */
SetConfirmationRequired(bool value)109     inline void SetConfirmationRequired(bool value) { m_confirmationRequiredHasBeenSet = true; m_confirmationRequired = value; }
110 
111     /**
112      * <p>Indicates whether confirmation is required before Amazon S3 begins running
113      * the specified job. Confirmation is required only for jobs created through the
114      * Amazon S3 console.</p>
115      */
WithConfirmationRequired(bool value)116     inline JobDescriptor& WithConfirmationRequired(bool value) { SetConfirmationRequired(value); return *this;}
117 
118 
119     /**
120      * <p>The description for this job, if one was provided in this job's <code>Create
121      * Job</code> request.</p>
122      */
GetDescription()123     inline const Aws::String& GetDescription() const{ return m_description; }
124 
125     /**
126      * <p>The description for this job, if one was provided in this job's <code>Create
127      * Job</code> request.</p>
128      */
DescriptionHasBeenSet()129     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
130 
131     /**
132      * <p>The description for this job, if one was provided in this job's <code>Create
133      * Job</code> request.</p>
134      */
SetDescription(const Aws::String & value)135     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
136 
137     /**
138      * <p>The description for this job, if one was provided in this job's <code>Create
139      * Job</code> request.</p>
140      */
SetDescription(Aws::String && value)141     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
142 
143     /**
144      * <p>The description for this job, if one was provided in this job's <code>Create
145      * Job</code> request.</p>
146      */
SetDescription(const char * value)147     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
148 
149     /**
150      * <p>The description for this job, if one was provided in this job's <code>Create
151      * Job</code> request.</p>
152      */
WithDescription(const Aws::String & value)153     inline JobDescriptor& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
154 
155     /**
156      * <p>The description for this job, if one was provided in this job's <code>Create
157      * Job</code> request.</p>
158      */
WithDescription(Aws::String && value)159     inline JobDescriptor& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
160 
161     /**
162      * <p>The description for this job, if one was provided in this job's <code>Create
163      * Job</code> request.</p>
164      */
WithDescription(const char * value)165     inline JobDescriptor& WithDescription(const char* value) { SetDescription(value); return *this;}
166 
167 
168     /**
169      * <p>The Amazon Resource Name (ARN) for this job.</p>
170      */
GetJobArn()171     inline const Aws::String& GetJobArn() const{ return m_jobArn; }
172 
173     /**
174      * <p>The Amazon Resource Name (ARN) for this job.</p>
175      */
JobArnHasBeenSet()176     inline bool JobArnHasBeenSet() const { return m_jobArnHasBeenSet; }
177 
178     /**
179      * <p>The Amazon Resource Name (ARN) for this job.</p>
180      */
SetJobArn(const Aws::String & value)181     inline void SetJobArn(const Aws::String& value) { m_jobArnHasBeenSet = true; m_jobArn = value; }
182 
183     /**
184      * <p>The Amazon Resource Name (ARN) for this job.</p>
185      */
SetJobArn(Aws::String && value)186     inline void SetJobArn(Aws::String&& value) { m_jobArnHasBeenSet = true; m_jobArn = std::move(value); }
187 
188     /**
189      * <p>The Amazon Resource Name (ARN) for this job.</p>
190      */
SetJobArn(const char * value)191     inline void SetJobArn(const char* value) { m_jobArnHasBeenSet = true; m_jobArn.assign(value); }
192 
193     /**
194      * <p>The Amazon Resource Name (ARN) for this job.</p>
195      */
WithJobArn(const Aws::String & value)196     inline JobDescriptor& WithJobArn(const Aws::String& value) { SetJobArn(value); return *this;}
197 
198     /**
199      * <p>The Amazon Resource Name (ARN) for this job.</p>
200      */
WithJobArn(Aws::String && value)201     inline JobDescriptor& WithJobArn(Aws::String&& value) { SetJobArn(std::move(value)); return *this;}
202 
203     /**
204      * <p>The Amazon Resource Name (ARN) for this job.</p>
205      */
WithJobArn(const char * value)206     inline JobDescriptor& WithJobArn(const char* value) { SetJobArn(value); return *this;}
207 
208 
209     /**
210      * <p>The current status of the specified job.</p>
211      */
GetStatus()212     inline const JobStatus& GetStatus() const{ return m_status; }
213 
214     /**
215      * <p>The current status of the specified job.</p>
216      */
StatusHasBeenSet()217     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
218 
219     /**
220      * <p>The current status of the specified job.</p>
221      */
SetStatus(const JobStatus & value)222     inline void SetStatus(const JobStatus& value) { m_statusHasBeenSet = true; m_status = value; }
223 
224     /**
225      * <p>The current status of the specified job.</p>
226      */
SetStatus(JobStatus && value)227     inline void SetStatus(JobStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
228 
229     /**
230      * <p>The current status of the specified job.</p>
231      */
WithStatus(const JobStatus & value)232     inline JobDescriptor& WithStatus(const JobStatus& value) { SetStatus(value); return *this;}
233 
234     /**
235      * <p>The current status of the specified job.</p>
236      */
WithStatus(JobStatus && value)237     inline JobDescriptor& WithStatus(JobStatus&& value) { SetStatus(std::move(value)); return *this;}
238 
239 
240     /**
241      * <p>The configuration information for the specified job's manifest object.</p>
242      */
GetManifest()243     inline const JobManifest& GetManifest() const{ return m_manifest; }
244 
245     /**
246      * <p>The configuration information for the specified job's manifest object.</p>
247      */
ManifestHasBeenSet()248     inline bool ManifestHasBeenSet() const { return m_manifestHasBeenSet; }
249 
250     /**
251      * <p>The configuration information for the specified job's manifest object.</p>
252      */
SetManifest(const JobManifest & value)253     inline void SetManifest(const JobManifest& value) { m_manifestHasBeenSet = true; m_manifest = value; }
254 
255     /**
256      * <p>The configuration information for the specified job's manifest object.</p>
257      */
SetManifest(JobManifest && value)258     inline void SetManifest(JobManifest&& value) { m_manifestHasBeenSet = true; m_manifest = std::move(value); }
259 
260     /**
261      * <p>The configuration information for the specified job's manifest object.</p>
262      */
WithManifest(const JobManifest & value)263     inline JobDescriptor& WithManifest(const JobManifest& value) { SetManifest(value); return *this;}
264 
265     /**
266      * <p>The configuration information for the specified job's manifest object.</p>
267      */
WithManifest(JobManifest && value)268     inline JobDescriptor& WithManifest(JobManifest&& value) { SetManifest(std::move(value)); return *this;}
269 
270 
271     /**
272      * <p>The operation that the specified job is configured to run on the objects
273      * listed in the manifest.</p>
274      */
GetOperation()275     inline const JobOperation& GetOperation() const{ return m_operation; }
276 
277     /**
278      * <p>The operation that the specified job is configured to run on the objects
279      * listed in the manifest.</p>
280      */
OperationHasBeenSet()281     inline bool OperationHasBeenSet() const { return m_operationHasBeenSet; }
282 
283     /**
284      * <p>The operation that the specified job is configured to run on the objects
285      * listed in the manifest.</p>
286      */
SetOperation(const JobOperation & value)287     inline void SetOperation(const JobOperation& value) { m_operationHasBeenSet = true; m_operation = value; }
288 
289     /**
290      * <p>The operation that the specified job is configured to run on the objects
291      * listed in the manifest.</p>
292      */
SetOperation(JobOperation && value)293     inline void SetOperation(JobOperation&& value) { m_operationHasBeenSet = true; m_operation = std::move(value); }
294 
295     /**
296      * <p>The operation that the specified job is configured to run on the objects
297      * listed in the manifest.</p>
298      */
WithOperation(const JobOperation & value)299     inline JobDescriptor& WithOperation(const JobOperation& value) { SetOperation(value); return *this;}
300 
301     /**
302      * <p>The operation that the specified job is configured to run on the objects
303      * listed in the manifest.</p>
304      */
WithOperation(JobOperation && value)305     inline JobDescriptor& WithOperation(JobOperation&& value) { SetOperation(std::move(value)); return *this;}
306 
307 
308     /**
309      * <p>The priority of the specified job.</p>
310      */
GetPriority()311     inline int GetPriority() const{ return m_priority; }
312 
313     /**
314      * <p>The priority of the specified job.</p>
315      */
PriorityHasBeenSet()316     inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; }
317 
318     /**
319      * <p>The priority of the specified job.</p>
320      */
SetPriority(int value)321     inline void SetPriority(int value) { m_priorityHasBeenSet = true; m_priority = value; }
322 
323     /**
324      * <p>The priority of the specified job.</p>
325      */
WithPriority(int value)326     inline JobDescriptor& WithPriority(int value) { SetPriority(value); return *this;}
327 
328 
329     /**
330      * <p>Describes the total number of tasks that the specified job has run, the
331      * number of tasks that succeeded, and the number of tasks that failed.</p>
332      */
GetProgressSummary()333     inline const JobProgressSummary& GetProgressSummary() const{ return m_progressSummary; }
334 
335     /**
336      * <p>Describes the total number of tasks that the specified job has run, the
337      * number of tasks that succeeded, and the number of tasks that failed.</p>
338      */
ProgressSummaryHasBeenSet()339     inline bool ProgressSummaryHasBeenSet() const { return m_progressSummaryHasBeenSet; }
340 
341     /**
342      * <p>Describes the total number of tasks that the specified job has run, the
343      * number of tasks that succeeded, and the number of tasks that failed.</p>
344      */
SetProgressSummary(const JobProgressSummary & value)345     inline void SetProgressSummary(const JobProgressSummary& value) { m_progressSummaryHasBeenSet = true; m_progressSummary = value; }
346 
347     /**
348      * <p>Describes the total number of tasks that the specified job has run, the
349      * number of tasks that succeeded, and the number of tasks that failed.</p>
350      */
SetProgressSummary(JobProgressSummary && value)351     inline void SetProgressSummary(JobProgressSummary&& value) { m_progressSummaryHasBeenSet = true; m_progressSummary = std::move(value); }
352 
353     /**
354      * <p>Describes the total number of tasks that the specified job has run, the
355      * number of tasks that succeeded, and the number of tasks that failed.</p>
356      */
WithProgressSummary(const JobProgressSummary & value)357     inline JobDescriptor& WithProgressSummary(const JobProgressSummary& value) { SetProgressSummary(value); return *this;}
358 
359     /**
360      * <p>Describes the total number of tasks that the specified job has run, the
361      * number of tasks that succeeded, and the number of tasks that failed.</p>
362      */
WithProgressSummary(JobProgressSummary && value)363     inline JobDescriptor& WithProgressSummary(JobProgressSummary&& value) { SetProgressSummary(std::move(value)); return *this;}
364 
365 
366     /**
367      * <p>The reason for updating the job.</p>
368      */
GetStatusUpdateReason()369     inline const Aws::String& GetStatusUpdateReason() const{ return m_statusUpdateReason; }
370 
371     /**
372      * <p>The reason for updating the job.</p>
373      */
StatusUpdateReasonHasBeenSet()374     inline bool StatusUpdateReasonHasBeenSet() const { return m_statusUpdateReasonHasBeenSet; }
375 
376     /**
377      * <p>The reason for updating the job.</p>
378      */
SetStatusUpdateReason(const Aws::String & value)379     inline void SetStatusUpdateReason(const Aws::String& value) { m_statusUpdateReasonHasBeenSet = true; m_statusUpdateReason = value; }
380 
381     /**
382      * <p>The reason for updating the job.</p>
383      */
SetStatusUpdateReason(Aws::String && value)384     inline void SetStatusUpdateReason(Aws::String&& value) { m_statusUpdateReasonHasBeenSet = true; m_statusUpdateReason = std::move(value); }
385 
386     /**
387      * <p>The reason for updating the job.</p>
388      */
SetStatusUpdateReason(const char * value)389     inline void SetStatusUpdateReason(const char* value) { m_statusUpdateReasonHasBeenSet = true; m_statusUpdateReason.assign(value); }
390 
391     /**
392      * <p>The reason for updating the job.</p>
393      */
WithStatusUpdateReason(const Aws::String & value)394     inline JobDescriptor& WithStatusUpdateReason(const Aws::String& value) { SetStatusUpdateReason(value); return *this;}
395 
396     /**
397      * <p>The reason for updating the job.</p>
398      */
WithStatusUpdateReason(Aws::String && value)399     inline JobDescriptor& WithStatusUpdateReason(Aws::String&& value) { SetStatusUpdateReason(std::move(value)); return *this;}
400 
401     /**
402      * <p>The reason for updating the job.</p>
403      */
WithStatusUpdateReason(const char * value)404     inline JobDescriptor& WithStatusUpdateReason(const char* value) { SetStatusUpdateReason(value); return *this;}
405 
406 
407     /**
408      * <p>If the specified job failed, this field contains information describing the
409      * failure.</p>
410      */
GetFailureReasons()411     inline const Aws::Vector<JobFailure>& GetFailureReasons() const{ return m_failureReasons; }
412 
413     /**
414      * <p>If the specified job failed, this field contains information describing the
415      * failure.</p>
416      */
FailureReasonsHasBeenSet()417     inline bool FailureReasonsHasBeenSet() const { return m_failureReasonsHasBeenSet; }
418 
419     /**
420      * <p>If the specified job failed, this field contains information describing the
421      * failure.</p>
422      */
SetFailureReasons(const Aws::Vector<JobFailure> & value)423     inline void SetFailureReasons(const Aws::Vector<JobFailure>& value) { m_failureReasonsHasBeenSet = true; m_failureReasons = value; }
424 
425     /**
426      * <p>If the specified job failed, this field contains information describing the
427      * failure.</p>
428      */
SetFailureReasons(Aws::Vector<JobFailure> && value)429     inline void SetFailureReasons(Aws::Vector<JobFailure>&& value) { m_failureReasonsHasBeenSet = true; m_failureReasons = std::move(value); }
430 
431     /**
432      * <p>If the specified job failed, this field contains information describing the
433      * failure.</p>
434      */
WithFailureReasons(const Aws::Vector<JobFailure> & value)435     inline JobDescriptor& WithFailureReasons(const Aws::Vector<JobFailure>& value) { SetFailureReasons(value); return *this;}
436 
437     /**
438      * <p>If the specified job failed, this field contains information describing the
439      * failure.</p>
440      */
WithFailureReasons(Aws::Vector<JobFailure> && value)441     inline JobDescriptor& WithFailureReasons(Aws::Vector<JobFailure>&& value) { SetFailureReasons(std::move(value)); return *this;}
442 
443     /**
444      * <p>If the specified job failed, this field contains information describing the
445      * failure.</p>
446      */
AddFailureReasons(const JobFailure & value)447     inline JobDescriptor& AddFailureReasons(const JobFailure& value) { m_failureReasonsHasBeenSet = true; m_failureReasons.push_back(value); return *this; }
448 
449     /**
450      * <p>If the specified job failed, this field contains information describing the
451      * failure.</p>
452      */
AddFailureReasons(JobFailure && value)453     inline JobDescriptor& AddFailureReasons(JobFailure&& value) { m_failureReasonsHasBeenSet = true; m_failureReasons.push_back(std::move(value)); return *this; }
454 
455 
456     /**
457      * <p>Contains the configuration information for the job-completion report if you
458      * requested one in the <code>Create Job</code> request.</p>
459      */
GetReport()460     inline const JobReport& GetReport() const{ return m_report; }
461 
462     /**
463      * <p>Contains the configuration information for the job-completion report if you
464      * requested one in the <code>Create Job</code> request.</p>
465      */
ReportHasBeenSet()466     inline bool ReportHasBeenSet() const { return m_reportHasBeenSet; }
467 
468     /**
469      * <p>Contains the configuration information for the job-completion report if you
470      * requested one in the <code>Create Job</code> request.</p>
471      */
SetReport(const JobReport & value)472     inline void SetReport(const JobReport& value) { m_reportHasBeenSet = true; m_report = value; }
473 
474     /**
475      * <p>Contains the configuration information for the job-completion report if you
476      * requested one in the <code>Create Job</code> request.</p>
477      */
SetReport(JobReport && value)478     inline void SetReport(JobReport&& value) { m_reportHasBeenSet = true; m_report = std::move(value); }
479 
480     /**
481      * <p>Contains the configuration information for the job-completion report if you
482      * requested one in the <code>Create Job</code> request.</p>
483      */
WithReport(const JobReport & value)484     inline JobDescriptor& WithReport(const JobReport& value) { SetReport(value); return *this;}
485 
486     /**
487      * <p>Contains the configuration information for the job-completion report if you
488      * requested one in the <code>Create Job</code> request.</p>
489      */
WithReport(JobReport && value)490     inline JobDescriptor& WithReport(JobReport&& value) { SetReport(std::move(value)); return *this;}
491 
492 
493     /**
494      * <p>A timestamp indicating when this job was created.</p>
495      */
GetCreationTime()496     inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; }
497 
498     /**
499      * <p>A timestamp indicating when this job was created.</p>
500      */
CreationTimeHasBeenSet()501     inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; }
502 
503     /**
504      * <p>A timestamp indicating when this job was created.</p>
505      */
SetCreationTime(const Aws::Utils::DateTime & value)506     inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; }
507 
508     /**
509      * <p>A timestamp indicating when this job was created.</p>
510      */
SetCreationTime(Aws::Utils::DateTime && value)511     inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); }
512 
513     /**
514      * <p>A timestamp indicating when this job was created.</p>
515      */
WithCreationTime(const Aws::Utils::DateTime & value)516     inline JobDescriptor& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;}
517 
518     /**
519      * <p>A timestamp indicating when this job was created.</p>
520      */
WithCreationTime(Aws::Utils::DateTime && value)521     inline JobDescriptor& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;}
522 
523 
524     /**
525      * <p>A timestamp indicating when this job terminated. A job's termination date is
526      * the date and time when it succeeded, failed, or was canceled.</p>
527      */
GetTerminationDate()528     inline const Aws::Utils::DateTime& GetTerminationDate() const{ return m_terminationDate; }
529 
530     /**
531      * <p>A timestamp indicating when this job terminated. A job's termination date is
532      * the date and time when it succeeded, failed, or was canceled.</p>
533      */
TerminationDateHasBeenSet()534     inline bool TerminationDateHasBeenSet() const { return m_terminationDateHasBeenSet; }
535 
536     /**
537      * <p>A timestamp indicating when this job terminated. A job's termination date is
538      * the date and time when it succeeded, failed, or was canceled.</p>
539      */
SetTerminationDate(const Aws::Utils::DateTime & value)540     inline void SetTerminationDate(const Aws::Utils::DateTime& value) { m_terminationDateHasBeenSet = true; m_terminationDate = value; }
541 
542     /**
543      * <p>A timestamp indicating when this job terminated. A job's termination date is
544      * the date and time when it succeeded, failed, or was canceled.</p>
545      */
SetTerminationDate(Aws::Utils::DateTime && value)546     inline void SetTerminationDate(Aws::Utils::DateTime&& value) { m_terminationDateHasBeenSet = true; m_terminationDate = std::move(value); }
547 
548     /**
549      * <p>A timestamp indicating when this job terminated. A job's termination date is
550      * the date and time when it succeeded, failed, or was canceled.</p>
551      */
WithTerminationDate(const Aws::Utils::DateTime & value)552     inline JobDescriptor& WithTerminationDate(const Aws::Utils::DateTime& value) { SetTerminationDate(value); return *this;}
553 
554     /**
555      * <p>A timestamp indicating when this job terminated. A job's termination date is
556      * the date and time when it succeeded, failed, or was canceled.</p>
557      */
WithTerminationDate(Aws::Utils::DateTime && value)558     inline JobDescriptor& WithTerminationDate(Aws::Utils::DateTime&& value) { SetTerminationDate(std::move(value)); return *this;}
559 
560 
561     /**
562      * <p>The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
563      * role assigned to run the tasks for this job.</p>
564      */
GetRoleArn()565     inline const Aws::String& GetRoleArn() const{ return m_roleArn; }
566 
567     /**
568      * <p>The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
569      * role assigned to run the tasks for this job.</p>
570      */
RoleArnHasBeenSet()571     inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; }
572 
573     /**
574      * <p>The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
575      * role assigned to run the tasks for this job.</p>
576      */
SetRoleArn(const Aws::String & value)577     inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; }
578 
579     /**
580      * <p>The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
581      * role assigned to run the tasks for this job.</p>
582      */
SetRoleArn(Aws::String && value)583     inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); }
584 
585     /**
586      * <p>The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
587      * role assigned to run the tasks for this job.</p>
588      */
SetRoleArn(const char * value)589     inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); }
590 
591     /**
592      * <p>The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
593      * role assigned to run the tasks for this job.</p>
594      */
WithRoleArn(const Aws::String & value)595     inline JobDescriptor& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;}
596 
597     /**
598      * <p>The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
599      * role assigned to run the tasks for this job.</p>
600      */
WithRoleArn(Aws::String && value)601     inline JobDescriptor& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;}
602 
603     /**
604      * <p>The Amazon Resource Name (ARN) for the Identity and Access Management (IAM)
605      * role assigned to run the tasks for this job.</p>
606      */
WithRoleArn(const char * value)607     inline JobDescriptor& WithRoleArn(const char* value) { SetRoleArn(value); return *this;}
608 
609 
610     /**
611      * <p>The timestamp when this job was suspended, if it has been suspended.</p>
612      */
GetSuspendedDate()613     inline const Aws::Utils::DateTime& GetSuspendedDate() const{ return m_suspendedDate; }
614 
615     /**
616      * <p>The timestamp when this job was suspended, if it has been suspended.</p>
617      */
SuspendedDateHasBeenSet()618     inline bool SuspendedDateHasBeenSet() const { return m_suspendedDateHasBeenSet; }
619 
620     /**
621      * <p>The timestamp when this job was suspended, if it has been suspended.</p>
622      */
SetSuspendedDate(const Aws::Utils::DateTime & value)623     inline void SetSuspendedDate(const Aws::Utils::DateTime& value) { m_suspendedDateHasBeenSet = true; m_suspendedDate = value; }
624 
625     /**
626      * <p>The timestamp when this job was suspended, if it has been suspended.</p>
627      */
SetSuspendedDate(Aws::Utils::DateTime && value)628     inline void SetSuspendedDate(Aws::Utils::DateTime&& value) { m_suspendedDateHasBeenSet = true; m_suspendedDate = std::move(value); }
629 
630     /**
631      * <p>The timestamp when this job was suspended, if it has been suspended.</p>
632      */
WithSuspendedDate(const Aws::Utils::DateTime & value)633     inline JobDescriptor& WithSuspendedDate(const Aws::Utils::DateTime& value) { SetSuspendedDate(value); return *this;}
634 
635     /**
636      * <p>The timestamp when this job was suspended, if it has been suspended.</p>
637      */
WithSuspendedDate(Aws::Utils::DateTime && value)638     inline JobDescriptor& WithSuspendedDate(Aws::Utils::DateTime&& value) { SetSuspendedDate(std::move(value)); return *this;}
639 
640 
641     /**
642      * <p>The reason why the specified job was suspended. A job is only suspended if
643      * you create it through the Amazon S3 console. When you create the job, it enters
644      * the <code>Suspended</code> state to await confirmation before running. After you
645      * confirm the job, it automatically exits the <code>Suspended</code> state.</p>
646      */
GetSuspendedCause()647     inline const Aws::String& GetSuspendedCause() const{ return m_suspendedCause; }
648 
649     /**
650      * <p>The reason why the specified job was suspended. A job is only suspended if
651      * you create it through the Amazon S3 console. When you create the job, it enters
652      * the <code>Suspended</code> state to await confirmation before running. After you
653      * confirm the job, it automatically exits the <code>Suspended</code> state.</p>
654      */
SuspendedCauseHasBeenSet()655     inline bool SuspendedCauseHasBeenSet() const { return m_suspendedCauseHasBeenSet; }
656 
657     /**
658      * <p>The reason why the specified job was suspended. A job is only suspended if
659      * you create it through the Amazon S3 console. When you create the job, it enters
660      * the <code>Suspended</code> state to await confirmation before running. After you
661      * confirm the job, it automatically exits the <code>Suspended</code> state.</p>
662      */
SetSuspendedCause(const Aws::String & value)663     inline void SetSuspendedCause(const Aws::String& value) { m_suspendedCauseHasBeenSet = true; m_suspendedCause = value; }
664 
665     /**
666      * <p>The reason why the specified job was suspended. A job is only suspended if
667      * you create it through the Amazon S3 console. When you create the job, it enters
668      * the <code>Suspended</code> state to await confirmation before running. After you
669      * confirm the job, it automatically exits the <code>Suspended</code> state.</p>
670      */
SetSuspendedCause(Aws::String && value)671     inline void SetSuspendedCause(Aws::String&& value) { m_suspendedCauseHasBeenSet = true; m_suspendedCause = std::move(value); }
672 
673     /**
674      * <p>The reason why the specified job was suspended. A job is only suspended if
675      * you create it through the Amazon S3 console. When you create the job, it enters
676      * the <code>Suspended</code> state to await confirmation before running. After you
677      * confirm the job, it automatically exits the <code>Suspended</code> state.</p>
678      */
SetSuspendedCause(const char * value)679     inline void SetSuspendedCause(const char* value) { m_suspendedCauseHasBeenSet = true; m_suspendedCause.assign(value); }
680 
681     /**
682      * <p>The reason why the specified job was suspended. A job is only suspended if
683      * you create it through the Amazon S3 console. When you create the job, it enters
684      * the <code>Suspended</code> state to await confirmation before running. After you
685      * confirm the job, it automatically exits the <code>Suspended</code> state.</p>
686      */
WithSuspendedCause(const Aws::String & value)687     inline JobDescriptor& WithSuspendedCause(const Aws::String& value) { SetSuspendedCause(value); return *this;}
688 
689     /**
690      * <p>The reason why the specified job was suspended. A job is only suspended if
691      * you create it through the Amazon S3 console. When you create the job, it enters
692      * the <code>Suspended</code> state to await confirmation before running. After you
693      * confirm the job, it automatically exits the <code>Suspended</code> state.</p>
694      */
WithSuspendedCause(Aws::String && value)695     inline JobDescriptor& WithSuspendedCause(Aws::String&& value) { SetSuspendedCause(std::move(value)); return *this;}
696 
697     /**
698      * <p>The reason why the specified job was suspended. A job is only suspended if
699      * you create it through the Amazon S3 console. When you create the job, it enters
700      * the <code>Suspended</code> state to await confirmation before running. After you
701      * confirm the job, it automatically exits the <code>Suspended</code> state.</p>
702      */
WithSuspendedCause(const char * value)703     inline JobDescriptor& WithSuspendedCause(const char* value) { SetSuspendedCause(value); return *this;}
704 
705   private:
706 
707     Aws::String m_jobId;
708     bool m_jobIdHasBeenSet;
709 
710     bool m_confirmationRequired;
711     bool m_confirmationRequiredHasBeenSet;
712 
713     Aws::String m_description;
714     bool m_descriptionHasBeenSet;
715 
716     Aws::String m_jobArn;
717     bool m_jobArnHasBeenSet;
718 
719     JobStatus m_status;
720     bool m_statusHasBeenSet;
721 
722     JobManifest m_manifest;
723     bool m_manifestHasBeenSet;
724 
725     JobOperation m_operation;
726     bool m_operationHasBeenSet;
727 
728     int m_priority;
729     bool m_priorityHasBeenSet;
730 
731     JobProgressSummary m_progressSummary;
732     bool m_progressSummaryHasBeenSet;
733 
734     Aws::String m_statusUpdateReason;
735     bool m_statusUpdateReasonHasBeenSet;
736 
737     Aws::Vector<JobFailure> m_failureReasons;
738     bool m_failureReasonsHasBeenSet;
739 
740     JobReport m_report;
741     bool m_reportHasBeenSet;
742 
743     Aws::Utils::DateTime m_creationTime;
744     bool m_creationTimeHasBeenSet;
745 
746     Aws::Utils::DateTime m_terminationDate;
747     bool m_terminationDateHasBeenSet;
748 
749     Aws::String m_roleArn;
750     bool m_roleArnHasBeenSet;
751 
752     Aws::Utils::DateTime m_suspendedDate;
753     bool m_suspendedDateHasBeenSet;
754 
755     Aws::String m_suspendedCause;
756     bool m_suspendedCauseHasBeenSet;
757   };
758 
759 } // namespace Model
760 } // namespace S3Control
761 } // namespace Aws
762