Database Migrations Mongo To Cosmos Dbv Core Mongo
Database Migration Resource for Mongo to CosmosDb. Uses Azure REST API version 2023-07-15-preview. In version 2.x of the Azure Native provider, it used API version 2023-07-15-preview.
Example Usage
Create Mongo to CosmosDb Mongo(vCore) Database Migration resource with Maximum parameters.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var databaseMigrationsMongoToCosmosDbvCoreMongo = new AzureNative.DataMigration.DatabaseMigrationsMongoToCosmosDbvCoreMongo("databaseMigrationsMongoToCosmosDbvCoreMongo", new()
{
CollectionList = new[]
{
new AzureNative.DataMigration.Inputs.MongoMigrationCollectionArgs
{
SourceCollection = "sourceCol1",
SourceDatabase = "sourceDb1",
TargetCollection = "targetCol1",
TargetDatabase = "targetDb1",
},
new AzureNative.DataMigration.Inputs.MongoMigrationCollectionArgs
{
SourceCollection = "sourceCol2",
SourceDatabase = "sourceDb2",
TargetCollection = "sourceCol2",
TargetDatabase = "sourceDb2",
},
},
Kind = "MongoToCosmosDbMongo",
MigrationName = "migrationRequest",
MigrationService = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/MigrationServices/testMigrationService",
ResourceGroupName = "testrg",
Scope = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DocumentDB/mongoClusters/targetCosmosDbClusterName",
SourceMongoConnection = new AzureNative.DataMigration.Inputs.MongoConnectionInformationArgs
{
Host = "abc.mongodb.com",
Password = "placeholder",
Port = 88,
UseSsl = true,
UserName = "abc",
},
TargetMongoConnection = new AzureNative.DataMigration.Inputs.MongoConnectionInformationArgs
{
Host = "xyz.mongocluster.cosmos.azure.com",
Password = "placeholder",
Port = 10255,
UseSsl = true,
UserName = "def",
},
TargetResourceName = "targetCosmosDbClusterName",
});
});
package main
import (
datamigration "github.com/pulumi/pulumi-azure-native-sdk/datamigration/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := datamigration.NewDatabaseMigrationsMongoToCosmosDbvCoreMongo(ctx, "databaseMigrationsMongoToCosmosDbvCoreMongo", &datamigration.DatabaseMigrationsMongoToCosmosDbvCoreMongoArgs{
CollectionList: datamigration.MongoMigrationCollectionArray{
&datamigration.MongoMigrationCollectionArgs{
SourceCollection: pulumi.String("sourceCol1"),
SourceDatabase: pulumi.String("sourceDb1"),
TargetCollection: pulumi.String("targetCol1"),
TargetDatabase: pulumi.String("targetDb1"),
},
&datamigration.MongoMigrationCollectionArgs{
SourceCollection: pulumi.String("sourceCol2"),
SourceDatabase: pulumi.String("sourceDb2"),
TargetCollection: pulumi.String("sourceCol2"),
TargetDatabase: pulumi.String("sourceDb2"),
},
},
Kind: pulumi.String("MongoToCosmosDbMongo"),
MigrationName: pulumi.String("migrationRequest"),
MigrationService: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/MigrationServices/testMigrationService"),
ResourceGroupName: pulumi.String("testrg"),
Scope: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DocumentDB/mongoClusters/targetCosmosDbClusterName"),
SourceMongoConnection: &datamigration.MongoConnectionInformationArgs{
Host: pulumi.String("abc.mongodb.com"),
Password: pulumi.String("placeholder"),
Port: pulumi.Int(88),
UseSsl: pulumi.Bool(true),
UserName: pulumi.String("abc"),
},
TargetMongoConnection: &datamigration.MongoConnectionInformationArgs{
Host: pulumi.String("xyz.mongocluster.cosmos.azure.com"),
Password: pulumi.String("placeholder"),
Port: pulumi.Int(10255),
UseSsl: pulumi.Bool(true),
UserName: pulumi.String("def"),
},
TargetResourceName: pulumi.String("targetCosmosDbClusterName"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.datamigration.DatabaseMigrationsMongoToCosmosDbvCoreMongo;
import com.pulumi.azurenative.datamigration.DatabaseMigrationsMongoToCosmosDbvCoreMongoArgs;
import com.pulumi.azurenative.datamigration.inputs.MongoMigrationCollectionArgs;
import com.pulumi.azurenative.datamigration.inputs.MongoConnectionInformationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var databaseMigrationsMongoToCosmosDbvCoreMongo = new DatabaseMigrationsMongoToCosmosDbvCoreMongo("databaseMigrationsMongoToCosmosDbvCoreMongo", DatabaseMigrationsMongoToCosmosDbvCoreMongoArgs.builder()
.collectionList(
MongoMigrationCollectionArgs.builder()
.sourceCollection("sourceCol1")
.sourceDatabase("sourceDb1")
.targetCollection("targetCol1")
.targetDatabase("targetDb1")
.build(),
MongoMigrationCollectionArgs.builder()
.sourceCollection("sourceCol2")
.sourceDatabase("sourceDb2")
.targetCollection("sourceCol2")
.targetDatabase("sourceDb2")
.build())
.kind("MongoToCosmosDbMongo")
.migrationName("migrationRequest")
.migrationService("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/MigrationServices/testMigrationService")
.resourceGroupName("testrg")
.scope("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DocumentDB/mongoClusters/targetCosmosDbClusterName")
.sourceMongoConnection(MongoConnectionInformationArgs.builder()
.host("abc.mongodb.com")
.password("placeholder")
.port(88)
.useSsl(true)
.userName("abc")
.build())
.targetMongoConnection(MongoConnectionInformationArgs.builder()
.host("xyz.mongocluster.cosmos.azure.com")
.password("placeholder")
.port(10255)
.useSsl(true)
.userName("def")
.build())
.targetResourceName("targetCosmosDbClusterName")
.build());
}
}
Create Mongo to CosmosDb Mongo(vCore) Database Migration resource with Minimum parameters.
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var databaseMigrationsMongoToCosmosDbvCoreMongo = new AzureNative.DataMigration.DatabaseMigrationsMongoToCosmosDbvCoreMongo("databaseMigrationsMongoToCosmosDbvCoreMongo", new()
{
CollectionList = new[]
{
new AzureNative.DataMigration.Inputs.MongoMigrationCollectionArgs
{
SourceCollection = "sourceCol1",
SourceDatabase = "sourceDb1",
TargetCollection = "targetCol1",
TargetDatabase = "targetDb1",
},
new AzureNative.DataMigration.Inputs.MongoMigrationCollectionArgs
{
SourceCollection = "sourceCol2",
SourceDatabase = "sourceDb2",
},
},
Kind = "MongoToCosmosDbMongo",
MigrationName = "migrationRequest",
MigrationService = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/MigrationServices/testMigrationService",
ResourceGroupName = "testrg",
Scope = "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DocumentDB/mongoClusters/targetCosmosDbClusterName",
SourceMongoConnection = new AzureNative.DataMigration.Inputs.MongoConnectionInformationArgs
{
Host = "abc.mongodb.com",
Password = "placeholder",
Port = 88,
UseSsl = true,
UserName = "abc",
},
TargetMongoConnection = new AzureNative.DataMigration.Inputs.MongoConnectionInformationArgs
{
ConnectionString = "placeholder",
},
TargetResourceName = "targetCosmosDbClusterName",
});
});
package main
import (
datamigration "github.com/pulumi/pulumi-azure-native-sdk/datamigration/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := datamigration.NewDatabaseMigrationsMongoToCosmosDbvCoreMongo(ctx, "databaseMigrationsMongoToCosmosDbvCoreMongo", &datamigration.DatabaseMigrationsMongoToCosmosDbvCoreMongoArgs{
CollectionList: datamigration.MongoMigrationCollectionArray{
&datamigration.MongoMigrationCollectionArgs{
SourceCollection: pulumi.String("sourceCol1"),
SourceDatabase: pulumi.String("sourceDb1"),
TargetCollection: pulumi.String("targetCol1"),
TargetDatabase: pulumi.String("targetDb1"),
},
&datamigration.MongoMigrationCollectionArgs{
SourceCollection: pulumi.String("sourceCol2"),
SourceDatabase: pulumi.String("sourceDb2"),
},
},
Kind: pulumi.String("MongoToCosmosDbMongo"),
MigrationName: pulumi.String("migrationRequest"),
MigrationService: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/MigrationServices/testMigrationService"),
ResourceGroupName: pulumi.String("testrg"),
Scope: pulumi.String("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DocumentDB/mongoClusters/targetCosmosDbClusterName"),
SourceMongoConnection: &datamigration.MongoConnectionInformationArgs{
Host: pulumi.String("abc.mongodb.com"),
Password: pulumi.String("placeholder"),
Port: pulumi.Int(88),
UseSsl: pulumi.Bool(true),
UserName: pulumi.String("abc"),
},
TargetMongoConnection: &datamigration.MongoConnectionInformationArgs{
ConnectionString: pulumi.String("placeholder"),
},
TargetResourceName: pulumi.String("targetCosmosDbClusterName"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.datamigration.DatabaseMigrationsMongoToCosmosDbvCoreMongo;
import com.pulumi.azurenative.datamigration.DatabaseMigrationsMongoToCosmosDbvCoreMongoArgs;
import com.pulumi.azurenative.datamigration.inputs.MongoMigrationCollectionArgs;
import com.pulumi.azurenative.datamigration.inputs.MongoConnectionInformationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var databaseMigrationsMongoToCosmosDbvCoreMongo = new DatabaseMigrationsMongoToCosmosDbvCoreMongo("databaseMigrationsMongoToCosmosDbvCoreMongo", DatabaseMigrationsMongoToCosmosDbvCoreMongoArgs.builder()
.collectionList(
MongoMigrationCollectionArgs.builder()
.sourceCollection("sourceCol1")
.sourceDatabase("sourceDb1")
.targetCollection("targetCol1")
.targetDatabase("targetDb1")
.build(),
MongoMigrationCollectionArgs.builder()
.sourceCollection("sourceCol2")
.sourceDatabase("sourceDb2")
.build())
.kind("MongoToCosmosDbMongo")
.migrationName("migrationRequest")
.migrationService("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DataMigration/MigrationServices/testMigrationService")
.resourceGroupName("testrg")
.scope("/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/testrg/providers/Microsoft.DocumentDB/mongoClusters/targetCosmosDbClusterName")
.sourceMongoConnection(MongoConnectionInformationArgs.builder()
.host("abc.mongodb.com")
.password("placeholder")
.port(88)
.useSsl(true)
.userName("abc")
.build())
.targetMongoConnection(MongoConnectionInformationArgs.builder()
.connectionString("placeholder")
.build())
.targetResourceName("targetCosmosDbClusterName")
.build());
}
}
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:datamigration:DatabaseMigrationsMongoToCosmosDbvCoreMongo migrationRequest /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/mongoClusters/{targetResourceName}/providers/Microsoft.DataMigration/databaseMigrations/{migrationName}
Properties
The Azure API version of the resource.
List of Mongo Collections to be migrated.
Error details in case of migration failure.
ID for current migration operation.
Resource Id of the Migration Service.
Migration status.
Error message for migration provisioning failure, if any.
Provisioning State of migration. ProvisioningState as Succeeded implies that validations have been performed and migration has started.
Source Mongo connection details.
Azure Resource Manager metadata containing createdBy and modifiedBy information.
Target Cosmos DB Mongo connection details.