Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
        /// <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));
        }