/// <summary> /// Creates or updates an Azure Sql Database with new AutoRest SDK. /// </summary> /// <param name="resourceGroup">The name of the resource group</param> /// <param name="serverName">The name of the Azure Sql Database Server</param> /// <param name="model">The input parameters for the create/update operation</param> /// <returns>The upserted Azure Sql Database from AutoRest SDK</returns> internal AzureSqlDatabaseModel UpsertDatabaseWithNewSdk(string resourceGroup, string serverName, AzureSqlDatabaseCreateOrUpdateModel model) { // Construct the ARM resource Id of the pool string elasticPoolId = string.IsNullOrWhiteSpace(model.Database.ElasticPoolName) ? null : AzureSqlDatabaseModel.PoolIdTemplate.FormatInvariant( _subscription.Id, resourceGroup, serverName, model.Database.ElasticPoolName); // Use AutoRest SDK var resp = Communicator.CreateOrUpdate(resourceGroup, serverName, model.Database.DatabaseName, new Management.Sql.Models.Database { Location = model.Database.Location, Tags = model.Database.Tags, Collation = model.Database.CollationName, Sku = string.IsNullOrWhiteSpace(model.Database.SkuName) ? null : new Sku() { Name = model.Database.SkuName, Tier = model.Database.Edition, Family = model.Database.Family, Capacity = model.Database.Capacity }, MaxSizeBytes = model.Database.MaxSizeBytes, ReadScale = model.Database.ReadScale.ToString(), SampleName = model.SampleName, ZoneRedundant = model.Database.ZoneRedundant, ElasticPoolId = elasticPoolId, LicenseType = model.Database.LicenseType, AutoPauseDelay = model.Database.AutoPauseDelayInMinutes, MinCapacity = model.Database.MinimumCapacity, HighAvailabilityReplicaCount = model.Database.HighAvailabilityReplicaCount, RequestedBackupStorageRedundancy = model.Database.RequestedBackupStorageRedundancy, SecondaryType = model.Database.SecondaryType, MaintenanceConfigurationId = MaintenanceConfigurationHelper.ConvertMaintenanceConfigurationIdArgument(model.Database.MaintenanceConfigurationId, _subscription.Id), }); return(CreateDatabaseModelFromResponse(resourceGroup, serverName, resp)); }
/// <summary> /// Creates or updates an Azure Sql Database with new AutoRest SDK. /// </summary> /// <param name="resourceGroup">The name of the resource group</param> /// <param name="serverName">The name of the Azure Sql Database Server</param> /// <param name="model">The input parameters for the create/update operation</param> /// <returns>The upserted Azure Sql Database from AutoRest SDK</returns> internal AzureSqlDatabaseModel UpsertDatabaseWithNewSdk(string resourceGroup, string serverName, AzureSqlDatabaseCreateOrUpdateModel model) { // Construct the ARM resource Id of the pool string elasticPoolId = string.IsNullOrWhiteSpace(model.Database.ElasticPoolName) ? null : AzureSqlDatabaseModel.PoolIdTemplate.FormatInvariant( _subscription.Id, resourceGroup, serverName, model.Database.ElasticPoolName); // Use AutoRest SDK var resp = Communicator.CreateOrUpdate(resourceGroup, serverName, model.Database.DatabaseName, new Management.Sql.Models.Database { Location = model.Database.Location, Tags = model.Database.Tags, Collation = model.Database.CollationName, Sku = string.IsNullOrWhiteSpace(model.Database.SkuName) ? null : new Sku() { Name = model.Database.SkuName, Tier = model.Database.Edition, Family = model.Database.Family, Capacity = model.Database.Capacity }, MaxSizeBytes = model.Database.MaxSizeBytes, ReadScale = model.Database.ReadScale.ToString(), SampleName = model.SampleName, ZoneRedundant = model.Database.ZoneRedundant, ElasticPoolId = elasticPoolId }); return(CreateDatabaseModelFromResponse(resourceGroup, serverName, resp)); }
/// <summary> /// Creates or updates an Azure Sql Database with Hyak SDK. /// </summary> /// <param name="resourceGroup">The name of the resource group</param> /// <param name="serverName">The name of the Azure Sql Database Server</param> /// <param name="model">The input parameters for the create/update operation</param> /// <returns>The upserted Azure Sql Database from Hyak SDK</returns> internal AzureSqlDatabaseModel UpsertDatabase(string resourceGroup, string serverName, AzureSqlDatabaseCreateOrUpdateModel model) { // Use Hyak SDK var resp = Communicator.CreateOrUpdate(resourceGroup, serverName, model.Database.DatabaseName, new DatabaseCreateOrUpdateParameters { Location = model.Database.Location, Tags = model.Database.Tags, Properties = new DatabaseCreateOrUpdateProperties() { Collation = model.Database.CollationName, Edition = model.Database.Edition == DatabaseEdition.None ? null : model.Database.Edition.ToString(), MaxSizeBytes = model.Database.MaxSizeBytes, RequestedServiceObjectiveId = model.Database.RequestedServiceObjectiveId, ElasticPoolName = model.Database.ElasticPoolName, RequestedServiceObjectiveName = model.Database.RequestedServiceObjectiveName, ReadScale = model.Database.ReadScale.ToString(), } }); return CreateDatabaseModelFromResponse(resourceGroup, serverName, resp); }
/// <summary> /// Creates or updates an Azure Sql Database with new AutoRest SDK. /// </summary> /// <param name="resourceGroup">The name of the resource group</param> /// <param name="serverName">The name of the Azure Sql Database Server</param> /// <param name="model">The input parameters for the create/update operation</param> /// <returns>The upserted Azure Sql Database from AutoRest SDK</returns> internal AzureSqlDatabaseModel UpsertDatabaseWithNewSdk(string resourceGroup, string serverName, AzureSqlDatabaseCreateOrUpdateModel model) { // Use AutoRest SDK var resp = Communicator.CreateOrUpdate(resourceGroup, serverName, model.Database.DatabaseName, new Management.Sql.Models.Database { Location = model.Database.Location, Tags = model.Database.Tags, Collation = model.Database.CollationName, Edition = model.Database.Edition == DatabaseEdition.None ? null : model.Database.Edition.ToString(), MaxSizeBytes = model.Database.MaxSizeBytes.ToString(), RequestedServiceObjectiveId = model.Database.RequestedServiceObjectiveId, ElasticPoolName = model.Database.ElasticPoolName, RequestedServiceObjectiveName = model.Database.RequestedServiceObjectiveName, ReadScale = (ReadScale)Enum.Parse(typeof(ReadScale), model.Database.ReadScale.ToString()), SampleName = model.SampleName, ZoneRedundant = model.Database.ZoneRedundant }); return CreateDatabaseModelFromResponse(resourceGroup, serverName, resp); }
/// <summary> /// Creates or updates an Azure Sql Database. /// </summary> /// <param name="resourceGroup">The name of the resource group</param> /// <param name="serverName">The name of the Azure Sql Database Server</param> /// <param name="model">The input parameters for the create/update operation</param> /// <returns>The upserted Azure Sql Database</returns> internal AzureSqlDatabaseModel UpsertDatabase(string resourceGroup, string serverName, AzureSqlDatabaseCreateOrUpdateModel model) { // Use AutoRest or Hyak SDK depending on model parameters. // This is done because we want to add support for -SampleName, which is only supported by AutoRest SDK. // Why not always use AutoRest SDK? Because it uses Azure-AsyncOperation polling, while Hyak uses // Location polling. This means that switching to AutoRest requires re-recording almost all scenario tests, // which currently is quite difficult. if (!string.IsNullOrEmpty(model.SampleName)) { // Use AutoRest SDK var resp = Communicator.CreateOrUpdate(resourceGroup, serverName, model.Database.DatabaseName, new Management.Sql.Models.Database { Location = model.Database.Location, Tags = model.Database.Tags, Collation = model.Database.CollationName, Edition = model.Database.Edition == DatabaseEdition.None ? null : model.Database.Edition.ToString(), MaxSizeBytes = model.Database.MaxSizeBytes.ToString(), RequestedServiceObjectiveId = model.Database.RequestedServiceObjectiveId, ElasticPoolName = model.Database.ElasticPoolName, RequestedServiceObjectiveName = model.Database.RequestedServiceObjectiveName, ReadScale = (ReadScale)Enum.Parse(typeof(ReadScale), model.Database.ReadScale.ToString()), SampleName = model.SampleName }); return(CreateDatabaseModelFromResponse(resourceGroup, serverName, resp)); } else { // Use Hyak SDK var resp = Communicator.CreateOrUpdate(resourceGroup, serverName, model.Database.DatabaseName, new DatabaseCreateOrUpdateParameters { Location = model.Database.Location, Tags = model.Database.Tags, Properties = new DatabaseCreateOrUpdateProperties() { Collation = model.Database.CollationName, Edition = model.Database.Edition == DatabaseEdition.None ? null : model.Database.Edition.ToString(), MaxSizeBytes = model.Database.MaxSizeBytes, RequestedServiceObjectiveId = model.Database.RequestedServiceObjectiveId, ElasticPoolName = model.Database.ElasticPoolName, RequestedServiceObjectiveName = model.Database.RequestedServiceObjectiveName, ReadScale = model.Database.ReadScale.ToString(), } }); return(CreateDatabaseModelFromResponse(resourceGroup, serverName, resp)); } }