createReplicationTask method

Future<CreateReplicationTaskResponse> createReplicationTask({
  1. required MigrationTypeValue migrationType,
  2. required String replicationInstanceArn,
  3. required String replicationTaskIdentifier,
  4. required String sourceEndpointArn,
  5. required String tableMappings,
  6. required String targetEndpointArn,
  7. String? cdcStartPosition,
  8. DateTime? cdcStartTime,
  9. String? cdcStopPosition,
  10. String? replicationTaskSettings,
  11. String? resourceIdentifier,
  12. List<Tag>? tags,
  13. String? taskData,
})

Creates a replication task using the specified parameters.

May throw AccessDeniedFault. May throw InvalidResourceStateFault. May throw ResourceAlreadyExistsFault. May throw ResourceNotFoundFault. May throw KMSKeyNotAccessibleFault. May throw ResourceQuotaExceededFault.

Parameter migrationType : The migration type. Valid values: full-load | cdc | full-load-and-cdc

Parameter replicationInstanceArn : The Amazon Resource Name (ARN) of a replication instance.

Parameter replicationTaskIdentifier : An identifier for the replication task.

Constraints:

  • Must contain 1-255 alphanumeric characters or hyphens.
  • First character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.

Parameter sourceEndpointArn : An Amazon Resource Name (ARN) that uniquely identifies the source endpoint.

Parameter tableMappings : The table mappings for the task, in JSON format. For more information, see Using Table Mapping to Specify Task Settings in the AWS Database Migration Service User Guide.

Parameter targetEndpointArn : An Amazon Resource Name (ARN) that uniquely identifies the target endpoint.

Parameter cdcStartPosition : Indicates when you want a change data capture (CDC) operation to start. Use either CdcStartPosition or CdcStartTime to specify when you want a CDC operation to start. Specifying both values results in an error.

The value can be in date, checkpoint, or LSN/SCN format.

Date Example: --cdc-start-position “2018-03-08T12:12:12”

Checkpoint Example: --cdc-start-position "checkpoint:V1#27#mysql-bin-changelog.157832:1975:-1:2002:677883278264080:mysql-bin-changelog.157832:1876#0#0#*#0#93"

LSN Example: --cdc-start-position “mysql-bin-changelog.000024:373”

Parameter cdcStartTime : Indicates the start time for a change data capture (CDC) operation. Use either CdcStartTime or CdcStartPosition to specify when you want a CDC operation to start. Specifying both values results in an error.

Timestamp Example: --cdc-start-time “2018-03-08T12:12:12”

Parameter cdcStopPosition : Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time.

Server time example: --cdc-stop-position “server_time:2018-02-09T12:12:12”

Commit time example: --cdc-stop-position “commit_time: 2018-02-09T12:12:12 “

Parameter replicationTaskSettings : Overall settings for the task, in JSON format. For more information, see Specifying Task Settings for AWS Database Migration Service Tasks in the AWS Database Migration User Guide.

Parameter resourceIdentifier : A friendly name for the resource identifier at the end of the EndpointArn response parameter that is returned in the created Endpoint object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as Example-App-ARN1. For example, this value might result in the EndpointArn value arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1. If you don't specify a ResourceIdentifier value, AWS DMS generates a default identifier value for the end of EndpointArn.

Parameter tags : One or more tags to be assigned to the replication task.

Parameter taskData : Supplemental information that the task requires to migrate the data for certain source and target endpoints. For more information, see Specifying Supplemental Data for Task Settings in the AWS Database Migration Service User Guide.

Implementation

Future<CreateReplicationTaskResponse> createReplicationTask({
  required MigrationTypeValue migrationType,
  required String replicationInstanceArn,
  required String replicationTaskIdentifier,
  required String sourceEndpointArn,
  required String tableMappings,
  required String targetEndpointArn,
  String? cdcStartPosition,
  DateTime? cdcStartTime,
  String? cdcStopPosition,
  String? replicationTaskSettings,
  String? resourceIdentifier,
  List<Tag>? tags,
  String? taskData,
}) async {
  ArgumentError.checkNotNull(migrationType, 'migrationType');
  ArgumentError.checkNotNull(
      replicationInstanceArn, 'replicationInstanceArn');
  ArgumentError.checkNotNull(
      replicationTaskIdentifier, 'replicationTaskIdentifier');
  ArgumentError.checkNotNull(sourceEndpointArn, 'sourceEndpointArn');
  ArgumentError.checkNotNull(tableMappings, 'tableMappings');
  ArgumentError.checkNotNull(targetEndpointArn, 'targetEndpointArn');
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AmazonDMSv20160101.CreateReplicationTask'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'MigrationType': migrationType.toValue(),
      'ReplicationInstanceArn': replicationInstanceArn,
      'ReplicationTaskIdentifier': replicationTaskIdentifier,
      'SourceEndpointArn': sourceEndpointArn,
      'TableMappings': tableMappings,
      'TargetEndpointArn': targetEndpointArn,
      if (cdcStartPosition != null) 'CdcStartPosition': cdcStartPosition,
      if (cdcStartTime != null)
        'CdcStartTime': unixTimestampToJson(cdcStartTime),
      if (cdcStopPosition != null) 'CdcStopPosition': cdcStopPosition,
      if (replicationTaskSettings != null)
        'ReplicationTaskSettings': replicationTaskSettings,
      if (resourceIdentifier != null)
        'ResourceIdentifier': resourceIdentifier,
      if (tags != null) 'Tags': tags,
      if (taskData != null) 'TaskData': taskData,
    },
  );

  return CreateReplicationTaskResponse.fromJson(jsonResponse.body);
}