CreateDataProvider
Creates a data provider using the provided settings. A data provider stores a data store type and location information about your database.
Request Syntax
{
"DataProviderName": "string",
"Description": "string",
"Engine": "string",
"Settings": { ... },
"Tags": [
{
"Key": "string",
"ResourceArn": "string",
"Value": "string"
}
],
"Virtual": boolean
}
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.
- DataProviderName
-
A user-friendly name for the data provider.
Type: String
Required: No
- Description
-
A user-friendly description of the data provider.
Type: String
Required: No
- Engine
-
The type of database engine for the data provider. Valid values include
"aurora","aurora-postgresql","mysql","oracle","postgres","sqlserver",redshift,mariadb,mongodb,db2,db2-zos,docdb, andsybase. A value of"aurora"represents Amazon Aurora MySQL-Compatible Edition.Type: String
Required: Yes
- Settings
-
The settings in JSON format for a data provider.
Type: DataProviderSettings object
Note: This object is a Union. Only one member of this object can be specified or returned.
Required: Yes
- Tags
-
One or more tags to be assigned to the data provider.
Type: Array of Tag objects
Required: No
- Virtual
-
Indicates whether the data provider is virtual.
Type: Boolean
Required: No
Response Syntax
{
"DataProvider": {
"DataProviderArn": "string",
"DataProviderCreationTime": "string",
"DataProviderName": "string",
"Description": "string",
"Engine": "string",
"Settings": { ... },
"Virtual": boolean
}
}
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.
- DataProvider
-
The data provider that was created.
Type: DataProvider 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
- ResourceQuotaExceededFault
-
The quota for this resource quota has been exceeded.
- message
HTTP Status Code: 400
Examples
Create a Microsoft SQL Server data provider
The following example creates a Microsoft SQL Server data provider.
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.CreateDataProvider
{
"DataProviderName": "example-data-provider",
"Engine": "sqlserver",
"Description": "Example data provider for documentation",
"Settings": {
"MicrosoftSqlServerSettings": {
"ServerName": "example-source-server.us-east-1.rds.amazonaws.com",
"Port": 1433,
"DatabaseName": "ExampleDatabase",
"SslMode": "verify-full",
"CertificateArn": "arn:aws:dms:us-east-1:111122223333:cert:EXAMPLEABCDEFGHIJKLMNOPQRS"
}
}
}
Sample Response
HTTP/1.1 200 OK
x-amzn-RequestId: <RequestId>
Content-Type: application/x-amz-json-1.1
Content-Length: <PayloadSizeBytes>
Date: <Date>
{
"DataProvider": {
"DataProviderName": "example-data-provider",
"DataProviderArn": "arn:aws:dms:us-east-1:111122223333:data-provider:EXAMPLEABCDEFGHIJKLMNOPQRS",
"DataProviderCreationTime": "2026-01-09T12:30:00.000000+00:00",
"Description": "Example data provider for documentation",
"Engine": "sqlserver",
"Settings": {
"MicrosoftSqlServerSettings": {
"ServerName": "example-source-server.us-east-1.rds.amazonaws.com",
"Port": 1433,
"DatabaseName": "ExampleDatabase",
"SslMode": "verify-full",
"CertificateArn": "arn:aws:dms:us-east-1:111122223333:cert:EXAMPLEABCDEFGHIJKLMNOPQRS"
}
}
}
}
Create a virtual data provider
The following example creates a virtual data provider, which doesn't require a connection to the database.
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.CreateDataProvider
{
"DataProviderName": "example-virtual-data-provider",
"Engine": "aurora-postgresql",
"Description": "Example data provider for documentation",
"Virtual": true,
"Settings": {
"PostgreSqlSettings": {
"ServerName": "virtual",
"Port": 5432,
"DatabaseName": "virtual",
"SslMode": "none"
}
}
}
Sample Response
HTTP/1.1 200 OK
x-amzn-RequestId: <RequestId>
Content-Type: application/x-amz-json-1.1
Content-Length: <PayloadSizeBytes>
Date: <Date>
{
"DataProvider": {
"DataProviderName": "example-virtual-data-provider",
"DataProviderArn": "arn:aws:dms:us-east-1:111122223333:data-provider:EXAMPLEABCDEFGHIJKLMNOPQRS",
"DataProviderCreationTime": "2026-01-09T12:30:00.000000+00:00",
"Description": "Example data provider for documentation",
"Engine": "aurora-postgresql",
"Virtual": true,
"Settings": {
"PostgreSqlSettings": {
"ServerName": "virtual",
"Port": 5432,
"DatabaseName": "virtual",
"SslMode": "none"
}
}
}
}
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: