internal static MetricSpecification DeserializeMetricSpecification(JsonElement element) { string name = default; string displayName = default; string displayDescription = default; string unit = default; string aggregationType = default; IReadOnlyList <Availability> availabilities = default; bool? enableRegionalMdmAccount = default; bool? fillGapWithZero = default; string metricFilterPattern = default; IReadOnlyList <Dimension> dimensions = default; bool? isInternal = default; string sourceMdmAccount = default; string sourceMdmNamespace = default; string resourceIdDimensionNameOverride = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("name")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } name = property.Value.GetString(); continue; } if (property.NameEquals("displayName")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } displayName = property.Value.GetString(); continue; } if (property.NameEquals("displayDescription")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } displayDescription = property.Value.GetString(); continue; } if (property.NameEquals("unit")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } unit = property.Value.GetString(); continue; } if (property.NameEquals("aggregationType")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } aggregationType = property.Value.GetString(); continue; } if (property.NameEquals("availabilities")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } List <Availability> array = new List <Availability>(); foreach (var item in property.Value.EnumerateArray()) { if (item.ValueKind == JsonValueKind.Null) { array.Add(null); } else { array.Add(Availability.DeserializeAvailability(item)); } } availabilities = array; continue; } if (property.NameEquals("enableRegionalMdmAccount")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } enableRegionalMdmAccount = property.Value.GetBoolean(); continue; } if (property.NameEquals("fillGapWithZero")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } fillGapWithZero = property.Value.GetBoolean(); continue; } if (property.NameEquals("metricFilterPattern")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } metricFilterPattern = property.Value.GetString(); continue; } if (property.NameEquals("dimensions")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } List <Dimension> array = new List <Dimension>(); foreach (var item in property.Value.EnumerateArray()) { if (item.ValueKind == JsonValueKind.Null) { array.Add(null); } else { array.Add(Dimension.DeserializeDimension(item)); } } dimensions = array; continue; } if (property.NameEquals("isInternal")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } isInternal = property.Value.GetBoolean(); continue; } if (property.NameEquals("sourceMdmAccount")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } sourceMdmAccount = property.Value.GetString(); continue; } if (property.NameEquals("sourceMdmNamespace")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } sourceMdmNamespace = property.Value.GetString(); continue; } if (property.NameEquals("resourceIdDimensionNameOverride")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } resourceIdDimensionNameOverride = property.Value.GetString(); continue; } } return(new MetricSpecification(name, displayName, displayDescription, unit, aggregationType, availabilities, enableRegionalMdmAccount, fillGapWithZero, metricFilterPattern, dimensions, isInternal, sourceMdmAccount, sourceMdmNamespace, resourceIdDimensionNameOverride)); }
internal static MetricSpecification DeserializeMetricSpecification(JsonElement element) { Optional <string> name = default; Optional <string> displayName = default; Optional <string> displayDescription = default; Optional <string> unit = default; Optional <string> aggregationType = default; Optional <IReadOnlyList <Availability> > availabilities = default; Optional <bool> enableRegionalMdmAccount = default; Optional <bool> fillGapWithZero = default; Optional <string> metricFilterPattern = default; Optional <IReadOnlyList <Dimension> > dimensions = default; Optional <bool> isInternal = default; Optional <string> sourceMdmAccount = default; Optional <string> sourceMdmNamespace = default; Optional <string> resourceIdDimensionNameOverride = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("displayName")) { displayName = property.Value.GetString(); continue; } if (property.NameEquals("displayDescription")) { displayDescription = property.Value.GetString(); continue; } if (property.NameEquals("unit")) { unit = property.Value.GetString(); continue; } if (property.NameEquals("aggregationType")) { aggregationType = property.Value.GetString(); continue; } if (property.NameEquals("availabilities")) { List <Availability> array = new List <Availability>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(Availability.DeserializeAvailability(item)); } availabilities = array; continue; } if (property.NameEquals("enableRegionalMdmAccount")) { enableRegionalMdmAccount = property.Value.GetBoolean(); continue; } if (property.NameEquals("fillGapWithZero")) { fillGapWithZero = property.Value.GetBoolean(); continue; } if (property.NameEquals("metricFilterPattern")) { metricFilterPattern = property.Value.GetString(); continue; } if (property.NameEquals("dimensions")) { List <Dimension> array = new List <Dimension>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(Dimension.DeserializeDimension(item)); } dimensions = array; continue; } if (property.NameEquals("isInternal")) { isInternal = property.Value.GetBoolean(); continue; } if (property.NameEquals("sourceMdmAccount")) { sourceMdmAccount = property.Value.GetString(); continue; } if (property.NameEquals("sourceMdmNamespace")) { sourceMdmNamespace = property.Value.GetString(); continue; } if (property.NameEquals("resourceIdDimensionNameOverride")) { resourceIdDimensionNameOverride = property.Value.GetString(); continue; } } return(new MetricSpecification(name.Value, displayName.Value, displayDescription.Value, unit.Value, aggregationType.Value, Optional.ToList(availabilities), Optional.ToNullable(enableRegionalMdmAccount), Optional.ToNullable(fillGapWithZero), metricFilterPattern.Value, Optional.ToList(dimensions), Optional.ToNullable(isInternal), sourceMdmAccount.Value, sourceMdmNamespace.Value, resourceIdDimensionNameOverride.Value)); }