CreateMigrationProject
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.
Required permissions:
dms:CreateMigrationProject. For more information, see
Actions, resources, and condition keys for AWS Database Migration Service.
Request Syntax
{
"Description": "string",
"InstanceProfileIdentifier": "string",
"MigrationProjectName": "string",
"SchemaConversionApplicationAttributes": {
"S3BucketPath": "string",
"S3BucketRoleArn": "string"
},
"SourceDataProviderDescriptors": [
{
"DataProviderIdentifier": "string",
"SecretsManagerAccessRoleArn": "string",
"SecretsManagerSecretId": "string"
}
],
"Tags": [
{
"Key": "string",
"ResourceArn": "string",
"Value": "string"
}
],
"TargetDataProviderDescriptors": [
{
"DataProviderIdentifier": "string",
"SecretsManagerAccessRoleArn": "string",
"SecretsManagerSecretId": "string"
}
],
"TransformationRules": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- Description
-
A user-friendly description of the migration project.
Type: String
Required: No
- 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.
Type: String
Required: Yes
- MigrationProjectName
-
A user-friendly name for the migration project.
Type: String
Required: No
- SchemaConversionApplicationAttributes
-
The schema conversion application attributes, including the Amazon S3 bucket name and Amazon S3 role ARN.
Type: SCApplicationAttributes object
Required: No
- SourceDataProviderDescriptors
-
Information about the source data provider, including the name, ARN, and AWS Secrets Manager parameters.
Type: Array of DataProviderDescriptorDefinition objects
Required: Yes
- Tags
-
One or more tags to be assigned to the migration project.
Type: Array of Tag objects
Required: No
- TargetDataProviderDescriptors
-
Information about the target data provider, including the name, ARN, and AWS Secrets Manager parameters.
Type: Array of DataProviderDescriptorDefinition objects
Required: Yes
- TransformationRules
-
A JSON string that specifies the transformation rules for the migration project. Transformation rules let you customize how DMS Schema Conversion converts your source database objects, including renaming, adding prefixes or suffixes, and changing data types. For the transformation rule format and examples, see Transformation rules in DMS Schema Conversion.
Note
Homogeneous data migrations do not support transformation rules.
Type: String
Required: No
Response Syntax
{
"MigrationProject": {
"Description": "string",
"InstanceProfileArn": "string",
"InstanceProfileName": "string",
"MigrationProjectArn": "string",
"MigrationProjectCreationTime": "string",
"MigrationProjectName": "string",
"SchemaConversionApplicationAttributes": {
"S3BucketPath": "string",
"S3BucketRoleArn": "string"
},
"SourceDataProviderDescriptors": [
{
"DataProviderArn": "string",
"DataProviderName": "string",
"SecretsManagerAccessRoleArn": "string",
"SecretsManagerSecretId": "string"
}
],
"TargetDataProviderDescriptors": [
{
"DataProviderArn": "string",
"DataProviderName": "string",
"SecretsManagerAccessRoleArn": "string",
"SecretsManagerSecretId": "string"
}
],
"TransformationRules": "string"
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- MigrationProject
-
The migration project that was created.
Type: MigrationProject object
Errors
For information about the errors that are common to all actions, see Common Error Types.
- AccessDeniedFault
-
AWS DMS was denied access to the endpoint. Check that the role is correctly configured.
- message
HTTP Status Code: 400
- FailedDependencyFault
-
A dependency threw an exception.
HTTP Status Code: 400
- ResourceAlreadyExistsFault
-
The resource you are attempting to create already exists.
- message
- resourceArn
HTTP Status Code: 400
- ResourceNotFoundFault
-
The resource could not be found.
- message
HTTP Status Code: 400
- ResourceQuotaExceededFault
-
The quota for this resource quota has been exceeded.
- message
HTTP Status Code: 400
- S3AccessDeniedFault
-
Insufficient privileges are preventing access to an Amazon S3 object.
HTTP Status Code: 400
- S3ResourceNotFoundFault
-
A specified Amazon S3 bucket, bucket folder, or other object can't be found.
HTTP Status Code: 400
Examples
Create a migration project
The following example creates a migration project.
Sample Request
POST / HTTP/1.1
Host: dms.<region>.<domain>
Content-Type: application/x-amz-json-1.1
Content-Length: <PayloadSizeBytes>
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<SignedHeaders>, Signature=<Signature>
X-Amz-Date: <Date>
X-Amz-Target: AmazonDMSv20160101.CreateMigrationProject
{
"MigrationProjectName": "example-migration-project",
"Description": "Example migration project for documentation",
"SourceDataProviderDescriptors": [
{
"DataProviderIdentifier": "arn:aws:dms:us-east-1:111122223333:data-provider:EXAMPLEABCDEFGHIJKLMNOPQRS",
"SecretsManagerSecretId": "arn:aws:secretsmanager:us-east-1:111122223333:secret:example-source-secret-A1B2C3",
"SecretsManagerAccessRoleArn": "arn:aws:iam::111122223333:role/example-secrets-manager-role"
}
],
"TargetDataProviderDescriptors": [
{
"DataProviderIdentifier": "arn:aws:dms:us-east-1:111122223333:data-provider:EXAMPLEABCDEFGHIJKLMNOPQRS",
"SecretsManagerSecretId": "arn:aws:secretsmanager:us-east-1:111122223333:secret:example-target-secret-A1B2C3",
"SecretsManagerAccessRoleArn": "arn:aws:iam::111122223333:role/example-secrets-manager-role"
}
],
"InstanceProfileIdentifier": "arn:aws:dms:us-east-1:111122223333:instance-profile:EXAMPLEABCDEFGHIJKLMNOPQRS",
"TransformationRules": "{\"rules\":[{\"rule-type\":\"transformation\",\"rule-id\":\"1\",\"rule-name\":\"1\",\"rule-target\":\"schema\",\"rule-action\":\"rename\",\"object-locator\":{\"schema-name\":\"ExampleSchema\"},\"value\":\"TargetSchema\"}]}",
"SchemaConversionApplicationAttributes": {
"S3BucketPath": "s3://amzn-s3-demo-bucket",
"S3BucketRoleArn": "arn:aws:iam::111122223333:role/example-s3-access-role"
}
}
Sample Response
HTTP/1.1 200 OK
x-amzn-RequestId: <RequestId>
Content-Type: application/x-amz-json-1.1
Content-Length: <PayloadSizeBytes>
Date: <Date>
{
"MigrationProject": {
"MigrationProjectName": "example-migration-project",
"MigrationProjectArn": "arn:aws:dms:us-east-1:111122223333:migration-project:EXAMPLEABCDEFGHIJKLMNOPQRS",
"MigrationProjectCreationTime": "2026-01-09T12:30:00.000000+00:00",
"SourceDataProviderDescriptors": [
{
"SecretsManagerSecretId": "arn:aws:secretsmanager:us-east-1:111122223333:secret:example-source-secret-A1B2C3",
"SecretsManagerAccessRoleArn": "arn:aws:iam::111122223333:role/example-secrets-manager-role",
"DataProviderName": "example-data-provider",
"DataProviderArn": "arn:aws:dms:us-east-1:111122223333:data-provider:EXAMPLEABCDEFGHIJKLMNOPQRS"
}
],
"TargetDataProviderDescriptors": [
{
"SecretsManagerSecretId": "arn:aws:secretsmanager:us-east-1:111122223333:secret:example-target-secret-A1B2C3",
"SecretsManagerAccessRoleArn": "arn:aws:iam::111122223333:role/example-secrets-manager-role",
"DataProviderName": "example-data-provider",
"DataProviderArn": "arn:aws:dms:us-east-1:111122223333:data-provider:EXAMPLEABCDEFGHIJKLMNOPQRS"
}
],
"InstanceProfileArn": "arn:aws:dms:us-east-1:111122223333:instance-profile:EXAMPLEABCDEFGHIJKLMNOPQRS",
"InstanceProfileName": "example-instance-profile",
"TransformationRules": "{\"rules\":[{\"rule-type\":\"transformation\",\"rule-id\":\"1\",\"rule-name\":\"1\",\"rule-target\":\"schema\",\"rule-action\":\"rename\",\"object-locator\":{\"schema-name\":\"ExampleSchema\"},\"value\":\"TargetSchema\"}]}",
"Description": "Example migration project for documentation",
"SchemaConversionApplicationAttributes": {
"S3BucketPath": "s3://amzn-s3-demo-bucket",
"S3BucketRoleArn": "arn:aws:iam::111122223333:role/example-s3-access-role"
}
}
}
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: