createHIT method
- required int assignmentDurationInSeconds,
- required String description,
- required int lifetimeInSeconds,
- required String reward,
- required String title,
- ReviewPolicy? assignmentReviewPolicy,
- int? autoApprovalDelayInSeconds,
- String? hITLayoutId,
- List<
HITLayoutParameter> ? hITLayoutParameters, - ReviewPolicy? hITReviewPolicy,
- String? keywords,
- int? maxAssignments,
- List<
QualificationRequirement> ? qualificationRequirements, - String? question,
- String? requesterAnnotation,
- String? uniqueRequestToken,
The CreateHIT
operation creates a new Human Intelligence Task
(HIT). The new HIT is made available for Workers to find and accept on the
Amazon Mechanical Turk website.
This operation allows you to specify a new HIT by passing in values for
the properties of the HIT, such as its title, reward amount and number of
assignments. When you pass these values to CreateHIT
, a new
HIT is created for you, with a new HITTypeID
. The HITTypeID
can be used to create additional HITs in the future without needing to
specify common parameters such as the title, description and reward amount
each time.
An alternative way to create HITs is to first generate a HITTypeID using
the CreateHITType
operation and then call the
CreateHITWithHITType
operation. This is the recommended best
practice for Requesters who are creating large numbers of HITs.
CreateHIT also supports several ways to provide question data: by
providing a value for the Question
parameter that fully
specifies the contents of the HIT, or by providing a
HitLayoutId
and associated HitLayoutParameters
.
May throw ServiceFault. May throw RequestError.
Parameter 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.
Parameter 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.
Parameter 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.
Parameter reward
:
The amount of money the Requester will pay a Worker for successfully
completing the HIT.
Parameter 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.
Parameter 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.
Parameter 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.
Parameter 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.
Parameter hITLayoutParameters
:
If the HITLayoutId is provided, any placeholder values must be filled in
with values using the HITLayoutParameter structure. For more information,
see HITLayout.
Parameter hITReviewPolicy
:
The HIT-level Review Policy applies to the HIT. You can specify for
Mechanical Turk to take various actions based on the policy.
Parameter keywords
:
One or more words or phrases that describe the HIT, separated by commas.
These words are used in searches to find HITs.
Parameter maxAssignments
:
The number of times the HIT can be accepted and completed before the HIT
becomes unavailable.
Parameter 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.
Parameter 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.
Parameter 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.
Parameter 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.
Implementation
Future<CreateHITResponse> createHIT({
required int assignmentDurationInSeconds,
required String description,
required int lifetimeInSeconds,
required String reward,
required String title,
ReviewPolicy? assignmentReviewPolicy,
int? autoApprovalDelayInSeconds,
String? hITLayoutId,
List<HITLayoutParameter>? hITLayoutParameters,
ReviewPolicy? hITReviewPolicy,
String? keywords,
int? maxAssignments,
List<QualificationRequirement>? qualificationRequirements,
String? question,
String? requesterAnnotation,
String? uniqueRequestToken,
}) async {
ArgumentError.checkNotNull(
assignmentDurationInSeconds, 'assignmentDurationInSeconds');
ArgumentError.checkNotNull(description, 'description');
ArgumentError.checkNotNull(lifetimeInSeconds, 'lifetimeInSeconds');
ArgumentError.checkNotNull(reward, 'reward');
ArgumentError.checkNotNull(title, 'title');
_s.validateStringLength(
'hITLayoutId',
hITLayoutId,
1,
64,
);
_s.validateStringLength(
'uniqueRequestToken',
uniqueRequestToken,
1,
64,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'MTurkRequesterServiceV20170117.CreateHIT'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'AssignmentDurationInSeconds': assignmentDurationInSeconds,
'Description': description,
'LifetimeInSeconds': lifetimeInSeconds,
'Reward': reward,
'Title': title,
if (assignmentReviewPolicy != null)
'AssignmentReviewPolicy': assignmentReviewPolicy,
if (autoApprovalDelayInSeconds != null)
'AutoApprovalDelayInSeconds': autoApprovalDelayInSeconds,
if (hITLayoutId != null) 'HITLayoutId': hITLayoutId,
if (hITLayoutParameters != null)
'HITLayoutParameters': hITLayoutParameters,
if (hITReviewPolicy != null) 'HITReviewPolicy': hITReviewPolicy,
if (keywords != null) 'Keywords': keywords,
if (maxAssignments != null) 'MaxAssignments': maxAssignments,
if (qualificationRequirements != null)
'QualificationRequirements': qualificationRequirements,
if (question != null) 'Question': question,
if (requesterAnnotation != null)
'RequesterAnnotation': requesterAnnotation,
if (uniqueRequestToken != null)
'UniqueRequestToken': uniqueRequestToken,
},
);
return CreateHITResponse.fromJson(jsonResponse.body);
}