internal static AutoscaleSettingData DeserializeAutoscaleSettingData(JsonElement element) { IDictionary <string, string> tags = default; AzureLocation location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; IList <AutoscaleProfile> profiles = default; Optional <IList <AutoscaleNotification> > notifications = default; Optional <bool> enabled = default; Optional <string> name0 = default; Optional <string> targetResourceUri = default; Optional <string> targetResourceLocation = default; foreach (var property in element.EnumerateObject()) { 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 = new AzureLocation(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 = new ResourceType(property.Value.GetString()); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("profiles")) { List <AutoscaleProfile> array = new List <AutoscaleProfile>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(AutoscaleProfile.DeserializeAutoscaleProfile(item)); } profiles = array; continue; } if (property0.NameEquals("notifications")) { if (property0.Value.ValueKind == JsonValueKind.Null) { notifications = null; continue; } List <AutoscaleNotification> array = new List <AutoscaleNotification>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(AutoscaleNotification.DeserializeAutoscaleNotification(item)); } notifications = array; continue; } if (property0.NameEquals("enabled")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } enabled = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("name")) { name0 = property0.Value.GetString(); continue; } if (property0.NameEquals("targetResourceUri")) { targetResourceUri = property0.Value.GetString(); continue; } if (property0.NameEquals("targetResourceLocation")) { targetResourceLocation = property0.Value.GetString(); continue; } } continue; } } return(new AutoscaleSettingData(id, name, type, systemData, tags, location, profiles, Optional.ToList(notifications), Optional.ToNullable(enabled), name0.Value, targetResourceUri.Value, targetResourceLocation.Value)); }
public void AddAutoscaleSettingCommandParametersProcessing() { var spec = this.CreateCompleteSpec(location: "East US", name: "SettingName", profiles: null); var autoscaleRules = new List <ScaleRule> { this.CreateAutoscaleRule("IncommingReq") }; var autoscaleProfile = new List <AutoscaleProfile> { this.CreateAutoscaleProfile(autoscaleRules: autoscaleRules, fixedDate: true) }; // Testing with a complete spec as parameter (Update semantics) // Add-AutoscaleSetting -SettingSpec <AutoscaleSettingResource> -ResourceGroup <String> [-DisableSetting [<SwitchParameter>]] [-AutoscaleProfiles <List[AutoscaleProfile]>] [-Profile <AzureSMProfile>] [<CommonParameters>] // Add-AutoscaleSetting -SettingSpec $spec -ResourceGroup $Utilities.ResourceGroup // A NOP cmdlet.SettingSpec = spec; cmdlet.ResourceGroup = Utilities.ResourceGroup; cmdlet.ExecuteCmdlet(); Assert.Equal(Utilities.ResourceGroup, this.resourceGroup); Assert.Equal("SettingName", this.settingName); Assert.NotNull(this.createOrUpdatePrms); // Add-AutoscaleSetting -SettingSpec <AutoscaleSettingResource> -ResourceGroup <String> [-DisableSetting [<SwitchParameter>]] [-AutoscaleProfiles <List[AutoscaleProfile]>] [-Profile <AzureSMProfile>] [<CommonParameters>] // Add-AutoscaleSetting -SettingSpec $spec -ResourceGroup $Utilities.ResourceGroup -DisableSetting // Disable the setting cmdlet.DisableSetting = true; cmdlet.ExecuteCmdlet(); Assert.Equal(Utilities.ResourceGroup, this.resourceGroup); Assert.Equal("SettingName", this.settingName); Assert.NotNull(this.createOrUpdatePrms); // Add-AutoscaleSetting -SettingSpec <AutoscaleSettingResource> -ResourceGroup <String> [-DisableSetting [<SwitchParameter>]] [-AutoscaleProfiles <List[AutoscaleProfile]>] [-Profile <AzureSMProfile>] [<CommonParameters>] // Adding a profile cmdlet.AutoscaleProfiles = autoscaleProfile; cmdlet.ExecuteCmdlet(); // Add-AutoscaleSetting -Location <String> -Name <String> -ResourceGroup <String> [-DisableSetting [<SwitchParameter>]] [-AutoscaleProfiles <List[AutoscaleProfile]>] -TargetResourceId <String> [-Profile <AzureSMProfile>] [<CommonParameters>] cmdlet.SettingSpec = null; cmdlet.Name = "SettingName"; cmdlet.Location = "East US"; cmdlet.ResourceGroup = Utilities.ResourceGroup; cmdlet.TargetResourceId = Utilities.ResourceUri; cmdlet.ExecuteCmdlet(); var eMailNotification = new EmailNotification { CustomEmails = null, }; var notification = new AutoscaleNotification { Email = eMailNotification, Webhooks = null }; cmdlet.Notifications = new List <AutoscaleNotification> { notification }; cmdlet.ExecuteCmdlet(); }
static public Management.Monitor.Management.Models.AutoscaleNotification ConvertNamespace(AutoscaleNotification inputObject) { return(new Management.Monitor.Management.Models.AutoscaleNotification(inputObject)); }