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/mturk-requester/MTurk_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/mturk-requester/model/AssignmentStatus.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace MTurk
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p> The Assignment data structure represents a single assignment of a HIT to a
30    * Worker. The assignment tracks the Worker's efforts to complete the HIT, and
31    * contains the results for later retrieval. </p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/mturk-requester-2017-01-17/Assignment">AWS
33    * API Reference</a></p>
34    */
35   class AWS_MTURK_API Assignment
36   {
37   public:
38     Assignment();
39     Assignment(Aws::Utils::Json::JsonView jsonValue);
40     Assignment& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p> A unique identifier for the assignment.</p>
46      */
GetAssignmentId()47     inline const Aws::String& GetAssignmentId() const{ return m_assignmentId; }
48 
49     /**
50      * <p> A unique identifier for the assignment.</p>
51      */
AssignmentIdHasBeenSet()52     inline bool AssignmentIdHasBeenSet() const { return m_assignmentIdHasBeenSet; }
53 
54     /**
55      * <p> A unique identifier for the assignment.</p>
56      */
SetAssignmentId(const Aws::String & value)57     inline void SetAssignmentId(const Aws::String& value) { m_assignmentIdHasBeenSet = true; m_assignmentId = value; }
58 
59     /**
60      * <p> A unique identifier for the assignment.</p>
61      */
SetAssignmentId(Aws::String && value)62     inline void SetAssignmentId(Aws::String&& value) { m_assignmentIdHasBeenSet = true; m_assignmentId = std::move(value); }
63 
64     /**
65      * <p> A unique identifier for the assignment.</p>
66      */
SetAssignmentId(const char * value)67     inline void SetAssignmentId(const char* value) { m_assignmentIdHasBeenSet = true; m_assignmentId.assign(value); }
68 
69     /**
70      * <p> A unique identifier for the assignment.</p>
71      */
WithAssignmentId(const Aws::String & value)72     inline Assignment& WithAssignmentId(const Aws::String& value) { SetAssignmentId(value); return *this;}
73 
74     /**
75      * <p> A unique identifier for the assignment.</p>
76      */
WithAssignmentId(Aws::String && value)77     inline Assignment& WithAssignmentId(Aws::String&& value) { SetAssignmentId(std::move(value)); return *this;}
78 
79     /**
80      * <p> A unique identifier for the assignment.</p>
81      */
WithAssignmentId(const char * value)82     inline Assignment& WithAssignmentId(const char* value) { SetAssignmentId(value); return *this;}
83 
84 
85     /**
86      * <p> The ID of the Worker who accepted the HIT.</p>
87      */
GetWorkerId()88     inline const Aws::String& GetWorkerId() const{ return m_workerId; }
89 
90     /**
91      * <p> The ID of the Worker who accepted the HIT.</p>
92      */
WorkerIdHasBeenSet()93     inline bool WorkerIdHasBeenSet() const { return m_workerIdHasBeenSet; }
94 
95     /**
96      * <p> The ID of the Worker who accepted the HIT.</p>
97      */
SetWorkerId(const Aws::String & value)98     inline void SetWorkerId(const Aws::String& value) { m_workerIdHasBeenSet = true; m_workerId = value; }
99 
100     /**
101      * <p> The ID of the Worker who accepted the HIT.</p>
102      */
SetWorkerId(Aws::String && value)103     inline void SetWorkerId(Aws::String&& value) { m_workerIdHasBeenSet = true; m_workerId = std::move(value); }
104 
105     /**
106      * <p> The ID of the Worker who accepted the HIT.</p>
107      */
SetWorkerId(const char * value)108     inline void SetWorkerId(const char* value) { m_workerIdHasBeenSet = true; m_workerId.assign(value); }
109 
110     /**
111      * <p> The ID of the Worker who accepted the HIT.</p>
112      */
WithWorkerId(const Aws::String & value)113     inline Assignment& WithWorkerId(const Aws::String& value) { SetWorkerId(value); return *this;}
114 
115     /**
116      * <p> The ID of the Worker who accepted the HIT.</p>
117      */
WithWorkerId(Aws::String && value)118     inline Assignment& WithWorkerId(Aws::String&& value) { SetWorkerId(std::move(value)); return *this;}
119 
120     /**
121      * <p> The ID of the Worker who accepted the HIT.</p>
122      */
WithWorkerId(const char * value)123     inline Assignment& WithWorkerId(const char* value) { SetWorkerId(value); return *this;}
124 
125 
126     /**
127      * <p> The ID of the HIT.</p>
128      */
GetHITId()129     inline const Aws::String& GetHITId() const{ return m_hITId; }
130 
131     /**
132      * <p> The ID of the HIT.</p>
133      */
HITIdHasBeenSet()134     inline bool HITIdHasBeenSet() const { return m_hITIdHasBeenSet; }
135 
136     /**
137      * <p> The ID of the HIT.</p>
138      */
SetHITId(const Aws::String & value)139     inline void SetHITId(const Aws::String& value) { m_hITIdHasBeenSet = true; m_hITId = value; }
140 
141     /**
142      * <p> The ID of the HIT.</p>
143      */
SetHITId(Aws::String && value)144     inline void SetHITId(Aws::String&& value) { m_hITIdHasBeenSet = true; m_hITId = std::move(value); }
145 
146     /**
147      * <p> The ID of the HIT.</p>
148      */
SetHITId(const char * value)149     inline void SetHITId(const char* value) { m_hITIdHasBeenSet = true; m_hITId.assign(value); }
150 
151     /**
152      * <p> The ID of the HIT.</p>
153      */
WithHITId(const Aws::String & value)154     inline Assignment& WithHITId(const Aws::String& value) { SetHITId(value); return *this;}
155 
156     /**
157      * <p> The ID of the HIT.</p>
158      */
WithHITId(Aws::String && value)159     inline Assignment& WithHITId(Aws::String&& value) { SetHITId(std::move(value)); return *this;}
160 
161     /**
162      * <p> The ID of the HIT.</p>
163      */
WithHITId(const char * value)164     inline Assignment& WithHITId(const char* value) { SetHITId(value); return *this;}
165 
166 
167     /**
168      * <p> The status of the assignment.</p>
169      */
GetAssignmentStatus()170     inline const AssignmentStatus& GetAssignmentStatus() const{ return m_assignmentStatus; }
171 
172     /**
173      * <p> The status of the assignment.</p>
174      */
AssignmentStatusHasBeenSet()175     inline bool AssignmentStatusHasBeenSet() const { return m_assignmentStatusHasBeenSet; }
176 
177     /**
178      * <p> The status of the assignment.</p>
179      */
SetAssignmentStatus(const AssignmentStatus & value)180     inline void SetAssignmentStatus(const AssignmentStatus& value) { m_assignmentStatusHasBeenSet = true; m_assignmentStatus = value; }
181 
182     /**
183      * <p> The status of the assignment.</p>
184      */
SetAssignmentStatus(AssignmentStatus && value)185     inline void SetAssignmentStatus(AssignmentStatus&& value) { m_assignmentStatusHasBeenSet = true; m_assignmentStatus = std::move(value); }
186 
187     /**
188      * <p> The status of the assignment.</p>
189      */
WithAssignmentStatus(const AssignmentStatus & value)190     inline Assignment& WithAssignmentStatus(const AssignmentStatus& value) { SetAssignmentStatus(value); return *this;}
191 
192     /**
193      * <p> The status of the assignment.</p>
194      */
WithAssignmentStatus(AssignmentStatus && value)195     inline Assignment& WithAssignmentStatus(AssignmentStatus&& value) { SetAssignmentStatus(std::move(value)); return *this;}
196 
197 
198     /**
199      * <p> If results have been submitted, AutoApprovalTime is the date and time the
200      * results of the assignment results are considered Approved automatically if they
201      * have not already been explicitly approved or rejected by the Requester. This
202      * value is derived from the auto-approval delay specified by the Requester in the
203      * HIT. This value is omitted from the assignment if the Worker has not yet
204      * submitted results.</p>
205      */
GetAutoApprovalTime()206     inline const Aws::Utils::DateTime& GetAutoApprovalTime() const{ return m_autoApprovalTime; }
207 
208     /**
209      * <p> If results have been submitted, AutoApprovalTime is the date and time the
210      * results of the assignment results are considered Approved automatically if they
211      * have not already been explicitly approved or rejected by the Requester. This
212      * value is derived from the auto-approval delay specified by the Requester in the
213      * HIT. This value is omitted from the assignment if the Worker has not yet
214      * submitted results.</p>
215      */
AutoApprovalTimeHasBeenSet()216     inline bool AutoApprovalTimeHasBeenSet() const { return m_autoApprovalTimeHasBeenSet; }
217 
218     /**
219      * <p> If results have been submitted, AutoApprovalTime is the date and time the
220      * results of the assignment results are considered Approved automatically if they
221      * have not already been explicitly approved or rejected by the Requester. This
222      * value is derived from the auto-approval delay specified by the Requester in the
223      * HIT. This value is omitted from the assignment if the Worker has not yet
224      * submitted results.</p>
225      */
SetAutoApprovalTime(const Aws::Utils::DateTime & value)226     inline void SetAutoApprovalTime(const Aws::Utils::DateTime& value) { m_autoApprovalTimeHasBeenSet = true; m_autoApprovalTime = value; }
227 
228     /**
229      * <p> If results have been submitted, AutoApprovalTime is the date and time the
230      * results of the assignment results are considered Approved automatically if they
231      * have not already been explicitly approved or rejected by the Requester. This
232      * value is derived from the auto-approval delay specified by the Requester in the
233      * HIT. This value is omitted from the assignment if the Worker has not yet
234      * submitted results.</p>
235      */
SetAutoApprovalTime(Aws::Utils::DateTime && value)236     inline void SetAutoApprovalTime(Aws::Utils::DateTime&& value) { m_autoApprovalTimeHasBeenSet = true; m_autoApprovalTime = std::move(value); }
237 
238     /**
239      * <p> If results have been submitted, AutoApprovalTime is the date and time the
240      * results of the assignment results are considered Approved automatically if they
241      * have not already been explicitly approved or rejected by the Requester. This
242      * value is derived from the auto-approval delay specified by the Requester in the
243      * HIT. This value is omitted from the assignment if the Worker has not yet
244      * submitted results.</p>
245      */
WithAutoApprovalTime(const Aws::Utils::DateTime & value)246     inline Assignment& WithAutoApprovalTime(const Aws::Utils::DateTime& value) { SetAutoApprovalTime(value); return *this;}
247 
248     /**
249      * <p> If results have been submitted, AutoApprovalTime is the date and time the
250      * results of the assignment results are considered Approved automatically if they
251      * have not already been explicitly approved or rejected by the Requester. This
252      * value is derived from the auto-approval delay specified by the Requester in the
253      * HIT. This value is omitted from the assignment if the Worker has not yet
254      * submitted results.</p>
255      */
WithAutoApprovalTime(Aws::Utils::DateTime && value)256     inline Assignment& WithAutoApprovalTime(Aws::Utils::DateTime&& value) { SetAutoApprovalTime(std::move(value)); return *this;}
257 
258 
259     /**
260      * <p> The date and time the Worker accepted the assignment.</p>
261      */
GetAcceptTime()262     inline const Aws::Utils::DateTime& GetAcceptTime() const{ return m_acceptTime; }
263 
264     /**
265      * <p> The date and time the Worker accepted the assignment.</p>
266      */
AcceptTimeHasBeenSet()267     inline bool AcceptTimeHasBeenSet() const { return m_acceptTimeHasBeenSet; }
268 
269     /**
270      * <p> The date and time the Worker accepted the assignment.</p>
271      */
SetAcceptTime(const Aws::Utils::DateTime & value)272     inline void SetAcceptTime(const Aws::Utils::DateTime& value) { m_acceptTimeHasBeenSet = true; m_acceptTime = value; }
273 
274     /**
275      * <p> The date and time the Worker accepted the assignment.</p>
276      */
SetAcceptTime(Aws::Utils::DateTime && value)277     inline void SetAcceptTime(Aws::Utils::DateTime&& value) { m_acceptTimeHasBeenSet = true; m_acceptTime = std::move(value); }
278 
279     /**
280      * <p> The date and time the Worker accepted the assignment.</p>
281      */
WithAcceptTime(const Aws::Utils::DateTime & value)282     inline Assignment& WithAcceptTime(const Aws::Utils::DateTime& value) { SetAcceptTime(value); return *this;}
283 
284     /**
285      * <p> The date and time the Worker accepted the assignment.</p>
286      */
WithAcceptTime(Aws::Utils::DateTime && value)287     inline Assignment& WithAcceptTime(Aws::Utils::DateTime&& value) { SetAcceptTime(std::move(value)); return *this;}
288 
289 
290     /**
291      * <p> If the Worker has submitted results, SubmitTime is the date and time the
292      * assignment was submitted. This value is omitted from the assignment if the
293      * Worker has not yet submitted results.</p>
294      */
GetSubmitTime()295     inline const Aws::Utils::DateTime& GetSubmitTime() const{ return m_submitTime; }
296 
297     /**
298      * <p> If the Worker has submitted results, SubmitTime is the date and time the
299      * assignment was submitted. This value is omitted from the assignment if the
300      * Worker has not yet submitted results.</p>
301      */
SubmitTimeHasBeenSet()302     inline bool SubmitTimeHasBeenSet() const { return m_submitTimeHasBeenSet; }
303 
304     /**
305      * <p> If the Worker has submitted results, SubmitTime is the date and time the
306      * assignment was submitted. This value is omitted from the assignment if the
307      * Worker has not yet submitted results.</p>
308      */
SetSubmitTime(const Aws::Utils::DateTime & value)309     inline void SetSubmitTime(const Aws::Utils::DateTime& value) { m_submitTimeHasBeenSet = true; m_submitTime = value; }
310 
311     /**
312      * <p> If the Worker has submitted results, SubmitTime is the date and time the
313      * assignment was submitted. This value is omitted from the assignment if the
314      * Worker has not yet submitted results.</p>
315      */
SetSubmitTime(Aws::Utils::DateTime && value)316     inline void SetSubmitTime(Aws::Utils::DateTime&& value) { m_submitTimeHasBeenSet = true; m_submitTime = std::move(value); }
317 
318     /**
319      * <p> If the Worker has submitted results, SubmitTime is the date and time the
320      * assignment was submitted. This value is omitted from the assignment if the
321      * Worker has not yet submitted results.</p>
322      */
WithSubmitTime(const Aws::Utils::DateTime & value)323     inline Assignment& WithSubmitTime(const Aws::Utils::DateTime& value) { SetSubmitTime(value); return *this;}
324 
325     /**
326      * <p> If the Worker has submitted results, SubmitTime is the date and time the
327      * assignment was submitted. This value is omitted from the assignment if the
328      * Worker has not yet submitted results.</p>
329      */
WithSubmitTime(Aws::Utils::DateTime && value)330     inline Assignment& WithSubmitTime(Aws::Utils::DateTime&& value) { SetSubmitTime(std::move(value)); return *this;}
331 
332 
333     /**
334      * <p> If the Worker has submitted results and the Requester has approved the
335      * results, ApprovalTime is the date and time the Requester approved the results.
336      * This value is omitted from the assignment if the Requester has not yet approved
337      * the results.</p>
338      */
GetApprovalTime()339     inline const Aws::Utils::DateTime& GetApprovalTime() const{ return m_approvalTime; }
340 
341     /**
342      * <p> If the Worker has submitted results and the Requester has approved the
343      * results, ApprovalTime is the date and time the Requester approved the results.
344      * This value is omitted from the assignment if the Requester has not yet approved
345      * the results.</p>
346      */
ApprovalTimeHasBeenSet()347     inline bool ApprovalTimeHasBeenSet() const { return m_approvalTimeHasBeenSet; }
348 
349     /**
350      * <p> If the Worker has submitted results and the Requester has approved the
351      * results, ApprovalTime is the date and time the Requester approved the results.
352      * This value is omitted from the assignment if the Requester has not yet approved
353      * the results.</p>
354      */
SetApprovalTime(const Aws::Utils::DateTime & value)355     inline void SetApprovalTime(const Aws::Utils::DateTime& value) { m_approvalTimeHasBeenSet = true; m_approvalTime = value; }
356 
357     /**
358      * <p> If the Worker has submitted results and the Requester has approved the
359      * results, ApprovalTime is the date and time the Requester approved the results.
360      * This value is omitted from the assignment if the Requester has not yet approved
361      * the results.</p>
362      */
SetApprovalTime(Aws::Utils::DateTime && value)363     inline void SetApprovalTime(Aws::Utils::DateTime&& value) { m_approvalTimeHasBeenSet = true; m_approvalTime = std::move(value); }
364 
365     /**
366      * <p> If the Worker has submitted results and the Requester has approved the
367      * results, ApprovalTime is the date and time the Requester approved the results.
368      * This value is omitted from the assignment if the Requester has not yet approved
369      * the results.</p>
370      */
WithApprovalTime(const Aws::Utils::DateTime & value)371     inline Assignment& WithApprovalTime(const Aws::Utils::DateTime& value) { SetApprovalTime(value); return *this;}
372 
373     /**
374      * <p> If the Worker has submitted results and the Requester has approved the
375      * results, ApprovalTime is the date and time the Requester approved the results.
376      * This value is omitted from the assignment if the Requester has not yet approved
377      * the results.</p>
378      */
WithApprovalTime(Aws::Utils::DateTime && value)379     inline Assignment& WithApprovalTime(Aws::Utils::DateTime&& value) { SetApprovalTime(std::move(value)); return *this;}
380 
381 
382     /**
383      * <p> If the Worker has submitted results and the Requester has rejected the
384      * results, RejectionTime is the date and time the Requester rejected the
385      * results.</p>
386      */
GetRejectionTime()387     inline const Aws::Utils::DateTime& GetRejectionTime() const{ return m_rejectionTime; }
388 
389     /**
390      * <p> If the Worker has submitted results and the Requester has rejected the
391      * results, RejectionTime is the date and time the Requester rejected the
392      * results.</p>
393      */
RejectionTimeHasBeenSet()394     inline bool RejectionTimeHasBeenSet() const { return m_rejectionTimeHasBeenSet; }
395 
396     /**
397      * <p> If the Worker has submitted results and the Requester has rejected the
398      * results, RejectionTime is the date and time the Requester rejected the
399      * results.</p>
400      */
SetRejectionTime(const Aws::Utils::DateTime & value)401     inline void SetRejectionTime(const Aws::Utils::DateTime& value) { m_rejectionTimeHasBeenSet = true; m_rejectionTime = value; }
402 
403     /**
404      * <p> If the Worker has submitted results and the Requester has rejected the
405      * results, RejectionTime is the date and time the Requester rejected the
406      * results.</p>
407      */
SetRejectionTime(Aws::Utils::DateTime && value)408     inline void SetRejectionTime(Aws::Utils::DateTime&& value) { m_rejectionTimeHasBeenSet = true; m_rejectionTime = std::move(value); }
409 
410     /**
411      * <p> If the Worker has submitted results and the Requester has rejected the
412      * results, RejectionTime is the date and time the Requester rejected the
413      * results.</p>
414      */
WithRejectionTime(const Aws::Utils::DateTime & value)415     inline Assignment& WithRejectionTime(const Aws::Utils::DateTime& value) { SetRejectionTime(value); return *this;}
416 
417     /**
418      * <p> If the Worker has submitted results and the Requester has rejected the
419      * results, RejectionTime is the date and time the Requester rejected the
420      * results.</p>
421      */
WithRejectionTime(Aws::Utils::DateTime && value)422     inline Assignment& WithRejectionTime(Aws::Utils::DateTime&& value) { SetRejectionTime(std::move(value)); return *this;}
423 
424 
425     /**
426      * <p> The date and time of the deadline for the assignment. This value is derived
427      * from the deadline specification for the HIT and the date and time the Worker
428      * accepted the HIT.</p>
429      */
GetDeadline()430     inline const Aws::Utils::DateTime& GetDeadline() const{ return m_deadline; }
431 
432     /**
433      * <p> The date and time of the deadline for the assignment. This value is derived
434      * from the deadline specification for the HIT and the date and time the Worker
435      * accepted the HIT.</p>
436      */
DeadlineHasBeenSet()437     inline bool DeadlineHasBeenSet() const { return m_deadlineHasBeenSet; }
438 
439     /**
440      * <p> The date and time of the deadline for the assignment. This value is derived
441      * from the deadline specification for the HIT and the date and time the Worker
442      * accepted the HIT.</p>
443      */
SetDeadline(const Aws::Utils::DateTime & value)444     inline void SetDeadline(const Aws::Utils::DateTime& value) { m_deadlineHasBeenSet = true; m_deadline = value; }
445 
446     /**
447      * <p> The date and time of the deadline for the assignment. This value is derived
448      * from the deadline specification for the HIT and the date and time the Worker
449      * accepted the HIT.</p>
450      */
SetDeadline(Aws::Utils::DateTime && value)451     inline void SetDeadline(Aws::Utils::DateTime&& value) { m_deadlineHasBeenSet = true; m_deadline = std::move(value); }
452 
453     /**
454      * <p> The date and time of the deadline for the assignment. This value is derived
455      * from the deadline specification for the HIT and the date and time the Worker
456      * accepted the HIT.</p>
457      */
WithDeadline(const Aws::Utils::DateTime & value)458     inline Assignment& WithDeadline(const Aws::Utils::DateTime& value) { SetDeadline(value); return *this;}
459 
460     /**
461      * <p> The date and time of the deadline for the assignment. This value is derived
462      * from the deadline specification for the HIT and the date and time the Worker
463      * accepted the HIT.</p>
464      */
WithDeadline(Aws::Utils::DateTime && value)465     inline Assignment& WithDeadline(Aws::Utils::DateTime&& value) { SetDeadline(std::move(value)); return *this;}
466 
467 
468     /**
469      * <p> The Worker's answers submitted for the HIT contained in a
470      * QuestionFormAnswers document, if the Worker provides an answer. If the Worker
471      * does not provide any answers, Answer may contain a QuestionFormAnswers document,
472      * or Answer may be empty.</p>
473      */
GetAnswer()474     inline const Aws::String& GetAnswer() const{ return m_answer; }
475 
476     /**
477      * <p> The Worker's answers submitted for the HIT contained in a
478      * QuestionFormAnswers document, if the Worker provides an answer. If the Worker
479      * does not provide any answers, Answer may contain a QuestionFormAnswers document,
480      * or Answer may be empty.</p>
481      */
AnswerHasBeenSet()482     inline bool AnswerHasBeenSet() const { return m_answerHasBeenSet; }
483 
484     /**
485      * <p> The Worker's answers submitted for the HIT contained in a
486      * QuestionFormAnswers document, if the Worker provides an answer. If the Worker
487      * does not provide any answers, Answer may contain a QuestionFormAnswers document,
488      * or Answer may be empty.</p>
489      */
SetAnswer(const Aws::String & value)490     inline void SetAnswer(const Aws::String& value) { m_answerHasBeenSet = true; m_answer = value; }
491 
492     /**
493      * <p> The Worker's answers submitted for the HIT contained in a
494      * QuestionFormAnswers document, if the Worker provides an answer. If the Worker
495      * does not provide any answers, Answer may contain a QuestionFormAnswers document,
496      * or Answer may be empty.</p>
497      */
SetAnswer(Aws::String && value)498     inline void SetAnswer(Aws::String&& value) { m_answerHasBeenSet = true; m_answer = std::move(value); }
499 
500     /**
501      * <p> The Worker's answers submitted for the HIT contained in a
502      * QuestionFormAnswers document, if the Worker provides an answer. If the Worker
503      * does not provide any answers, Answer may contain a QuestionFormAnswers document,
504      * or Answer may be empty.</p>
505      */
SetAnswer(const char * value)506     inline void SetAnswer(const char* value) { m_answerHasBeenSet = true; m_answer.assign(value); }
507 
508     /**
509      * <p> The Worker's answers submitted for the HIT contained in a
510      * QuestionFormAnswers document, if the Worker provides an answer. If the Worker
511      * does not provide any answers, Answer may contain a QuestionFormAnswers document,
512      * or Answer may be empty.</p>
513      */
WithAnswer(const Aws::String & value)514     inline Assignment& WithAnswer(const Aws::String& value) { SetAnswer(value); return *this;}
515 
516     /**
517      * <p> The Worker's answers submitted for the HIT contained in a
518      * QuestionFormAnswers document, if the Worker provides an answer. If the Worker
519      * does not provide any answers, Answer may contain a QuestionFormAnswers document,
520      * or Answer may be empty.</p>
521      */
WithAnswer(Aws::String && value)522     inline Assignment& WithAnswer(Aws::String&& value) { SetAnswer(std::move(value)); return *this;}
523 
524     /**
525      * <p> The Worker's answers submitted for the HIT contained in a
526      * QuestionFormAnswers document, if the Worker provides an answer. If the Worker
527      * does not provide any answers, Answer may contain a QuestionFormAnswers document,
528      * or Answer may be empty.</p>
529      */
WithAnswer(const char * value)530     inline Assignment& WithAnswer(const char* value) { SetAnswer(value); return *this;}
531 
532 
533     /**
534      * <p> The feedback string included with the call to the ApproveAssignment
535      * operation or the RejectAssignment operation, if the Requester approved or
536      * rejected the assignment and specified feedback.</p>
537      */
GetRequesterFeedback()538     inline const Aws::String& GetRequesterFeedback() const{ return m_requesterFeedback; }
539 
540     /**
541      * <p> The feedback string included with the call to the ApproveAssignment
542      * operation or the RejectAssignment operation, if the Requester approved or
543      * rejected the assignment and specified feedback.</p>
544      */
RequesterFeedbackHasBeenSet()545     inline bool RequesterFeedbackHasBeenSet() const { return m_requesterFeedbackHasBeenSet; }
546 
547     /**
548      * <p> The feedback string included with the call to the ApproveAssignment
549      * operation or the RejectAssignment operation, if the Requester approved or
550      * rejected the assignment and specified feedback.</p>
551      */
SetRequesterFeedback(const Aws::String & value)552     inline void SetRequesterFeedback(const Aws::String& value) { m_requesterFeedbackHasBeenSet = true; m_requesterFeedback = value; }
553 
554     /**
555      * <p> The feedback string included with the call to the ApproveAssignment
556      * operation or the RejectAssignment operation, if the Requester approved or
557      * rejected the assignment and specified feedback.</p>
558      */
SetRequesterFeedback(Aws::String && value)559     inline void SetRequesterFeedback(Aws::String&& value) { m_requesterFeedbackHasBeenSet = true; m_requesterFeedback = std::move(value); }
560 
561     /**
562      * <p> The feedback string included with the call to the ApproveAssignment
563      * operation or the RejectAssignment operation, if the Requester approved or
564      * rejected the assignment and specified feedback.</p>
565      */
SetRequesterFeedback(const char * value)566     inline void SetRequesterFeedback(const char* value) { m_requesterFeedbackHasBeenSet = true; m_requesterFeedback.assign(value); }
567 
568     /**
569      * <p> The feedback string included with the call to the ApproveAssignment
570      * operation or the RejectAssignment operation, if the Requester approved or
571      * rejected the assignment and specified feedback.</p>
572      */
WithRequesterFeedback(const Aws::String & value)573     inline Assignment& WithRequesterFeedback(const Aws::String& value) { SetRequesterFeedback(value); return *this;}
574 
575     /**
576      * <p> The feedback string included with the call to the ApproveAssignment
577      * operation or the RejectAssignment operation, if the Requester approved or
578      * rejected the assignment and specified feedback.</p>
579      */
WithRequesterFeedback(Aws::String && value)580     inline Assignment& WithRequesterFeedback(Aws::String&& value) { SetRequesterFeedback(std::move(value)); return *this;}
581 
582     /**
583      * <p> The feedback string included with the call to the ApproveAssignment
584      * operation or the RejectAssignment operation, if the Requester approved or
585      * rejected the assignment and specified feedback.</p>
586      */
WithRequesterFeedback(const char * value)587     inline Assignment& WithRequesterFeedback(const char* value) { SetRequesterFeedback(value); return *this;}
588 
589   private:
590 
591     Aws::String m_assignmentId;
592     bool m_assignmentIdHasBeenSet;
593 
594     Aws::String m_workerId;
595     bool m_workerIdHasBeenSet;
596 
597     Aws::String m_hITId;
598     bool m_hITIdHasBeenSet;
599 
600     AssignmentStatus m_assignmentStatus;
601     bool m_assignmentStatusHasBeenSet;
602 
603     Aws::Utils::DateTime m_autoApprovalTime;
604     bool m_autoApprovalTimeHasBeenSet;
605 
606     Aws::Utils::DateTime m_acceptTime;
607     bool m_acceptTimeHasBeenSet;
608 
609     Aws::Utils::DateTime m_submitTime;
610     bool m_submitTimeHasBeenSet;
611 
612     Aws::Utils::DateTime m_approvalTime;
613     bool m_approvalTimeHasBeenSet;
614 
615     Aws::Utils::DateTime m_rejectionTime;
616     bool m_rejectionTimeHasBeenSet;
617 
618     Aws::Utils::DateTime m_deadline;
619     bool m_deadlineHasBeenSet;
620 
621     Aws::String m_answer;
622     bool m_answerHasBeenSet;
623 
624     Aws::String m_requesterFeedback;
625     bool m_requesterFeedbackHasBeenSet;
626   };
627 
628 } // namespace Model
629 } // namespace MTurk
630 } // namespace Aws
631