/// <summary> /// Updates an Azure Sql Database ElasticPool using Patch. /// </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 ElasticPool</returns> internal AzureSqlElasticPoolModel UpsertElasticPool(AzureSqlElasticPoolModel model) { var resp = Communicator.CreateOrUpdate(model.ResourceGroupName, model.ServerName, model.ElasticPoolName, new Management.Sql.Models.ElasticPoolUpdate { Location = model.Location, Tags = model.Tags, Sku = string.IsNullOrWhiteSpace(model.SkuName) ? null : new Sku() { Name = model.SkuName, Tier = model.Edition, Family = model.Family, Capacity = model.Capacity }, MaxSizeBytes = model.MaxSizeBytes, ZoneRedundant = model.ZoneRedundant, PerDatabaseSettings = new ElasticPoolPerDatabaseSettings() { MinCapacity = model.DatabaseCapacityMin, MaxCapacity = model.DatabaseCapacityMax }, LicenseType = model.LicenseType, MaintenanceConfigurationId = MaintenanceConfigurationHelper.ConvertMaintenanceConfigurationIdArgument(model.MaintenanceConfigurationId, Context.Subscription.Id), }); return(CreateElasticPoolModelFromResponse(model.ResourceGroupName, model.ServerName, resp)); }
/// <summary> /// Upserts a managed instance /// </summary> /// <param name="model">The managed instance to upsert</param> /// <returns>The updated managed instance model</returns> public AzureSqlManagedInstanceModel UpsertManagedInstance(AzureSqlManagedInstanceModel model) { var resp = Communicator.CreateOrUpdate(model.ResourceGroupName, model.FullyQualifiedDomainName, new Management.Sql.Models.ManagedInstance() { Location = model.Location, Tags = model.Tags, AdministratorLogin = model.AdministratorLogin, AdministratorLoginPassword = model.AdministratorPassword != null ? ConversionUtilities.SecureStringToString(model.AdministratorPassword) : null, Sku = model.Sku != null ? new Management.Sql.Models.Sku(model.Sku.Name, model.Sku.Tier) : null, LicenseType = model.LicenseType, StorageSizeInGB = model.StorageSizeInGB, SubnetId = model.SubnetId, VCores = model.VCores, Identity = model.Identity, Collation = model.Collation, PublicDataEndpointEnabled = model.PublicDataEndpointEnabled, ProxyOverride = model.ProxyOverride, TimezoneId = model.TimezoneId, DnsZonePartner = model.DnsZonePartner, InstancePoolId = model.InstancePoolName != null ? string.Format("/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Sql/instancePools/{2}", Context.Subscription.Id, model.ResourceGroupName, model.InstancePoolName) : null, MinimalTlsVersion = model.MinimalTlsVersion, StorageAccountType = MapExternalBackupStorageRedundancyToInternal(model.BackupStorageRedundancy), MaintenanceConfigurationId = MaintenanceConfigurationHelper.ConvertMaintenanceConfigurationIdArgument(model.MaintenanceConfigurationId, Context.Subscription.Id), Administrators = GetActiveDirectoryInformation(model.Administrators), PrimaryUserAssignedIdentityId = model.PrimaryUserAssignedIdentityId, KeyId = model.KeyId }); return(CreateManagedInstanceModelFromResponse(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, 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), IsLedgerOn = model.Database.EnableLedger, }); return(CreateDatabaseModelFromResponse(resourceGroup, serverName, resp)); }