/// <summary> /// Construct AzureSqlDatabaseModel from Management.Sql.LegacySdk.Models.Database object /// </summary> /// <param name="resourceGroup">Resource group</param> /// <param name="serverName">Server name</param> /// <param name="database">Database object</param> public AzureSqlDatabaseModel(string resourceGroup, string serverName, Management.Sql.Models.Database database) { DatabaseEdition edition = DatabaseEdition.None; DatabaseReadScale readScale = DatabaseReadScale.Enabled; ResourceGroupName = resourceGroup; ServerName = serverName; CollationName = database.Collation; CreationDate = database.CreationDate.Value; CurrentServiceObjectiveName = database.ServiceLevelObjective; MaxSizeBytes = long.Parse(database.MaxSizeBytes); DatabaseName = database.Name; Status = database.Status; Tags = TagsConversionHelper.CreateTagDictionary(TagsConversionHelper.CreateTagHashtable(database.Tags), false); ElasticPoolName = database.ElasticPoolName; Location = database.Location; ResourceId = database.Id; CreateMode = database.CreateMode; EarliestRestoreDate = database.EarliestRestoreDate; CurrentServiceObjectiveId = database.CurrentServiceObjectiveId.Value; DatabaseId = database.DatabaseId.Value; Enum.TryParse <DatabaseEdition>(database.Edition, true, out edition); Edition = edition; RequestedServiceObjectiveId = database.RequestedServiceObjectiveId.Value; Enum.TryParse <DatabaseReadScale>(database.ReadScale.ToString(), true, out readScale); ReadScale = readScale; }
/// <summary> /// Construct AzureSqlDatabaseModel from Management.Sql.Database object /// </summary> /// <param name="resourceGroup">Resource group</param> /// <param name="serverName">Server name</param> /// <param name="database">Database object</param> public AzureSqlDatabaseModel(string resourceGroup, string serverName, Management.Sql.Models.Database database) { DatabaseReadScale readScale = DatabaseReadScale.Enabled; ResourceGroupName = resourceGroup; ServerName = serverName; CollationName = database.Collation; CreationDate = database.CreationDate.Value; MaxSizeBytes = (long)database.MaxSizeBytes; DatabaseName = database.Name; Status = database.Status; Tags = TagsConversionHelper.CreateTagDictionary(TagsConversionHelper.CreateTagHashtable(database.Tags), false); ElasticPoolName = database.ElasticPoolName; Location = database.Location; ResourceId = database.Id; CreateMode = database.CreateMode; EarliestRestoreDate = database.EarliestRestoreDate; CurrentServiceObjectiveName = database.CurrentServiceObjectiveName; DatabaseId = database.DatabaseId.Value; Edition = database.Edition; RequestedServiceObjectiveName = database.RequestedServiceObjectiveName; Enum.TryParse <DatabaseReadScale>(database.ReadScale.ToString(), true, out readScale); ReadScale = readScale; ZoneRedundant = database.ZoneRedundant; Capacity = database.Sku == null ? (int?)null : database.Sku.Capacity; Family = database.Sku == null ? null : database.Sku.Family; SkuName = database.Sku == null ? null : database.Sku.Name; LicenseType = database.LicenseType; AutoPauseDelayInMinutes = database.AutoPauseDelay; MinimumCapacity = database.MinCapacity; }
/// <summary> /// Construct AzureSqlDatabaseModel from Management.Sql.LegacySdk.Models.Database object /// </summary> /// <param name="resourceGroup">Resource group</param> /// <param name="serverName">Server name</param> /// <param name="database">Database object</param> public AzureSqlDatabaseModel(string resourceGroup, string serverName, Management.Sql.LegacySdk.Models.Database database) { Guid id = Guid.Empty; DatabaseEdition edition = DatabaseEdition.None; DatabaseReadScale readScale = DatabaseReadScale.Enabled; ResourceGroupName = resourceGroup; ServerName = serverName; CollationName = database.Properties.Collation; CreationDate = database.Properties.CreationDate; CurrentServiceObjectiveName = database.Properties.ServiceObjective; MaxSizeBytes = database.Properties.MaxSizeBytes; DatabaseName = database.Name; Status = database.Properties.Status; Tags = TagsConversionHelper.CreateTagDictionary(TagsConversionHelper.CreateTagHashtable(database.Tags), false); ElasticPoolName = database.Properties.ElasticPoolName; Location = database.Location; ResourceId = database.Id; CreateMode = database.Properties.CreateMode; EarliestRestoreDate = database.Properties.EarliestRestoreDate; Guid.TryParse(database.Properties.CurrentServiceObjectiveId, out id); CurrentServiceObjectiveId = id; Guid.TryParse(database.Properties.DatabaseId, out id); DatabaseId = id; Enum.TryParse <DatabaseEdition>(database.Properties.Edition, true, out edition); Edition = edition; Guid.TryParse(database.Properties.RequestedServiceObjectiveId, out id); RequestedServiceObjectiveId = id; Enum.TryParse <DatabaseReadScale>(database.Properties.ReadScale, true, out readScale); ReadScale = readScale; ZoneRedundant = false; }
internal static SqlDatabaseData DeserializeSqlDatabaseData(JsonElement element) { Optional <Models.Sku> sku = default; Optional <string> kind = default; Optional <string> managedBy = default; IDictionary <string, string> tags = default; Location location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; Optional <CreateMode> createMode = default; Optional <string> collation = default; Optional <long> maxSizeBytes = default; Optional <SampleSchemaName> sampleName = default; Optional <string> elasticPoolId = default; Optional <string> sourceDatabaseId = default; Optional <DatabaseStatus> status = default; Optional <Guid> databaseId = default; Optional <DateTimeOffset> creationDate = default; Optional <string> currentServiceObjectiveName = default; Optional <string> requestedServiceObjectiveName = default; Optional <string> defaultSecondaryLocation = default; Optional <string> failoverGroupId = default; Optional <DateTimeOffset> restorePointInTime = default; Optional <DateTimeOffset> sourceDatabaseDeletionDate = default; Optional <string> recoveryServicesRecoveryPointId = default; Optional <string> longTermRetentionBackupResourceId = default; Optional <string> recoverableDatabaseId = default; Optional <string> restorableDroppedDatabaseId = default; Optional <CatalogCollationType> catalogCollation = default; Optional <bool> zoneRedundant = default; Optional <DatabaseLicenseType> licenseType = default; Optional <long> maxLogSizeBytes = default; Optional <DateTimeOffset> earliestRestoreDate = default; Optional <DatabaseReadScale> readScale = default; Optional <int> highAvailabilityReplicaCount = default; Optional <SecondaryType> secondaryType = default; Optional <Models.Sku> currentSku = default; Optional <int> autoPauseDelay = default; Optional <CurrentBackupStorageRedundancy> currentBackupStorageRedundancy = default; Optional <RequestedBackupStorageRedundancy> requestedBackupStorageRedundancy = default; Optional <double> minCapacity = default; Optional <DateTimeOffset> pausedDate = default; Optional <DateTimeOffset> resumedDate = default; Optional <string> maintenanceConfigurationId = default; Optional <bool> isLedgerOn = default; Optional <bool> isInfraEncryptionEnabled = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("sku")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } sku = Models.Sku.DeserializeSku(property.Value); continue; } if (property.NameEquals("kind")) { kind = property.Value.GetString(); continue; } if (property.NameEquals("managedBy")) { managedBy = property.Value.GetString(); continue; } if (property.NameEquals("tags")) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("createMode")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } createMode = new CreateMode(property0.Value.GetString()); continue; } if (property0.NameEquals("collation")) { collation = property0.Value.GetString(); continue; } if (property0.NameEquals("maxSizeBytes")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } maxSizeBytes = property0.Value.GetInt64(); continue; } if (property0.NameEquals("sampleName")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } sampleName = new SampleSchemaName(property0.Value.GetString()); continue; } if (property0.NameEquals("elasticPoolId")) { elasticPoolId = property0.Value.GetString(); continue; } if (property0.NameEquals("sourceDatabaseId")) { sourceDatabaseId = property0.Value.GetString(); continue; } if (property0.NameEquals("status")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } status = new DatabaseStatus(property0.Value.GetString()); continue; } if (property0.NameEquals("databaseId")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } databaseId = property0.Value.GetGuid(); continue; } if (property0.NameEquals("creationDate")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } creationDate = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("currentServiceObjectiveName")) { currentServiceObjectiveName = property0.Value.GetString(); continue; } if (property0.NameEquals("requestedServiceObjectiveName")) { requestedServiceObjectiveName = property0.Value.GetString(); continue; } if (property0.NameEquals("defaultSecondaryLocation")) { defaultSecondaryLocation = property0.Value.GetString(); continue; } if (property0.NameEquals("failoverGroupId")) { failoverGroupId = property0.Value.GetString(); continue; } if (property0.NameEquals("restorePointInTime")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } restorePointInTime = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("sourceDatabaseDeletionDate")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } sourceDatabaseDeletionDate = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("recoveryServicesRecoveryPointId")) { recoveryServicesRecoveryPointId = property0.Value.GetString(); continue; } if (property0.NameEquals("longTermRetentionBackupResourceId")) { longTermRetentionBackupResourceId = property0.Value.GetString(); continue; } if (property0.NameEquals("recoverableDatabaseId")) { recoverableDatabaseId = property0.Value.GetString(); continue; } if (property0.NameEquals("restorableDroppedDatabaseId")) { restorableDroppedDatabaseId = property0.Value.GetString(); continue; } if (property0.NameEquals("catalogCollation")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } catalogCollation = new CatalogCollationType(property0.Value.GetString()); continue; } if (property0.NameEquals("zoneRedundant")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } zoneRedundant = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("licenseType")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } licenseType = new DatabaseLicenseType(property0.Value.GetString()); continue; } if (property0.NameEquals("maxLogSizeBytes")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } maxLogSizeBytes = property0.Value.GetInt64(); continue; } if (property0.NameEquals("earliestRestoreDate")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } earliestRestoreDate = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("readScale")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } readScale = new DatabaseReadScale(property0.Value.GetString()); continue; } if (property0.NameEquals("highAvailabilityReplicaCount")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } highAvailabilityReplicaCount = property0.Value.GetInt32(); continue; } if (property0.NameEquals("secondaryType")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } secondaryType = new SecondaryType(property0.Value.GetString()); continue; } if (property0.NameEquals("currentSku")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } currentSku = Models.Sku.DeserializeSku(property0.Value); continue; } if (property0.NameEquals("autoPauseDelay")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } autoPauseDelay = property0.Value.GetInt32(); continue; } if (property0.NameEquals("currentBackupStorageRedundancy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } currentBackupStorageRedundancy = new CurrentBackupStorageRedundancy(property0.Value.GetString()); continue; } if (property0.NameEquals("requestedBackupStorageRedundancy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } requestedBackupStorageRedundancy = new RequestedBackupStorageRedundancy(property0.Value.GetString()); continue; } if (property0.NameEquals("minCapacity")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } minCapacity = property0.Value.GetDouble(); continue; } if (property0.NameEquals("pausedDate")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } pausedDate = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("resumedDate")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } resumedDate = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("maintenanceConfigurationId")) { maintenanceConfigurationId = property0.Value.GetString(); continue; } if (property0.NameEquals("isLedgerOn")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } isLedgerOn = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("isInfraEncryptionEnabled")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } isInfraEncryptionEnabled = property0.Value.GetBoolean(); continue; } } continue; } } return(new SqlDatabaseData(id, name, type, tags, location, sku.Value, kind.Value, managedBy.Value, Optional.ToNullable(createMode), collation.Value, Optional.ToNullable(maxSizeBytes), Optional.ToNullable(sampleName), elasticPoolId.Value, sourceDatabaseId.Value, Optional.ToNullable(status), Optional.ToNullable(databaseId), Optional.ToNullable(creationDate), currentServiceObjectiveName.Value, requestedServiceObjectiveName.Value, defaultSecondaryLocation.Value, failoverGroupId.Value, Optional.ToNullable(restorePointInTime), Optional.ToNullable(sourceDatabaseDeletionDate), recoveryServicesRecoveryPointId.Value, longTermRetentionBackupResourceId.Value, recoverableDatabaseId.Value, restorableDroppedDatabaseId.Value, Optional.ToNullable(catalogCollation), Optional.ToNullable(zoneRedundant), Optional.ToNullable(licenseType), Optional.ToNullable(maxLogSizeBytes), Optional.ToNullable(earliestRestoreDate), Optional.ToNullable(readScale), Optional.ToNullable(highAvailabilityReplicaCount), Optional.ToNullable(secondaryType), currentSku.Value, Optional.ToNullable(autoPauseDelay), Optional.ToNullable(currentBackupStorageRedundancy), Optional.ToNullable(requestedBackupStorageRedundancy), Optional.ToNullable(minCapacity), Optional.ToNullable(pausedDate), Optional.ToNullable(resumedDate), maintenanceConfigurationId.Value, Optional.ToNullable(isLedgerOn), Optional.ToNullable(isInfraEncryptionEnabled))); }