startImport method

Future<StartImportResponse> startImport({
  1. required MergeStrategy mergeStrategy,
  2. required Uint8List payload,
  3. required ResourceType resourceType,
  4. List<Tag>? tags,
})

Starts a job to import a resource to Amazon Lex.

May throw LimitExceededException. May throw InternalFailureException. May throw BadRequestException.

Parameter mergeStrategy : Specifies the action that the StartImport operation should take when there is an existing resource with the same name.

  • FAIL_ON_CONFLICT - The import operation is stopped on the first conflict between a resource in the import file and an existing resource. The name of the resource causing the conflict is in the failureReason field of the response to the GetImport operation.

    OVERWRITE_LATEST - The import operation proceeds even if there is a conflict with an existing resource. The $LASTEST version of the existing resource is overwritten with the data from the import file.

Parameter payload : A zip archive in binary format. The archive should contain one file, a JSON file containing the resource to import. The resource should match the type specified in the resourceType field.

Parameter resourceType : Specifies the type of resource to export. Each resource also exports any resources that it depends on.

  • A bot exports dependent intents.
  • An intent exports dependent slot types.

Parameter tags : A list of tags to add to the imported bot. You can only add tags when you import a bot, you can't add tags to an intent or slot type.

Implementation

Future<StartImportResponse> startImport({
  required MergeStrategy mergeStrategy,
  required Uint8List payload,
  required ResourceType resourceType,
  List<Tag>? tags,
}) async {
  ArgumentError.checkNotNull(mergeStrategy, 'mergeStrategy');
  ArgumentError.checkNotNull(payload, 'payload');
  ArgumentError.checkNotNull(resourceType, 'resourceType');
  final $payload = <String, dynamic>{
    'mergeStrategy': mergeStrategy.toValue(),
    'payload': base64Encode(payload),
    'resourceType': resourceType.toValue(),
    if (tags != null) 'tags': tags,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/imports/',
    exceptionFnMap: _exceptionFns,
  );
  return StartImportResponse.fromJson(response);
}