createQualificationType method

Future<CreateQualificationTypeResponse> createQualificationType({
  1. required String description,
  2. required String name,
  3. required QualificationTypeStatus qualificationTypeStatus,
  4. String? answerKey,
  5. bool? autoGranted,
  6. int? autoGrantedValue,
  7. String? keywords,
  8. int? retryDelayInSeconds,
  9. String? test,
  10. int? testDurationInSeconds,
})

The CreateQualificationType operation creates a new Qualification type, which is represented by a QualificationType data structure.

May throw ServiceFault. May throw RequestError.

Parameter description : A long description for the Qualification type. On the Amazon Mechanical Turk website, the long description is displayed when a Worker examines a Qualification type.

Parameter name : The name you give to the Qualification type. The type name is used to represent the Qualification to Workers, and to find the type using a Qualification type search. It must be unique across all of your Qualification types.

Parameter qualificationTypeStatus : The initial status of the Qualification type.

Constraints: Valid values are: Active | Inactive

Parameter answerKey : The answers to the Qualification test specified in the Test parameter, in the form of an AnswerKey data structure.

Constraints: Must not be longer than 65535 bytes.

Constraints: None. If not specified, you must process Qualification requests manually.

Parameter autoGranted : Specifies whether requests for the Qualification type are granted immediately, without prompting the Worker with a Qualification test.

Constraints: If the Test parameter is specified, this parameter cannot be true.

Parameter autoGrantedValue : The Qualification value to use for automatically granted Qualifications. This parameter is used only if the AutoGranted parameter is true.

Parameter keywords : One or more words or phrases that describe the Qualification type, separated by commas. The keywords of a type make the type easier to find during a search.

Parameter retryDelayInSeconds : The number of seconds that a Worker must wait after requesting a Qualification of the Qualification type before the worker can retry the Qualification request.

Constraints: None. If not specified, retries are disabled and Workers can request a Qualification of this type only once, even if the Worker has not been granted the Qualification. It is not possible to disable retries for a Qualification type after it has been created with retries enabled. If you want to disable retries, you must delete existing retry-enabled Qualification type and then create a new Qualification type with retries disabled.

Parameter test : The questions for the Qualification test a Worker must answer correctly to obtain a Qualification of this type. If this parameter is specified, TestDurationInSeconds must also be specified.

Constraints: Must not be longer than 65535 bytes. Must be a QuestionForm data structure. This parameter cannot be specified if AutoGranted is true.

Constraints: None. If not specified, the Worker may request the Qualification without answering any questions.

Parameter testDurationInSeconds : The number of seconds the Worker has to complete the Qualification test, starting from the time the Worker requests the Qualification.

Implementation

Future<CreateQualificationTypeResponse> createQualificationType({
  required String description,
  required String name,
  required QualificationTypeStatus qualificationTypeStatus,
  String? answerKey,
  bool? autoGranted,
  int? autoGrantedValue,
  String? keywords,
  int? retryDelayInSeconds,
  String? test,
  int? testDurationInSeconds,
}) async {
  ArgumentError.checkNotNull(description, 'description');
  ArgumentError.checkNotNull(name, 'name');
  ArgumentError.checkNotNull(
      qualificationTypeStatus, 'qualificationTypeStatus');
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'MTurkRequesterServiceV20170117.CreateQualificationType'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Description': description,
      'Name': name,
      'QualificationTypeStatus': qualificationTypeStatus.toValue(),
      if (answerKey != null) 'AnswerKey': answerKey,
      if (autoGranted != null) 'AutoGranted': autoGranted,
      if (autoGrantedValue != null) 'AutoGrantedValue': autoGrantedValue,
      if (keywords != null) 'Keywords': keywords,
      if (retryDelayInSeconds != null)
        'RetryDelayInSeconds': retryDelayInSeconds,
      if (test != null) 'Test': test,
      if (testDurationInSeconds != null)
        'TestDurationInSeconds': testDurationInSeconds,
    },
  );

  return CreateQualificationTypeResponse.fromJson(jsonResponse.body);
}