/// <summary> /// Creates an Azure SQL Database Copy with Legacy SDK (Hyak SDK) /// </summary> /// <param name="copyResourceGroup">The name of the resource group</param> /// <param name="copyServerName">The name of the Azure SQL Server</param> /// <param name="model">The input parameters for the create/update operation</param> /// <returns>The Azure SQL Database Copy object</returns> internal AzureSqlDatabaseCopyModel CopyDatabase(string copyResourceGroup, string copyServerName, AzureSqlDatabaseCopyModel model) { var resp = ReplicationCommunicator.CreateCopy(copyResourceGroup, copyServerName, model.CopyDatabaseName, new DatabaseCreateOrUpdateParameters() { Location = model.CopyLocation, Properties = new DatabaseCreateOrUpdateProperties() { SourceDatabaseId = string.Format(AzureReplicationLinkModel.SourceIdTemplate, _subscription.Id.ToString(), model.ResourceGroupName, model.ServerName, model.DatabaseName), CreateMode = Management.Sql.LegacySdk.Models.DatabaseCreateMode.Copy, ElasticPoolName = model.ElasticPoolName, RequestedServiceObjectiveName = model.ServiceObjectiveName, } }); return(CreateDatabaseCopyModelFromDatabaseCreateOrUpdateResponse(model.CopyResourceGroupName, model.CopyServerName, model.CopyDatabaseName, model.ResourceGroupName, model.ServerName, model.DatabaseName, resp)); }
/// <summary> /// Creates an Azure SQL Database Copy with new AutoRest SDK /// </summary> /// <param name="copyResourceGroup">The name of the resource group</param> /// <param name="copyServerName">The name of the Azure SQL server</param> /// <param name="model">The input parameters for the create/update operation</param> /// <returns></returns> internal AzureSqlDatabaseCopyModel CopyDatabaseWithNewSdk(string copyResourceGroup, string copyServerName, AzureSqlDatabaseCopyModel model) { // Construct the ARM resource Id of the pool string elasticPoolId = string.IsNullOrWhiteSpace(model.ElasticPoolName) ? null : AzureSqlDatabaseModel.PoolIdTemplate.FormatInvariant( _subscription.Id, copyResourceGroup, copyServerName, model.ElasticPoolName); // Create copy of the database var resp = ReplicationCommunicator.CreateCopy(copyResourceGroup, copyServerName, model.CopyDatabaseName, new Management.Sql.Models.Database(model.CopyLocation, tags: model.Tags) { CreateMode = Management.Sql.Models.CreateMode.Copy, SourceDatabaseId = string.Format(AzureReplicationLinkModel.SourceIdTemplate, _subscription.Id.ToString(), model.ResourceGroupName, model.ServerName, model.DatabaseName), ElasticPoolId = elasticPoolId, Sku = string.IsNullOrWhiteSpace(model.SkuName) ? null : new Management.Sql.Models.Sku() { Name = model.SkuName, Tier = model.Edition, Family = model.Family, Capacity = model.Capacity }, LicenseType = model.LicenseType }); return(CreateDatabaseCopyModelFromResponse(model.CopyResourceGroupName, model.CopyServerName, model.ResourceGroupName, model.ServerName, model.DatabaseName, resp)); }