internal static PredefinedTagData DeserializeTagDetails(JsonElement element) { Optional <ResourceIdentifier> id = default; Optional <string> tagName = default; Optional <PredefinedTagCount> count = default; Optional <IReadOnlyList <PredefinedTagValue> > values = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("tagName")) { tagName = property.Value.GetString(); continue; } if (property.NameEquals("count")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } count = PredefinedTagCount.DeserializeTagCount(property.Value); continue; } if (property.NameEquals("values")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <PredefinedTagValue> array = new List <PredefinedTagValue>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(PredefinedTagValue.DeserializeTagValue(item)); } values = array; continue; } } return(new PredefinedTagData(id.Value, tagName.Value, count.Value, Optional.ToList(values))); }
internal PredefinedTagValue(string id, string tagValue, PredefinedTagCount count) { Id = id; TagValue = tagValue; Count = count; }
/// <summary> Initializes a new instance of TagDetails. </summary> /// <param name="id"> The tag name ID. </param> /// <param name="tagName"> The tag name. </param> /// <param name="count"> The total number of resources that use the resource tag. When a tag is initially created and has no associated resources, the value is 0. </param> /// <param name="values"> The list of tag values. </param> internal PredefinedTagData(ResourceIdentifier id, string tagName, PredefinedTagCount count, IReadOnlyList <PredefinedTagValue> values) : base(id) { TagName = tagName; Count = count; Values = values; }