createMigrationProject method

Future<CreateMigrationProjectResponse> createMigrationProject({
  1. required String instanceProfileIdentifier,
  2. required List<DataProviderDescriptorDefinition> sourceDataProviderDescriptors,
  3. required List<DataProviderDescriptorDefinition> targetDataProviderDescriptors,
  4. String? description,
  5. String? migrationProjectName,
  6. SCApplicationAttributes? schemaConversionApplicationAttributes,
  7. List<Tag>? tags,
  8. String? transformationRules,
})

Creates the migration project using the specified parameters.

You can run this action only after you create an instance profile and data providers using CreateInstanceProfile and CreateDataProvider.

May throw AccessDeniedFault. May throw FailedDependencyFault. May throw ResourceAlreadyExistsFault. May throw ResourceNotFoundFault. May throw ResourceQuotaExceededFault. May throw S3AccessDeniedFault. May throw S3ResourceNotFoundFault.

Parameter instanceProfileIdentifier : The identifier of the associated instance profile. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen, or contain two consecutive hyphens.

Parameter sourceDataProviderDescriptors : Information about the source data provider, including the name, ARN, and Secrets Manager parameters.

Parameter targetDataProviderDescriptors : Information about the target data provider, including the name, ARN, and Amazon Web Services Secrets Manager parameters.

Parameter description : A user-friendly description of the migration project.

Parameter migrationProjectName : A user-friendly name for the migration project.

Parameter schemaConversionApplicationAttributes : The schema conversion application attributes, including the Amazon S3 bucket name and Amazon S3 role ARN.

Parameter tags : One or more tags to be assigned to the migration project.

Parameter transformationRules : The settings in JSON format for migration rules. Migration rules make it possible for you to change the object names according to the rules that you specify. For example, you can change an object name to lowercase or uppercase, add or remove a prefix or suffix, or rename objects.

Implementation

Future<CreateMigrationProjectResponse> createMigrationProject({
  required String instanceProfileIdentifier,
  required List<DataProviderDescriptorDefinition>
      sourceDataProviderDescriptors,
  required List<DataProviderDescriptorDefinition>
      targetDataProviderDescriptors,
  String? description,
  String? migrationProjectName,
  SCApplicationAttributes? schemaConversionApplicationAttributes,
  List<Tag>? tags,
  String? transformationRules,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AmazonDMSv20160101.CreateMigrationProject'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'InstanceProfileIdentifier': instanceProfileIdentifier,
      'SourceDataProviderDescriptors': sourceDataProviderDescriptors,
      'TargetDataProviderDescriptors': targetDataProviderDescriptors,
      if (description != null) 'Description': description,
      if (migrationProjectName != null)
        'MigrationProjectName': migrationProjectName,
      if (schemaConversionApplicationAttributes != null)
        'SchemaConversionApplicationAttributes':
            schemaConversionApplicationAttributes,
      if (tags != null) 'Tags': tags,
      if (transformationRules != null)
        'TransformationRules': transformationRules,
    },
  );

  return CreateMigrationProjectResponse.fromJson(jsonResponse.body);
}