/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace MTurk { namespace Model { /** */ class CreateHITRequest : public MTurkRequest { public: AWS_MTURK_API CreateHITRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateHIT"; } AWS_MTURK_API Aws::String SerializePayload() const override; AWS_MTURK_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The number of times the HIT can be accepted and completed before the HIT * becomes unavailable.

*/ inline int GetMaxAssignments() const{ return m_maxAssignments; } /** *

The number of times the HIT can be accepted and completed before the HIT * becomes unavailable.

*/ inline bool MaxAssignmentsHasBeenSet() const { return m_maxAssignmentsHasBeenSet; } /** *

The number of times the HIT can be accepted and completed before the HIT * becomes unavailable.

*/ inline void SetMaxAssignments(int value) { m_maxAssignmentsHasBeenSet = true; m_maxAssignments = value; } /** *

The number of times the HIT can be accepted and completed before the HIT * becomes unavailable.

*/ inline CreateHITRequest& WithMaxAssignments(int value) { SetMaxAssignments(value); return *this;} /** *

The number of seconds after an assignment for the HIT has been submitted, * after which the assignment is considered Approved automatically unless the * Requester explicitly rejects it.

*/ inline long long GetAutoApprovalDelayInSeconds() const{ return m_autoApprovalDelayInSeconds; } /** *

The number of seconds after an assignment for the HIT has been submitted, * after which the assignment is considered Approved automatically unless the * Requester explicitly rejects it.

*/ inline bool AutoApprovalDelayInSecondsHasBeenSet() const { return m_autoApprovalDelayInSecondsHasBeenSet; } /** *

The number of seconds after an assignment for the HIT has been submitted, * after which the assignment is considered Approved automatically unless the * Requester explicitly rejects it.

*/ inline void SetAutoApprovalDelayInSeconds(long long value) { m_autoApprovalDelayInSecondsHasBeenSet = true; m_autoApprovalDelayInSeconds = value; } /** *

The number of seconds after an assignment for the HIT has been submitted, * after which the assignment is considered Approved automatically unless the * Requester explicitly rejects it.

*/ inline CreateHITRequest& WithAutoApprovalDelayInSeconds(long long value) { SetAutoApprovalDelayInSeconds(value); return *this;} /** *

An amount of time, in seconds, after which the HIT is no longer available * for users to accept. After the lifetime of the HIT elapses, the HIT no longer * appears in HIT searches, even if not all of the assignments for the HIT have * been accepted.

*/ inline long long GetLifetimeInSeconds() const{ return m_lifetimeInSeconds; } /** *

An amount of time, in seconds, after which the HIT is no longer available * for users to accept. After the lifetime of the HIT elapses, the HIT no longer * appears in HIT searches, even if not all of the assignments for the HIT have * been accepted.

*/ inline bool LifetimeInSecondsHasBeenSet() const { return m_lifetimeInSecondsHasBeenSet; } /** *

An amount of time, in seconds, after which the HIT is no longer available * for users to accept. After the lifetime of the HIT elapses, the HIT no longer * appears in HIT searches, even if not all of the assignments for the HIT have * been accepted.

*/ inline void SetLifetimeInSeconds(long long value) { m_lifetimeInSecondsHasBeenSet = true; m_lifetimeInSeconds = value; } /** *

An amount of time, in seconds, after which the HIT is no longer available * for users to accept. After the lifetime of the HIT elapses, the HIT no longer * appears in HIT searches, even if not all of the assignments for the HIT have * been accepted.

*/ inline CreateHITRequest& WithLifetimeInSeconds(long long value) { SetLifetimeInSeconds(value); return *this;} /** *

The amount of time, in seconds, that a Worker has to complete the HIT after * accepting it. If a Worker does not complete the assignment within the specified * duration, the assignment is considered abandoned. If the HIT is still active * (that is, its lifetime has not elapsed), the assignment becomes available for * other users to find and accept.

*/ inline long long GetAssignmentDurationInSeconds() const{ return m_assignmentDurationInSeconds; } /** *

The amount of time, in seconds, that a Worker has to complete the HIT after * accepting it. If a Worker does not complete the assignment within the specified * duration, the assignment is considered abandoned. If the HIT is still active * (that is, its lifetime has not elapsed), the assignment becomes available for * other users to find and accept.

*/ inline bool AssignmentDurationInSecondsHasBeenSet() const { return m_assignmentDurationInSecondsHasBeenSet; } /** *

The amount of time, in seconds, that a Worker has to complete the HIT after * accepting it. If a Worker does not complete the assignment within the specified * duration, the assignment is considered abandoned. If the HIT is still active * (that is, its lifetime has not elapsed), the assignment becomes available for * other users to find and accept.

*/ inline void SetAssignmentDurationInSeconds(long long value) { m_assignmentDurationInSecondsHasBeenSet = true; m_assignmentDurationInSeconds = value; } /** *

The amount of time, in seconds, that a Worker has to complete the HIT after * accepting it. If a Worker does not complete the assignment within the specified * duration, the assignment is considered abandoned. If the HIT is still active * (that is, its lifetime has not elapsed), the assignment becomes available for * other users to find and accept.

*/ inline CreateHITRequest& WithAssignmentDurationInSeconds(long long value) { SetAssignmentDurationInSeconds(value); return *this;} /** *

The amount of money the Requester will pay a Worker for successfully * completing the HIT.

*/ inline const Aws::String& GetReward() const{ return m_reward; } /** *

The amount of money the Requester will pay a Worker for successfully * completing the HIT.

*/ inline bool RewardHasBeenSet() const { return m_rewardHasBeenSet; } /** *

The amount of money the Requester will pay a Worker for successfully * completing the HIT.

*/ inline void SetReward(const Aws::String& value) { m_rewardHasBeenSet = true; m_reward = value; } /** *

The amount of money the Requester will pay a Worker for successfully * completing the HIT.

*/ inline void SetReward(Aws::String&& value) { m_rewardHasBeenSet = true; m_reward = std::move(value); } /** *

The amount of money the Requester will pay a Worker for successfully * completing the HIT.

*/ inline void SetReward(const char* value) { m_rewardHasBeenSet = true; m_reward.assign(value); } /** *

The amount of money the Requester will pay a Worker for successfully * completing the HIT.

*/ inline CreateHITRequest& WithReward(const Aws::String& value) { SetReward(value); return *this;} /** *

The amount of money the Requester will pay a Worker for successfully * completing the HIT.

*/ inline CreateHITRequest& WithReward(Aws::String&& value) { SetReward(std::move(value)); return *this;} /** *

The amount of money the Requester will pay a Worker for successfully * completing the HIT.

*/ inline CreateHITRequest& WithReward(const char* value) { SetReward(value); return *this;} /** *

The title of the HIT. A title should be short and descriptive about the kind * of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title * appears in search results, and everywhere the HIT is mentioned.

*/ inline const Aws::String& GetTitle() const{ return m_title; } /** *

The title of the HIT. A title should be short and descriptive about the kind * of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title * appears in search results, and everywhere the HIT is mentioned.

*/ inline bool TitleHasBeenSet() const { return m_titleHasBeenSet; } /** *

The title of the HIT. A title should be short and descriptive about the kind * of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title * appears in search results, and everywhere the HIT is mentioned.

*/ inline void SetTitle(const Aws::String& value) { m_titleHasBeenSet = true; m_title = value; } /** *

The title of the HIT. A title should be short and descriptive about the kind * of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title * appears in search results, and everywhere the HIT is mentioned.

*/ inline void SetTitle(Aws::String&& value) { m_titleHasBeenSet = true; m_title = std::move(value); } /** *

The title of the HIT. A title should be short and descriptive about the kind * of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title * appears in search results, and everywhere the HIT is mentioned.

*/ inline void SetTitle(const char* value) { m_titleHasBeenSet = true; m_title.assign(value); } /** *

The title of the HIT. A title should be short and descriptive about the kind * of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title * appears in search results, and everywhere the HIT is mentioned.

*/ inline CreateHITRequest& WithTitle(const Aws::String& value) { SetTitle(value); return *this;} /** *

The title of the HIT. A title should be short and descriptive about the kind * of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title * appears in search results, and everywhere the HIT is mentioned.

*/ inline CreateHITRequest& WithTitle(Aws::String&& value) { SetTitle(std::move(value)); return *this;} /** *

The title of the HIT. A title should be short and descriptive about the kind * of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title * appears in search results, and everywhere the HIT is mentioned.

*/ inline CreateHITRequest& WithTitle(const char* value) { SetTitle(value); return *this;} /** *

One or more words or phrases that describe the HIT, separated by commas. * These words are used in searches to find HITs.

*/ inline const Aws::String& GetKeywords() const{ return m_keywords; } /** *

One or more words or phrases that describe the HIT, separated by commas. * These words are used in searches to find HITs.

*/ inline bool KeywordsHasBeenSet() const { return m_keywordsHasBeenSet; } /** *

One or more words or phrases that describe the HIT, separated by commas. * These words are used in searches to find HITs.

*/ inline void SetKeywords(const Aws::String& value) { m_keywordsHasBeenSet = true; m_keywords = value; } /** *

One or more words or phrases that describe the HIT, separated by commas. * These words are used in searches to find HITs.

*/ inline void SetKeywords(Aws::String&& value) { m_keywordsHasBeenSet = true; m_keywords = std::move(value); } /** *

One or more words or phrases that describe the HIT, separated by commas. * These words are used in searches to find HITs.

*/ inline void SetKeywords(const char* value) { m_keywordsHasBeenSet = true; m_keywords.assign(value); } /** *

One or more words or phrases that describe the HIT, separated by commas. * These words are used in searches to find HITs.

*/ inline CreateHITRequest& WithKeywords(const Aws::String& value) { SetKeywords(value); return *this;} /** *

One or more words or phrases that describe the HIT, separated by commas. * These words are used in searches to find HITs.

*/ inline CreateHITRequest& WithKeywords(Aws::String&& value) { SetKeywords(std::move(value)); return *this;} /** *

One or more words or phrases that describe the HIT, separated by commas. * These words are used in searches to find HITs.

*/ inline CreateHITRequest& WithKeywords(const char* value) { SetKeywords(value); return *this;} /** *

A general description of the HIT. A description includes detailed * information about the kind of task the HIT contains. On the Amazon Mechanical * Turk web site, the HIT description appears in the expanded view of search * results, and in the HIT and assignment screens. A good description gives the * user enough information to evaluate the HIT before accepting it.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A general description of the HIT. A description includes detailed * information about the kind of task the HIT contains. On the Amazon Mechanical * Turk web site, the HIT description appears in the expanded view of search * results, and in the HIT and assignment screens. A good description gives the * user enough information to evaluate the HIT before accepting it.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A general description of the HIT. A description includes detailed * information about the kind of task the HIT contains. On the Amazon Mechanical * Turk web site, the HIT description appears in the expanded view of search * results, and in the HIT and assignment screens. A good description gives the * user enough information to evaluate the HIT before accepting it.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A general description of the HIT. A description includes detailed * information about the kind of task the HIT contains. On the Amazon Mechanical * Turk web site, the HIT description appears in the expanded view of search * results, and in the HIT and assignment screens. A good description gives the * user enough information to evaluate the HIT before accepting it.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A general description of the HIT. A description includes detailed * information about the kind of task the HIT contains. On the Amazon Mechanical * Turk web site, the HIT description appears in the expanded view of search * results, and in the HIT and assignment screens. A good description gives the * user enough information to evaluate the HIT before accepting it.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A general description of the HIT. A description includes detailed * information about the kind of task the HIT contains. On the Amazon Mechanical * Turk web site, the HIT description appears in the expanded view of search * results, and in the HIT and assignment screens. A good description gives the * user enough information to evaluate the HIT before accepting it.

*/ inline CreateHITRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A general description of the HIT. A description includes detailed * information about the kind of task the HIT contains. On the Amazon Mechanical * Turk web site, the HIT description appears in the expanded view of search * results, and in the HIT and assignment screens. A good description gives the * user enough information to evaluate the HIT before accepting it.

*/ inline CreateHITRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A general description of the HIT. A description includes detailed * information about the kind of task the HIT contains. On the Amazon Mechanical * Turk web site, the HIT description appears in the expanded view of search * results, and in the HIT and assignment screens. A good description gives the * user enough information to evaluate the HIT before accepting it.

*/ inline CreateHITRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The data the person completing the HIT uses to produce the results.

* Constraints: Must be a QuestionForm data structure, an ExternalQuestion data * structure, or an HTMLQuestion data structure. The XML question data must not be * larger than 64 kilobytes (65,535 bytes) in size, including whitespace.

*

Either a Question parameter or a HITLayoutId parameter must be provided.

*/ inline const Aws::String& GetQuestion() const{ return m_question; } /** *

The data the person completing the HIT uses to produce the results.

* Constraints: Must be a QuestionForm data structure, an ExternalQuestion data * structure, or an HTMLQuestion data structure. The XML question data must not be * larger than 64 kilobytes (65,535 bytes) in size, including whitespace.

*

Either a Question parameter or a HITLayoutId parameter must be provided.

*/ inline bool QuestionHasBeenSet() const { return m_questionHasBeenSet; } /** *

The data the person completing the HIT uses to produce the results.

* Constraints: Must be a QuestionForm data structure, an ExternalQuestion data * structure, or an HTMLQuestion data structure. The XML question data must not be * larger than 64 kilobytes (65,535 bytes) in size, including whitespace.

*

Either a Question parameter or a HITLayoutId parameter must be provided.

*/ inline void SetQuestion(const Aws::String& value) { m_questionHasBeenSet = true; m_question = value; } /** *

The data the person completing the HIT uses to produce the results.

* Constraints: Must be a QuestionForm data structure, an ExternalQuestion data * structure, or an HTMLQuestion data structure. The XML question data must not be * larger than 64 kilobytes (65,535 bytes) in size, including whitespace.

*

Either a Question parameter or a HITLayoutId parameter must be provided.

*/ inline void SetQuestion(Aws::String&& value) { m_questionHasBeenSet = true; m_question = std::move(value); } /** *

The data the person completing the HIT uses to produce the results.

* Constraints: Must be a QuestionForm data structure, an ExternalQuestion data * structure, or an HTMLQuestion data structure. The XML question data must not be * larger than 64 kilobytes (65,535 bytes) in size, including whitespace.

*

Either a Question parameter or a HITLayoutId parameter must be provided.

*/ inline void SetQuestion(const char* value) { m_questionHasBeenSet = true; m_question.assign(value); } /** *

The data the person completing the HIT uses to produce the results.

* Constraints: Must be a QuestionForm data structure, an ExternalQuestion data * structure, or an HTMLQuestion data structure. The XML question data must not be * larger than 64 kilobytes (65,535 bytes) in size, including whitespace.

*

Either a Question parameter or a HITLayoutId parameter must be provided.

*/ inline CreateHITRequest& WithQuestion(const Aws::String& value) { SetQuestion(value); return *this;} /** *

The data the person completing the HIT uses to produce the results.

* Constraints: Must be a QuestionForm data structure, an ExternalQuestion data * structure, or an HTMLQuestion data structure. The XML question data must not be * larger than 64 kilobytes (65,535 bytes) in size, including whitespace.

*

Either a Question parameter or a HITLayoutId parameter must be provided.

*/ inline CreateHITRequest& WithQuestion(Aws::String&& value) { SetQuestion(std::move(value)); return *this;} /** *

The data the person completing the HIT uses to produce the results.

* Constraints: Must be a QuestionForm data structure, an ExternalQuestion data * structure, or an HTMLQuestion data structure. The XML question data must not be * larger than 64 kilobytes (65,535 bytes) in size, including whitespace.

*

Either a Question parameter or a HITLayoutId parameter must be provided.

*/ inline CreateHITRequest& WithQuestion(const char* value) { SetQuestion(value); return *this;} /** *

An arbitrary data field. The RequesterAnnotation parameter lets your * application attach arbitrary data to the HIT for tracking purposes. For example, * this parameter could be an identifier internal to the Requester's application * that corresponds with the HIT.

The RequesterAnnotation parameter for a * HIT is only visible to the Requester who created the HIT. It is not shown to the * Worker, or any other Requester.

The RequesterAnnotation parameter may * be different for each HIT you submit. It does not affect how your HITs are * grouped.

*/ inline const Aws::String& GetRequesterAnnotation() const{ return m_requesterAnnotation; } /** *

An arbitrary data field. The RequesterAnnotation parameter lets your * application attach arbitrary data to the HIT for tracking purposes. For example, * this parameter could be an identifier internal to the Requester's application * that corresponds with the HIT.

The RequesterAnnotation parameter for a * HIT is only visible to the Requester who created the HIT. It is not shown to the * Worker, or any other Requester.

The RequesterAnnotation parameter may * be different for each HIT you submit. It does not affect how your HITs are * grouped.

*/ inline bool RequesterAnnotationHasBeenSet() const { return m_requesterAnnotationHasBeenSet; } /** *

An arbitrary data field. The RequesterAnnotation parameter lets your * application attach arbitrary data to the HIT for tracking purposes. For example, * this parameter could be an identifier internal to the Requester's application * that corresponds with the HIT.

The RequesterAnnotation parameter for a * HIT is only visible to the Requester who created the HIT. It is not shown to the * Worker, or any other Requester.

The RequesterAnnotation parameter may * be different for each HIT you submit. It does not affect how your HITs are * grouped.

*/ inline void SetRequesterAnnotation(const Aws::String& value) { m_requesterAnnotationHasBeenSet = true; m_requesterAnnotation = value; } /** *

An arbitrary data field. The RequesterAnnotation parameter lets your * application attach arbitrary data to the HIT for tracking purposes. For example, * this parameter could be an identifier internal to the Requester's application * that corresponds with the HIT.

The RequesterAnnotation parameter for a * HIT is only visible to the Requester who created the HIT. It is not shown to the * Worker, or any other Requester.

The RequesterAnnotation parameter may * be different for each HIT you submit. It does not affect how your HITs are * grouped.

*/ inline void SetRequesterAnnotation(Aws::String&& value) { m_requesterAnnotationHasBeenSet = true; m_requesterAnnotation = std::move(value); } /** *

An arbitrary data field. The RequesterAnnotation parameter lets your * application attach arbitrary data to the HIT for tracking purposes. For example, * this parameter could be an identifier internal to the Requester's application * that corresponds with the HIT.

The RequesterAnnotation parameter for a * HIT is only visible to the Requester who created the HIT. It is not shown to the * Worker, or any other Requester.

The RequesterAnnotation parameter may * be different for each HIT you submit. It does not affect how your HITs are * grouped.

*/ inline void SetRequesterAnnotation(const char* value) { m_requesterAnnotationHasBeenSet = true; m_requesterAnnotation.assign(value); } /** *

An arbitrary data field. The RequesterAnnotation parameter lets your * application attach arbitrary data to the HIT for tracking purposes. For example, * this parameter could be an identifier internal to the Requester's application * that corresponds with the HIT.

The RequesterAnnotation parameter for a * HIT is only visible to the Requester who created the HIT. It is not shown to the * Worker, or any other Requester.

The RequesterAnnotation parameter may * be different for each HIT you submit. It does not affect how your HITs are * grouped.

*/ inline CreateHITRequest& WithRequesterAnnotation(const Aws::String& value) { SetRequesterAnnotation(value); return *this;} /** *

An arbitrary data field. The RequesterAnnotation parameter lets your * application attach arbitrary data to the HIT for tracking purposes. For example, * this parameter could be an identifier internal to the Requester's application * that corresponds with the HIT.

The RequesterAnnotation parameter for a * HIT is only visible to the Requester who created the HIT. It is not shown to the * Worker, or any other Requester.

The RequesterAnnotation parameter may * be different for each HIT you submit. It does not affect how your HITs are * grouped.

*/ inline CreateHITRequest& WithRequesterAnnotation(Aws::String&& value) { SetRequesterAnnotation(std::move(value)); return *this;} /** *

An arbitrary data field. The RequesterAnnotation parameter lets your * application attach arbitrary data to the HIT for tracking purposes. For example, * this parameter could be an identifier internal to the Requester's application * that corresponds with the HIT.

The RequesterAnnotation parameter for a * HIT is only visible to the Requester who created the HIT. It is not shown to the * Worker, or any other Requester.

The RequesterAnnotation parameter may * be different for each HIT you submit. It does not affect how your HITs are * grouped.

*/ inline CreateHITRequest& WithRequesterAnnotation(const char* value) { SetRequesterAnnotation(value); return *this;} /** *

Conditions that a Worker's Qualifications must meet in order to accept the * HIT. A HIT can have between zero and ten Qualification requirements. All * requirements must be met in order for a Worker to accept the HIT. Additionally, * other actions can be restricted using the ActionsGuarded field on * each QualificationRequirement structure.

*/ inline const Aws::Vector& GetQualificationRequirements() const{ return m_qualificationRequirements; } /** *

Conditions that a Worker's Qualifications must meet in order to accept the * HIT. A HIT can have between zero and ten Qualification requirements. All * requirements must be met in order for a Worker to accept the HIT. Additionally, * other actions can be restricted using the ActionsGuarded field on * each QualificationRequirement structure.

*/ inline bool QualificationRequirementsHasBeenSet() const { return m_qualificationRequirementsHasBeenSet; } /** *

Conditions that a Worker's Qualifications must meet in order to accept the * HIT. A HIT can have between zero and ten Qualification requirements. All * requirements must be met in order for a Worker to accept the HIT. Additionally, * other actions can be restricted using the ActionsGuarded field on * each QualificationRequirement structure.

*/ inline void SetQualificationRequirements(const Aws::Vector& value) { m_qualificationRequirementsHasBeenSet = true; m_qualificationRequirements = value; } /** *

Conditions that a Worker's Qualifications must meet in order to accept the * HIT. A HIT can have between zero and ten Qualification requirements. All * requirements must be met in order for a Worker to accept the HIT. Additionally, * other actions can be restricted using the ActionsGuarded field on * each QualificationRequirement structure.

*/ inline void SetQualificationRequirements(Aws::Vector&& value) { m_qualificationRequirementsHasBeenSet = true; m_qualificationRequirements = std::move(value); } /** *

Conditions that a Worker's Qualifications must meet in order to accept the * HIT. A HIT can have between zero and ten Qualification requirements. All * requirements must be met in order for a Worker to accept the HIT. Additionally, * other actions can be restricted using the ActionsGuarded field on * each QualificationRequirement structure.

*/ inline CreateHITRequest& WithQualificationRequirements(const Aws::Vector& value) { SetQualificationRequirements(value); return *this;} /** *

Conditions that a Worker's Qualifications must meet in order to accept the * HIT. A HIT can have between zero and ten Qualification requirements. All * requirements must be met in order for a Worker to accept the HIT. Additionally, * other actions can be restricted using the ActionsGuarded field on * each QualificationRequirement structure.

*/ inline CreateHITRequest& WithQualificationRequirements(Aws::Vector&& value) { SetQualificationRequirements(std::move(value)); return *this;} /** *

Conditions that a Worker's Qualifications must meet in order to accept the * HIT. A HIT can have between zero and ten Qualification requirements. All * requirements must be met in order for a Worker to accept the HIT. Additionally, * other actions can be restricted using the ActionsGuarded field on * each QualificationRequirement structure.

*/ inline CreateHITRequest& AddQualificationRequirements(const QualificationRequirement& value) { m_qualificationRequirementsHasBeenSet = true; m_qualificationRequirements.push_back(value); return *this; } /** *

Conditions that a Worker's Qualifications must meet in order to accept the * HIT. A HIT can have between zero and ten Qualification requirements. All * requirements must be met in order for a Worker to accept the HIT. Additionally, * other actions can be restricted using the ActionsGuarded field on * each QualificationRequirement structure.

*/ inline CreateHITRequest& AddQualificationRequirements(QualificationRequirement&& value) { m_qualificationRequirementsHasBeenSet = true; m_qualificationRequirements.push_back(std::move(value)); return *this; } /** *

A unique identifier for this request which allows you to retry the call on * error without creating duplicate HITs. This is useful in cases such as network * timeouts where it is unclear whether or not the call succeeded on the server. If * the HIT already exists in the system from a previous call using the same * UniqueRequestToken, subsequent calls will return a * AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId. *

Note: It is your responsibility to ensure uniqueness of the * token. The unique token expires after 24 hours. Subsequent calls using the same * UniqueRequestToken made after the 24 hour limit could create duplicate HITs. *

*/ inline const Aws::String& GetUniqueRequestToken() const{ return m_uniqueRequestToken; } /** *

A unique identifier for this request which allows you to retry the call on * error without creating duplicate HITs. This is useful in cases such as network * timeouts where it is unclear whether or not the call succeeded on the server. If * the HIT already exists in the system from a previous call using the same * UniqueRequestToken, subsequent calls will return a * AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId. *

Note: It is your responsibility to ensure uniqueness of the * token. The unique token expires after 24 hours. Subsequent calls using the same * UniqueRequestToken made after the 24 hour limit could create duplicate HITs. *

*/ inline bool UniqueRequestTokenHasBeenSet() const { return m_uniqueRequestTokenHasBeenSet; } /** *

A unique identifier for this request which allows you to retry the call on * error without creating duplicate HITs. This is useful in cases such as network * timeouts where it is unclear whether or not the call succeeded on the server. If * the HIT already exists in the system from a previous call using the same * UniqueRequestToken, subsequent calls will return a * AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId. *

Note: It is your responsibility to ensure uniqueness of the * token. The unique token expires after 24 hours. Subsequent calls using the same * UniqueRequestToken made after the 24 hour limit could create duplicate HITs. *

*/ inline void SetUniqueRequestToken(const Aws::String& value) { m_uniqueRequestTokenHasBeenSet = true; m_uniqueRequestToken = value; } /** *

A unique identifier for this request which allows you to retry the call on * error without creating duplicate HITs. This is useful in cases such as network * timeouts where it is unclear whether or not the call succeeded on the server. If * the HIT already exists in the system from a previous call using the same * UniqueRequestToken, subsequent calls will return a * AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId. *

Note: It is your responsibility to ensure uniqueness of the * token. The unique token expires after 24 hours. Subsequent calls using the same * UniqueRequestToken made after the 24 hour limit could create duplicate HITs. *

*/ inline void SetUniqueRequestToken(Aws::String&& value) { m_uniqueRequestTokenHasBeenSet = true; m_uniqueRequestToken = std::move(value); } /** *

A unique identifier for this request which allows you to retry the call on * error without creating duplicate HITs. This is useful in cases such as network * timeouts where it is unclear whether or not the call succeeded on the server. If * the HIT already exists in the system from a previous call using the same * UniqueRequestToken, subsequent calls will return a * AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId. *

Note: It is your responsibility to ensure uniqueness of the * token. The unique token expires after 24 hours. Subsequent calls using the same * UniqueRequestToken made after the 24 hour limit could create duplicate HITs. *

*/ inline void SetUniqueRequestToken(const char* value) { m_uniqueRequestTokenHasBeenSet = true; m_uniqueRequestToken.assign(value); } /** *

A unique identifier for this request which allows you to retry the call on * error without creating duplicate HITs. This is useful in cases such as network * timeouts where it is unclear whether or not the call succeeded on the server. If * the HIT already exists in the system from a previous call using the same * UniqueRequestToken, subsequent calls will return a * AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId. *

Note: It is your responsibility to ensure uniqueness of the * token. The unique token expires after 24 hours. Subsequent calls using the same * UniqueRequestToken made after the 24 hour limit could create duplicate HITs. *

*/ inline CreateHITRequest& WithUniqueRequestToken(const Aws::String& value) { SetUniqueRequestToken(value); return *this;} /** *

A unique identifier for this request which allows you to retry the call on * error without creating duplicate HITs. This is useful in cases such as network * timeouts where it is unclear whether or not the call succeeded on the server. If * the HIT already exists in the system from a previous call using the same * UniqueRequestToken, subsequent calls will return a * AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId. *

Note: It is your responsibility to ensure uniqueness of the * token. The unique token expires after 24 hours. Subsequent calls using the same * UniqueRequestToken made after the 24 hour limit could create duplicate HITs. *

*/ inline CreateHITRequest& WithUniqueRequestToken(Aws::String&& value) { SetUniqueRequestToken(std::move(value)); return *this;} /** *

A unique identifier for this request which allows you to retry the call on * error without creating duplicate HITs. This is useful in cases such as network * timeouts where it is unclear whether or not the call succeeded on the server. If * the HIT already exists in the system from a previous call using the same * UniqueRequestToken, subsequent calls will return a * AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId. *

Note: It is your responsibility to ensure uniqueness of the * token. The unique token expires after 24 hours. Subsequent calls using the same * UniqueRequestToken made after the 24 hour limit could create duplicate HITs. *

*/ inline CreateHITRequest& WithUniqueRequestToken(const char* value) { SetUniqueRequestToken(value); return *this;} /** *

The Assignment-level Review Policy applies to the assignments under the HIT. * You can specify for Mechanical Turk to take various actions based on the policy. *

*/ inline const ReviewPolicy& GetAssignmentReviewPolicy() const{ return m_assignmentReviewPolicy; } /** *

The Assignment-level Review Policy applies to the assignments under the HIT. * You can specify for Mechanical Turk to take various actions based on the policy. *

*/ inline bool AssignmentReviewPolicyHasBeenSet() const { return m_assignmentReviewPolicyHasBeenSet; } /** *

The Assignment-level Review Policy applies to the assignments under the HIT. * You can specify for Mechanical Turk to take various actions based on the policy. *

*/ inline void SetAssignmentReviewPolicy(const ReviewPolicy& value) { m_assignmentReviewPolicyHasBeenSet = true; m_assignmentReviewPolicy = value; } /** *

The Assignment-level Review Policy applies to the assignments under the HIT. * You can specify for Mechanical Turk to take various actions based on the policy. *

*/ inline void SetAssignmentReviewPolicy(ReviewPolicy&& value) { m_assignmentReviewPolicyHasBeenSet = true; m_assignmentReviewPolicy = std::move(value); } /** *

The Assignment-level Review Policy applies to the assignments under the HIT. * You can specify for Mechanical Turk to take various actions based on the policy. *

*/ inline CreateHITRequest& WithAssignmentReviewPolicy(const ReviewPolicy& value) { SetAssignmentReviewPolicy(value); return *this;} /** *

The Assignment-level Review Policy applies to the assignments under the HIT. * You can specify for Mechanical Turk to take various actions based on the policy. *

*/ inline CreateHITRequest& WithAssignmentReviewPolicy(ReviewPolicy&& value) { SetAssignmentReviewPolicy(std::move(value)); return *this;} /** *

The HIT-level Review Policy applies to the HIT. You can specify for * Mechanical Turk to take various actions based on the policy.

*/ inline const ReviewPolicy& GetHITReviewPolicy() const{ return m_hITReviewPolicy; } /** *

The HIT-level Review Policy applies to the HIT. You can specify for * Mechanical Turk to take various actions based on the policy.

*/ inline bool HITReviewPolicyHasBeenSet() const { return m_hITReviewPolicyHasBeenSet; } /** *

The HIT-level Review Policy applies to the HIT. You can specify for * Mechanical Turk to take various actions based on the policy.

*/ inline void SetHITReviewPolicy(const ReviewPolicy& value) { m_hITReviewPolicyHasBeenSet = true; m_hITReviewPolicy = value; } /** *

The HIT-level Review Policy applies to the HIT. You can specify for * Mechanical Turk to take various actions based on the policy.

*/ inline void SetHITReviewPolicy(ReviewPolicy&& value) { m_hITReviewPolicyHasBeenSet = true; m_hITReviewPolicy = std::move(value); } /** *

The HIT-level Review Policy applies to the HIT. You can specify for * Mechanical Turk to take various actions based on the policy.

*/ inline CreateHITRequest& WithHITReviewPolicy(const ReviewPolicy& value) { SetHITReviewPolicy(value); return *this;} /** *

The HIT-level Review Policy applies to the HIT. You can specify for * Mechanical Turk to take various actions based on the policy.

*/ inline CreateHITRequest& WithHITReviewPolicy(ReviewPolicy&& value) { SetHITReviewPolicy(std::move(value)); return *this;} /** *

The HITLayoutId allows you to use a pre-existing HIT design with placeholder * values and create an additional HIT by providing those values as * HITLayoutParameters.

Constraints: Either a Question parameter or a * HITLayoutId parameter must be provided.

*/ inline const Aws::String& GetHITLayoutId() const{ return m_hITLayoutId; } /** *

The HITLayoutId allows you to use a pre-existing HIT design with placeholder * values and create an additional HIT by providing those values as * HITLayoutParameters.

Constraints: Either a Question parameter or a * HITLayoutId parameter must be provided.

*/ inline bool HITLayoutIdHasBeenSet() const { return m_hITLayoutIdHasBeenSet; } /** *

The HITLayoutId allows you to use a pre-existing HIT design with placeholder * values and create an additional HIT by providing those values as * HITLayoutParameters.

Constraints: Either a Question parameter or a * HITLayoutId parameter must be provided.

*/ inline void SetHITLayoutId(const Aws::String& value) { m_hITLayoutIdHasBeenSet = true; m_hITLayoutId = value; } /** *

The HITLayoutId allows you to use a pre-existing HIT design with placeholder * values and create an additional HIT by providing those values as * HITLayoutParameters.

Constraints: Either a Question parameter or a * HITLayoutId parameter must be provided.

*/ inline void SetHITLayoutId(Aws::String&& value) { m_hITLayoutIdHasBeenSet = true; m_hITLayoutId = std::move(value); } /** *

The HITLayoutId allows you to use a pre-existing HIT design with placeholder * values and create an additional HIT by providing those values as * HITLayoutParameters.

Constraints: Either a Question parameter or a * HITLayoutId parameter must be provided.

*/ inline void SetHITLayoutId(const char* value) { m_hITLayoutIdHasBeenSet = true; m_hITLayoutId.assign(value); } /** *

The HITLayoutId allows you to use a pre-existing HIT design with placeholder * values and create an additional HIT by providing those values as * HITLayoutParameters.

Constraints: Either a Question parameter or a * HITLayoutId parameter must be provided.

*/ inline CreateHITRequest& WithHITLayoutId(const Aws::String& value) { SetHITLayoutId(value); return *this;} /** *

The HITLayoutId allows you to use a pre-existing HIT design with placeholder * values and create an additional HIT by providing those values as * HITLayoutParameters.

Constraints: Either a Question parameter or a * HITLayoutId parameter must be provided.

*/ inline CreateHITRequest& WithHITLayoutId(Aws::String&& value) { SetHITLayoutId(std::move(value)); return *this;} /** *

The HITLayoutId allows you to use a pre-existing HIT design with placeholder * values and create an additional HIT by providing those values as * HITLayoutParameters.

Constraints: Either a Question parameter or a * HITLayoutId parameter must be provided.

*/ inline CreateHITRequest& WithHITLayoutId(const char* value) { SetHITLayoutId(value); return *this;} /** *

If the HITLayoutId is provided, any placeholder values must be filled in * with values using the HITLayoutParameter structure. For more information, see * HITLayout.

*/ inline const Aws::Vector& GetHITLayoutParameters() const{ return m_hITLayoutParameters; } /** *

If the HITLayoutId is provided, any placeholder values must be filled in * with values using the HITLayoutParameter structure. For more information, see * HITLayout.

*/ inline bool HITLayoutParametersHasBeenSet() const { return m_hITLayoutParametersHasBeenSet; } /** *

If the HITLayoutId is provided, any placeholder values must be filled in * with values using the HITLayoutParameter structure. For more information, see * HITLayout.

*/ inline void SetHITLayoutParameters(const Aws::Vector& value) { m_hITLayoutParametersHasBeenSet = true; m_hITLayoutParameters = value; } /** *

If the HITLayoutId is provided, any placeholder values must be filled in * with values using the HITLayoutParameter structure. For more information, see * HITLayout.

*/ inline void SetHITLayoutParameters(Aws::Vector&& value) { m_hITLayoutParametersHasBeenSet = true; m_hITLayoutParameters = std::move(value); } /** *

If the HITLayoutId is provided, any placeholder values must be filled in * with values using the HITLayoutParameter structure. For more information, see * HITLayout.

*/ inline CreateHITRequest& WithHITLayoutParameters(const Aws::Vector& value) { SetHITLayoutParameters(value); return *this;} /** *

If the HITLayoutId is provided, any placeholder values must be filled in * with values using the HITLayoutParameter structure. For more information, see * HITLayout.

*/ inline CreateHITRequest& WithHITLayoutParameters(Aws::Vector&& value) { SetHITLayoutParameters(std::move(value)); return *this;} /** *

If the HITLayoutId is provided, any placeholder values must be filled in * with values using the HITLayoutParameter structure. For more information, see * HITLayout.

*/ inline CreateHITRequest& AddHITLayoutParameters(const HITLayoutParameter& value) { m_hITLayoutParametersHasBeenSet = true; m_hITLayoutParameters.push_back(value); return *this; } /** *

If the HITLayoutId is provided, any placeholder values must be filled in * with values using the HITLayoutParameter structure. For more information, see * HITLayout.

*/ inline CreateHITRequest& AddHITLayoutParameters(HITLayoutParameter&& value) { m_hITLayoutParametersHasBeenSet = true; m_hITLayoutParameters.push_back(std::move(value)); return *this; } private: int m_maxAssignments; bool m_maxAssignmentsHasBeenSet = false; long long m_autoApprovalDelayInSeconds; bool m_autoApprovalDelayInSecondsHasBeenSet = false; long long m_lifetimeInSeconds; bool m_lifetimeInSecondsHasBeenSet = false; long long m_assignmentDurationInSeconds; bool m_assignmentDurationInSecondsHasBeenSet = false; Aws::String m_reward; bool m_rewardHasBeenSet = false; Aws::String m_title; bool m_titleHasBeenSet = false; Aws::String m_keywords; bool m_keywordsHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_question; bool m_questionHasBeenSet = false; Aws::String m_requesterAnnotation; bool m_requesterAnnotationHasBeenSet = false; Aws::Vector m_qualificationRequirements; bool m_qualificationRequirementsHasBeenSet = false; Aws::String m_uniqueRequestToken; bool m_uniqueRequestTokenHasBeenSet = false; ReviewPolicy m_assignmentReviewPolicy; bool m_assignmentReviewPolicyHasBeenSet = false; ReviewPolicy m_hITReviewPolicy; bool m_hITReviewPolicyHasBeenSet = false; Aws::String m_hITLayoutId; bool m_hITLayoutIdHasBeenSet = false; Aws::Vector m_hITLayoutParameters; bool m_hITLayoutParametersHasBeenSet = false; }; } // namespace Model } // namespace MTurk } // namespace Aws