internal DynamicMetricCriteria(CriterionType criterionType, string name, string metricName, string metricNamespace, AggregationTypeEnum timeAggregation, IList <MetricDimension> dimensions, bool?skipMetricValidation, IDictionary <string, BinaryData> additionalProperties, DynamicThresholdOperator @operator, DynamicThresholdSensitivity alertSensitivity, DynamicThresholdFailingPeriods failingPeriods, DateTimeOffset?ignoreDataBefore) : base(criterionType, name, metricName, metricNamespace, timeAggregation, dimensions, skipMetricValidation, additionalProperties) { Operator = @operator; AlertSensitivity = alertSensitivity; FailingPeriods = failingPeriods; IgnoreDataBefore = ignoreDataBefore; CriterionType = criterionType; }
public DynamicMetricCriteria(string name, string metricName, AggregationTypeEnum timeAggregation, DynamicThresholdOperator @operator, DynamicThresholdSensitivity alertSensitivity, DynamicThresholdFailingPeriods failingPeriods) : base(name, metricName, timeAggregation) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (metricName == null) { throw new ArgumentNullException(nameof(metricName)); } if (failingPeriods == null) { throw new ArgumentNullException(nameof(failingPeriods)); } Operator = @operator; AlertSensitivity = alertSensitivity; FailingPeriods = failingPeriods; CriterionType = CriterionType.DynamicThresholdCriterion; }
internal static DynamicMetricCriteria DeserializeDynamicMetricCriteria(JsonElement element) { DynamicThresholdOperator @operator = default; DynamicThresholdSensitivity alertSensitivity = default; DynamicThresholdFailingPeriods failingPeriods = default; Optional <DateTimeOffset> ignoreDataBefore = default; CriterionType criterionType = default; string name = default; string metricName = default; Optional <string> metricNamespace = default; AggregationTypeEnum timeAggregation = default; Optional <IList <MetricDimension> > dimensions = default; Optional <bool> skipMetricValidation = default; IDictionary <string, BinaryData> additionalProperties = default; Dictionary <string, BinaryData> additionalPropertiesDictionary = new Dictionary <string, BinaryData>(); foreach (var property in element.EnumerateObject()) { if (property.NameEquals("operator")) { @operator = new DynamicThresholdOperator(property.Value.GetString()); continue; } if (property.NameEquals("alertSensitivity")) { alertSensitivity = new DynamicThresholdSensitivity(property.Value.GetString()); continue; } if (property.NameEquals("failingPeriods")) { failingPeriods = DynamicThresholdFailingPeriods.DeserializeDynamicThresholdFailingPeriods(property.Value); continue; } if (property.NameEquals("ignoreDataBefore")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } ignoreDataBefore = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("criterionType")) { criterionType = new CriterionType(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("metricName")) { metricName = property.Value.GetString(); continue; } if (property.NameEquals("metricNamespace")) { metricNamespace = property.Value.GetString(); continue; } if (property.NameEquals("timeAggregation")) { timeAggregation = new AggregationTypeEnum(property.Value.GetString()); continue; } if (property.NameEquals("dimensions")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <MetricDimension> array = new List <MetricDimension>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(MetricDimension.DeserializeMetricDimension(item)); } dimensions = array; continue; } if (property.NameEquals("skipMetricValidation")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } skipMetricValidation = property.Value.GetBoolean(); continue; } additionalPropertiesDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText())); } additionalProperties = additionalPropertiesDictionary; return(new DynamicMetricCriteria(criterionType, name, metricName, metricNamespace.Value, timeAggregation, Optional.ToList(dimensions), Optional.ToNullable(skipMetricValidation), additionalProperties, @operator, alertSensitivity, failingPeriods, Optional.ToNullable(ignoreDataBefore))); }