diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/README.md b/sdk/metricsadvisor/azure-ai-metricsadvisor/README.md index 6dca6bc7ea64..e80f0d052046 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/README.md +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/README.md @@ -182,12 +182,12 @@ DataFeed dataFeed = new DataFeed() .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setSchema(new DataFeedSchema( Arrays.asList( - new DataFeedMetric().setName("cost"), - new DataFeedMetric().setName("revenue") + new DataFeedMetric("cost"), + new DataFeedMetric("revenue") )).setDimensions( Arrays.asList( - new DataFeedDimension().setName("city"), - new DataFeedDimension().setName("category") + new DataFeedDimension("city"), + new DataFeedDimension("category") )) ) .setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z"))) @@ -239,22 +239,22 @@ This example demonstrates how a user can configure an anomaly detection configur ```java String metricId = "3d48er30-6e6e-4391-b78f-b00dfee1e6f5"; -ChangeThresholdCondition changeThresholdCondition = new ChangeThresholdCondition() - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setChangePercentage(20) - .setShiftPoint(10) - .setWithinRange(true) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(2)); - -HardThresholdCondition hardThresholdCondition = new HardThresholdCondition() - .setAnomalyDetectorDirection(AnomalyDetectorDirection.DOWN) - .setLowerBound(5.0) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(1)); - -SmartDetectionCondition smartDetectionCondition = new SmartDetectionCondition() - .setAnomalyDetectorDirection(AnomalyDetectorDirection.UP) - .setSensitivity(10.0) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(2)); +ChangeThresholdCondition changeThresholdCondition = new ChangeThresholdCondition( + 20, + 10, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 2)); + +HardThresholdCondition hardThresholdCondition = new HardThresholdCondition( + AnomalyDetectorDirection.DOWN, + new SuppressCondition(1, 1)) + .setLowerBound(5.0); + +SmartDetectionCondition smartDetectionCondition = new SmartDetectionCondition( + 10.0, + AnomalyDetectorDirection.UP, + new SuppressCondition(1, 2)); final AnomalyDetectionConfiguration anomalyDetectionConfiguration = metricsAdvisorAdminClient.createMetricAnomalyDetectionConfig( diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/MetricsAdvisorAsyncClient.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/MetricsAdvisorAsyncClient.java index c7284b842edc..d97666070e52 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/MetricsAdvisorAsyncClient.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/MetricsAdvisorAsyncClient.java @@ -610,7 +610,7 @@ PagedFlux listMetricEnrichedSeriesData(String detectio * Fetch the anomalies identified by an anomaly detection configuration. * *

Code sample

- * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime} + * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime} * * @param detectionConfigurationId The anomaly detection configuration id. * @param startTime The start time of the time range within which the anomalies were detected. @@ -624,17 +624,17 @@ PagedFlux listMetricEnrichedSeriesData(String detectio * or {@code startTime} or {@code endTime} is null. */ @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listAnomaliesForDetectionConfiguration( + public PagedFlux listAnomaliesForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) { - return listAnomaliesForDetectionConfiguration(detectionConfigurationId, startTime, endTime, null); + return listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime, null); } /** * Fetch the anomalies identified by an anomaly detection configuration. * *

Code sample

- * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions} + * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions} * * @param detectionConfigurationId The anomaly detection configuration id. * @param startTime The start time of the time range within which the anomalies were detected. @@ -649,7 +649,7 @@ public PagedFlux listAnomaliesForDetectionConfiguration( * or {@code startTime} or {@code endTime} is null. */ @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listAnomaliesForDetectionConfiguration( + public PagedFlux listAnomaliesForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListAnomaliesDetectedOptions options) { try { @@ -665,7 +665,7 @@ public PagedFlux listAnomaliesForDetectionConfiguration( } } - PagedFlux listAnomaliesForDetectionConfiguration( + PagedFlux listAnomaliesForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListAnomaliesDetectedOptions options, Context context) { return new PagedFlux<>(() -> @@ -753,7 +753,7 @@ private Mono> listAnomaliesForDetectionConfigNex * Fetch the incidents identified by an anomaly detection configuration. * *

Code sample

- * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime} + * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime} * * @param detectionConfigurationId The anomaly detection configuration id. * @param startTime The start time of the time range within which the incidents were detected. @@ -765,17 +765,17 @@ private Mono> listAnomaliesForDetectionConfigNex * or {@code startTime} or {@code endTime} is null. */ @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listIncidentsForDetectionConfiguration( + public PagedFlux listIncidentsForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) { - return listIncidentsForDetectionConfiguration(detectionConfigurationId, startTime, endTime, null); + return listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime, null); } /** * Fetch the incidents identified by an anomaly detection configuration. * *

Code sample

- * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions} + * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions} * * @param detectionConfigurationId The anomaly detection configuration id. * @param startTime The start time of the time range within which the incidents were detected. @@ -788,7 +788,7 @@ public PagedFlux listIncidentsForDetectionConfiguration( * or {@code startTime} or {@code endTime} is null. */ @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listIncidentsForDetectionConfiguration( + public PagedFlux listIncidentsForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListIncidentsDetectedOptions options) { try { @@ -805,7 +805,7 @@ public PagedFlux listIncidentsForDetectionConfiguration( } } - PagedFlux listIncidentsForDetectionConfiguration( + PagedFlux listIncidentsForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListIncidentsDetectedOptions options, Context context) { return new PagedFlux<>(() -> diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/MetricsAdvisorClient.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/MetricsAdvisorClient.java index 29987ab491ce..2e46f56e1430 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/MetricsAdvisorClient.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/MetricsAdvisorClient.java @@ -272,7 +272,7 @@ public PagedIterable listMetricEnrichedSeriesData( * Fetch the anomalies identified by an anomaly detection configuration. * *

Code sample

- * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime} + * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime} * * @param detectionConfigurationId The anomaly detection configuration id. * @param startTime The start time of the time range within which the anomalies were detected. @@ -285,16 +285,16 @@ public PagedIterable listMetricEnrichedSeriesData( * {@code startTime} or {@code endTime} is null. */ @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedIterable listAnomaliesForDetectionConfiguration( + public PagedIterable listAnomaliesForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) { - return listAnomaliesForDetectionConfiguration(detectionConfigurationId, startTime, endTime, null, Context.NONE); + return listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime, null, Context.NONE); } /** * Fetch the anomalies identified by an anomaly detection configuration. * *

Code sample

- * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions-Context} + * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions-Context} * * @param detectionConfigurationId The anomaly detection configuration id. * @param startTime The start time of the time range within which the anomalies were detected. @@ -309,10 +309,10 @@ public PagedIterable listAnomaliesForDetectionConfiguration( * {@code endTime} is null. */ @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedIterable listAnomaliesForDetectionConfiguration( + public PagedIterable listAnomaliesForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListAnomaliesDetectedOptions options, Context context) { - return new PagedIterable<>(client.listAnomaliesForDetectionConfiguration(detectionConfigurationId, + return new PagedIterable<>(client.listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime, options, @@ -323,7 +323,7 @@ public PagedIterable listAnomaliesForDetectionConfiguration( * Fetch the incidents identified by an anomaly detection configuration. * *

Code sample

- * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime} + * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime} * * @param detectionConfigurationId The anomaly detection configuration id. * @param startTime The start time of the time range within which the incidents were detected. @@ -335,16 +335,16 @@ public PagedIterable listAnomaliesForDetectionConfiguration( * or {@code startTime} or {@code endTime} is null. */ @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedIterable listIncidentsForDetectionConfiguration( + public PagedIterable listIncidentsForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) { - return listIncidentsForDetectionConfiguration(detectionConfigurationId, startTime, endTime, null, Context.NONE); + return listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime, null, Context.NONE); } /** * Fetch the incidents identified by an anomaly detection configuration. * *

Code sample

- * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions-Context} + * {@codesnippet com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions-Context} * * @param detectionConfigurationId The anomaly detection configuration id. * @param startTime The start time of the time range within which the incidents were detected. @@ -358,10 +358,10 @@ public PagedIterable listIncidentsForDetectionConfiguration( * {@code endTime} is null. */ @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedIterable listIncidentsForDetectionConfiguration( + public PagedIterable listIncidentsForDetectionConfig( String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListIncidentsDetectedOptions options, Context context) { - return new PagedIterable<>(client.listIncidentsForDetectionConfiguration(detectionConfigurationId, + return new PagedIterable<>(client.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime, options, context == null ? Context.NONE : context)); } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationAsyncClient.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationAsyncClient.java index 2fc9ea505ace..cad956aece59 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationAsyncClient.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationAsyncClient.java @@ -189,8 +189,8 @@ Mono> createDataFeedWithResponse(DataFeed dataFeed, Context c .setGranularityName(Granularity.fromString(dataFeedGranularity.getGranularityType() == null ? null : dataFeedGranularity.getGranularityType().toString())) .setGranularityAmount(dataFeedGranularity.getCustomGranularityValue()) - .setDimension(dataFeedSchema.getDimensions()) - .setMetrics(dataFeedSchema.getMetrics()) + .setDimension(DataFeedTransforms.toInnerDimensionsListForCreate(dataFeedSchema.getDimensions())) + .setMetrics(DataFeedTransforms.toInnerMetricsListForCreate(dataFeedSchema.getMetrics())) .setTimestampColumn(dataFeedSchema.getTimestampColumn()) .setDataStartFrom(dataFeedIngestionSettings.getIngestionStartTime()) .setStartOffsetInSeconds(dataFeedIngestionSettings.getIngestionStartOffset() == null diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/ChangeThresholdCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/ChangeThresholdCondition.java index 766adb156073..192aa6574760 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/ChangeThresholdCondition.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/ChangeThresholdCondition.java @@ -1,145 +1,154 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Code generated by Microsoft (R) AutoRest Code Generator. package com.azure.ai.metricsadvisor.administration.models; import com.azure.core.annotation.Fluent; -import com.fasterxml.jackson.annotation.JsonProperty; -/** The ChangeThresholdCondition model. */ +/** + * Type that describes change-threshold parameters. In change-threshold mode, metrics advisor watch for + * any data points that changes over a change percentage compared to the previous data points and detect + * such data points as anomalies. + */ @Fluent public final class ChangeThresholdCondition { - /* - * change percentage, value range : [0, +∞) - */ - @JsonProperty(value = "changePercentage", required = true) - private double changePercentage; - - /* - * shift point, value range : [1, +∞) - */ - @JsonProperty(value = "shiftPoint", required = true) - private int shiftPoint; - - /* - * if the withinRange = true, detected data is abnormal when the value - * falls in the range, in this case anomalyDetectorDirection must be Both - * if the withinRange = false, detected data is abnormal when the value - * falls out of the range - */ - @JsonProperty(value = "withinRange", required = true) - private boolean withinRange; - - /* - * detection direction - */ - @JsonProperty(value = "anomalyDetectorDirection", required = true) + private Double changePercentage; + private Integer shiftPoint; + private Boolean isWithinRange; private AnomalyDetectorDirection anomalyDetectorDirection; + private SuppressCondition suppressCondition; - /* - * The suppressCondition property. + /** + * Create an instance of ChangeThresholdCondition describing how to identify anomalies using + * change-threshold mode. + * + * @param changePercentage the percentage of change that will considered as an anomaly, + * the data point will be compared with previously captured data points + * for computing the change. + * @param shiftPoint the number of data points that detector should look back for comparison. + * @param isWithinRage when set to true, data point is an anomaly when the value falls in the range; + * in this case, detectorDirection must be Both. When set false, the data point + * is an anomaly when the value falls out of the range. + * @param detectorDirection must be {@link AnomalyDetectorDirection#BOTH} when {@code isWithinRage} is true. + * When {@code isWithinRage} is false, An {@link AnomalyDetectorDirection#UP} value indicates that + * the data point should be considered as an anomaly, if its changes (compared to previous data points) + * more than the {@code changePercentage}. {@link AnomalyDetectorDirection#DOWN} value means a data point + * should be considered as anomaly, if the change (compared to previous data points) falls below negated + * {@code changePercentage} value. + * @param suppressCondition the condition to aggregate the anomaly detection reporting, + * suppressing the reporting of individual anomalies helps to avoid noises, especially if the metrics + * have fine granularity. */ - @JsonProperty(value = "suppressCondition", required = true) - private SuppressCondition suppressCondition; + public ChangeThresholdCondition(double changePercentage, + int shiftPoint, + boolean isWithinRage, + AnomalyDetectorDirection detectorDirection, + SuppressCondition suppressCondition) { + this.changePercentage = changePercentage; + this.shiftPoint = shiftPoint; + this.isWithinRange = isWithinRage; + this.anomalyDetectorDirection = detectorDirection; + this.suppressCondition = suppressCondition; + } /** - * Get the changePercentage property: change percentage, value range : [0, +∞). + * Gets the percentage of change that will consider a data point as an anomaly. * - * @return the changePercentage value. + * @return the change percentage value. */ - public double getChangePercentage() { - return this.changePercentage; + public Double getChangePercentage() { + return changePercentage; } /** - * Set the changePercentage property: change percentage, value range : [0, +∞). + * Gets the number of data points that detector should look back for comparison. * - * @param changePercentage the changePercentage value to set. - * @return the ChangeThresholdCondition object itself. + * @return the shift point value. */ - public ChangeThresholdCondition setChangePercentage(double changePercentage) { - this.changePercentage = changePercentage; - return this; + public Integer getShiftPoint() { + return shiftPoint; } /** - * Get the shiftPoint property: shift point, value range : [1, +∞). + * Gets the flag indicating whether the data point falls within or out of the range is considered as anomaly. * - * @return the shiftPoint value. + * @return the withinRange value. */ - public int getShiftPoint() { - return this.shiftPoint; + public Boolean isWithinRange() { + return isWithinRange; } /** - * Set the shiftPoint property: shift point, value range : [1, +∞). + * Gets the direction that detector should use when comparing the data point change with change threshold. * - * @param shiftPoint the shiftPoint value to set. - * @return the ChangeThresholdCondition object itself. + * @return the detector direction. */ - public ChangeThresholdCondition setShiftPoint(int shiftPoint) { - this.shiftPoint = shiftPoint; - return this; + public AnomalyDetectorDirection getAnomalyDetectorDirection() { + return anomalyDetectorDirection; } /** - * Get the withinRange property: if the withinRange = true, detected data is abnormal when the value falls in the - * range, in this case anomalyDetectorDirection must be Both if the withinRange = false, detected data is abnormal - * when the value falls out of the range. + * Gets the suppress condition. * - * @return the withinRange value. + * @return the suppress condition value. */ - public boolean isWithinRange() { - return this.withinRange; + public SuppressCondition getSuppressCondition() { + return suppressCondition; } /** - * Set the withinRange property: if the withinRange = true, detected data is abnormal when the value falls in the - * range, in this case anomalyDetectorDirection must be Both if the withinRange = false, detected data is abnormal - * when the value falls out of the range. + * Sets the percentage of change that will consider a data point as an anomaly. + * + * @param changePercentage the change percentage value. * - * @param withinRange the withinRange value to set. * @return the ChangeThresholdCondition object itself. */ - public ChangeThresholdCondition setWithinRange(boolean withinRange) { - this.withinRange = withinRange; + public ChangeThresholdCondition setChangePercentage(Double changePercentage) { + this.changePercentage = changePercentage; return this; } /** - * Get the anomalyDetectorDirection property: detection direction. + * Sets the number of data points that detector should look back for comparison. * - * @return the anomalyDetectorDirection value. + * @param shiftPoint the shift point value. + * + * @return the ChangeThresholdCondition object itself. */ - public AnomalyDetectorDirection getAnomalyDetectorDirection() { - return this.anomalyDetectorDirection; + public ChangeThresholdCondition setShiftPoint(Integer shiftPoint) { + this.shiftPoint = shiftPoint; + return this; } /** - * Set the anomalyDetectorDirection property: detection direction. + * Sets the flag indicating whether the data point falls within or out of the range is considered as anomaly. + * + * @param withinRange the withinRange value. * - * @param anomalyDetectorDirection the anomalyDetectorDirection value to set. * @return the ChangeThresholdCondition object itself. */ - public ChangeThresholdCondition setAnomalyDetectorDirection(AnomalyDetectorDirection anomalyDetectorDirection) { - this.anomalyDetectorDirection = anomalyDetectorDirection; + public ChangeThresholdCondition setWithinRage(Boolean withinRange) { + this.isWithinRange = withinRange; return this; } /** - * Get the suppressCondition property: The suppressCondition property. + * Sets the direction that detector should use when comparing the data point change with change threshold. + * + * @param detectorDirection the detector direction * - * @return the suppressCondition value. + * @return the ChangeThresholdCondition object itself. */ - public SuppressCondition getSuppressCondition() { - return this.suppressCondition; + public ChangeThresholdCondition setAnomalyDetectorDirection(AnomalyDetectorDirection detectorDirection) { + this.anomalyDetectorDirection = detectorDirection; + return this; } /** - * Set the suppressCondition property: The suppressCondition property. + * Sets the suppress condition. + * + * @param suppressCondition the suppress condition * - * @param suppressCondition the suppressCondition value to set. * @return the ChangeThresholdCondition object itself. */ public ChangeThresholdCondition setSuppressCondition(SuppressCondition suppressCondition) { diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedDimension.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedDimension.java index 5888a5b7600a..a6ec452783f6 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedDimension.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedDimension.java @@ -1,64 +1,53 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Code generated by Microsoft (R) AutoRest Code Generator. package com.azure.ai.metricsadvisor.administration.models; import com.azure.core.annotation.Fluent; -import com.fasterxml.jackson.annotation.JsonProperty; -/** The DataFeedDimension model. */ +/** + * Type describing a dimension of a DataFeed. + */ @Fluent public final class DataFeedDimension { - /* - * dimension name - */ - @JsonProperty(value = "dimensionName", required = true) - private String name; - - /* - * dimension display name - */ - @JsonProperty(value = "dimensionDisplayName") + private final String name; private String displayName; /** - * Get the dimensionName property: dimension name. + * Creates a DataFeedDimension. * - * @return the dimensionName value. + * @param name the dimension name. */ - public String getName() { - return this.name; + public DataFeedDimension(String name) { + this.name = name; } /** - * Set the dimensionName property: dimension name. + * Gets the dimension name. * - * @param dimensionName the dimensionName value to set. - * @return the DataFeedDimension object itself. + * @return the dimension name */ - public DataFeedDimension setName(String dimensionName) { - this.name = dimensionName; - return this; + public String getName() { + return this.name; } /** - * Get the dimensionDisplayName property: dimension display name. + * Gets the dimension display name. * - * @return the dimensionDisplayName value. + * @return the dimension display name */ public String getDisplayName() { return this.displayName; } /** - * Set the dimensionDisplayName property: dimension display name. + * Sets the dimension display name. * - * @param dimensionDisplayName the dimensionDisplayName value to set. + * @param displayName the dimension display name * @return the DataFeedDimension object itself. */ - public DataFeedDimension setDisplayName(String dimensionDisplayName) { - this.displayName = dimensionDisplayName; + public DataFeedDimension setDisplayName(String displayName) { + this.displayName = displayName; return this; } } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedIngestionSettings.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedIngestionSettings.java index 372252ac6e9f..3e35405eab16 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedIngestionSettings.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedIngestionSettings.java @@ -44,7 +44,7 @@ public OffsetDateTime getIngestionStartTime() { * * @return the the max concurrency of data ingestion queries against user data source value. */ - public int getDataSourceRequestConcurrency() { + public Integer getDataSourceRequestConcurrency() { return this.sourceRequestConcurrency; } @@ -85,7 +85,7 @@ public Duration getIngestionStartOffset() { * * @return the DataFeedIngestionSettings object itself. */ - public DataFeedIngestionSettings setDataSourceRequestConcurrency(int maxConcurrency) { + public DataFeedIngestionSettings setDataSourceRequestConcurrency(Integer maxConcurrency) { this.sourceRequestConcurrency = maxConcurrency; return this; } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedMetric.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedMetric.java index e5970a2c4a32..92f66ff1db6e 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedMetric.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/DataFeedMetric.java @@ -1,41 +1,41 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Code generated by Microsoft (R) AutoRest Code Generator. package com.azure.ai.metricsadvisor.administration.models; +import com.azure.ai.metricsadvisor.implementation.util.DataFeedMetricAccessor; import com.azure.core.annotation.Fluent; -import com.fasterxml.jackson.annotation.JsonProperty; -/** The DataFeedMetric model. */ +/** + * Type describing a metric of a DataFeed. + */ @Fluent public final class DataFeedMetric { - /* - * metric id - */ - @JsonProperty(value = "metricId", access = JsonProperty.Access.WRITE_ONLY) private String id; - - /* - * metric name - */ - @JsonProperty(value = "metricName", required = true) - private String name; - - /* - * metric display name - */ - @JsonProperty(value = "metricDisplayName") + private final String name; private String displayName; + private String description; + + static { + DataFeedMetricAccessor.setAccessor(new DataFeedMetricAccessor.Accessor() { + @Override + public void setId(DataFeedMetric dataFeedMetric, String id) { + dataFeedMetric.setId(id); + } + }); + } - /* - * metric description + /** + * Creates a DataFeed metric with the provided name. + * + * @param name the metric name. */ - @JsonProperty(value = "metricDescription") - private String description; + public DataFeedMetric(String name) { + this.name = name; + } /** - * Get the id property: metric id. + * Gets the id. * * @return the id value. */ @@ -44,7 +44,7 @@ public String getId() { } /** - * Get the name property: metric name. + * Gets the name. * * @return the name value. */ @@ -53,29 +53,27 @@ public String getName() { } /** - * Set the name property: metric name. + * Gets the display name. * - * @param name the name value to set. - * @return the DataFeedMetric object itself. + * @return the display name value. */ - public DataFeedMetric setName(String name) { - this.name = name; - return this; + public String getDisplayName() { + return this.displayName; } /** - * Get the displayName property: metric display name. + * Gets the description. * - * @return the displayName value. + * @return the description value. */ - public String getDisplayName() { - return this.displayName; + public String getDescription() { + return this.description; } /** - * Set the displayName property: metric display name. + * Sets the display name. * - * @param displayName the displayName value to set. + * @param displayName the display name value to set. * @return the DataFeedMetric object itself. */ public DataFeedMetric setDisplayName(String displayName) { @@ -84,16 +82,7 @@ public DataFeedMetric setDisplayName(String displayName) { } /** - * Get the description property: metric description. - * - * @return the description value. - */ - public String getDescription() { - return this.description; - } - - /** - * Set the description property: metric description. + * Sets the description. * * @param description the description value to set. * @return the DataFeedMetric object itself. @@ -102,4 +91,8 @@ public DataFeedMetric setDescription(String description) { this.description = description; return this; } + + private void setId(String id) { + this.id = id; + } } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/HardThresholdCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/HardThresholdCondition.java index 6c6070f4eb3f..e64d6b389519 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/HardThresholdCondition.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/HardThresholdCondition.java @@ -1,71 +1,52 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Code generated by Microsoft (R) AutoRest Code Generator. package com.azure.ai.metricsadvisor.administration.models; import com.azure.core.annotation.Fluent; -import com.fasterxml.jackson.annotation.JsonProperty; -/** The HardThresholdCondition model. */ +/** + * Type that describes hard-threshold parameters. In hard-threshold mode, metrics advisor + * watch for any data points that falls out of the boundary and detect such data points as + * anomalies. + */ @Fluent public final class HardThresholdCondition { - /* - * lower bound - * - * should be specified when anomalyDetectorDirection is Both or Down - */ - @JsonProperty(value = "lowerBound") private Double lowerBound; - - /* - * upper bound - * - * should be specified when anomalyDetectorDirection is Both or Up - */ - @JsonProperty(value = "upperBound") private Double upperBound; - - /* - * detection direction - */ - @JsonProperty(value = "anomalyDetectorDirection", required = true) private AnomalyDetectorDirection anomalyDetectorDirection; - - /* - * The suppressCondition property. - */ - @JsonProperty(value = "suppressCondition", required = true) private SuppressCondition suppressCondition; /** - * Get the lowerBound property: lower bound + * Create an instance of HardThresholdCondition describing how to identify anomalies using + * hard-threshold mode. * - *

should be specified when anomalyDetectorDirection is Both or Down. - * - * @return the lowerBound value. + * @param detectorDirection a value {@link AnomalyDetectorDirection#BOTH} indicates that any + * data point with a value not within the range defined by {@code lowerBound} and {@code upperBound} + * should be considered as an anomaly. A value {@link AnomalyDetectorDirection#UP} means a data point + * above {@code upperBound} is considered as an anomaly, a value {@link AnomalyDetectorDirection#DOWN} + * means a data point below {@code lowerBound} is considered as an anomaly. + * @param suppressCondition the condition to aggregate the anomaly detection reporting, + * suppressing the reporting of individual anomalies helps to avoid noises, especially if the metrics + * have fine granularity. */ - public Double getLowerBound() { - return this.lowerBound; + public HardThresholdCondition(AnomalyDetectorDirection detectorDirection, + SuppressCondition suppressCondition) { + this.anomalyDetectorDirection = detectorDirection; + this.suppressCondition = suppressCondition; } /** - * Set the lowerBound property: lower bound + * Gets the lowerBound value. * - *

should be specified when anomalyDetectorDirection is Both or Down. - * - * @param lowerBound the lowerBound value to set. - * @return the HardThresholdCondition object itself. + * @return the lowerBound value. */ - public HardThresholdCondition setLowerBound(Double lowerBound) { - this.lowerBound = lowerBound; - return this; + public Double getLowerBound() { + return this.lowerBound; } /** - * Get the upperBound property: upper bound - * - *

should be specified when anomalyDetectorDirection is Both or Up. + * Gets the upperBound value. * * @return the upperBound value. */ @@ -74,51 +55,67 @@ public Double getUpperBound() { } /** - * Set the upperBound property: upper bound + * Gets the direction that detector should use when comparing data point + * value against lowerBound and/or upperBound. * - *

should be specified when anomalyDetectorDirection is Both or Up. + * @return the detector direction. + */ + public AnomalyDetectorDirection getAnomalyDetectorDirection() { + return this.anomalyDetectorDirection; + } + + /** + * Gets the suppress condition. * - * @param upperBound the upperBound value to set. - * @return the HardThresholdCondition object itself. + * @return the suppress condition value. */ - public HardThresholdCondition setUpperBound(Double upperBound) { - this.upperBound = upperBound; - return this; + public SuppressCondition getSuppressCondition() { + return this.suppressCondition; } /** - * Get the anomalyDetectorDirection property: detection direction. + * Sets the lowerBound value. * - * @return the anomalyDetectorDirection value. + *

lowerBound be specified when anomalyDetectorDirection is Both or Down. + * + * @param lowerBound the lowerBound value to set. + * @return the HardThresholdCondition object itself. */ - public AnomalyDetectorDirection getAnomalyDetectorDirection() { - return this.anomalyDetectorDirection; + public HardThresholdCondition setLowerBound(Double lowerBound) { + this.lowerBound = lowerBound; + return this; } /** - * Set the anomalyDetectorDirection property: detection direction. + * Set the upperBound value. + * + *

upperBound should be specified when anomalyDetectorDirection is Both or Up. * - * @param anomalyDetectorDirection the anomalyDetectorDirection value to set. + * @param upperBound the upperBound value to set. * @return the HardThresholdCondition object itself. */ - public HardThresholdCondition setAnomalyDetectorDirection(AnomalyDetectorDirection anomalyDetectorDirection) { - this.anomalyDetectorDirection = anomalyDetectorDirection; + public HardThresholdCondition setUpperBound(Double upperBound) { + this.upperBound = upperBound; return this; } /** - * Get the suppressCondition property: The suppressCondition property. + * Sets the direction that detector should use when comparing data point value against lowerBound and/or upperBound. * - * @return the suppressCondition value. + * @param detectorDirection the detector direction + * + * @return the HardThresholdCondition object itself. */ - public SuppressCondition getSuppressCondition() { - return this.suppressCondition; + public HardThresholdCondition setAnomalyDetectorDirection(AnomalyDetectorDirection detectorDirection) { + this.anomalyDetectorDirection = detectorDirection; + return this; } /** - * Set the suppressCondition property: The suppressCondition property. + * Sets the suppress condition. + * + * @param suppressCondition the suppress condition * - * @param suppressCondition the suppressCondition value to set. * @return the HardThresholdCondition object itself. */ public HardThresholdCondition setSuppressCondition(SuppressCondition suppressCondition) { diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAlertConfiguration.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAlertConfiguration.java index 2fd03b51d817..77ba94ea7715 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAlertConfiguration.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAlertConfiguration.java @@ -61,7 +61,7 @@ public String getDetectionConfigurationId() { * * @return The negation operation value. */ - public boolean isNegationOperationEnabled() { + public Boolean isNegationOperationEnabled() { return this.negationOperation; } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertConditions.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertConditions.java index 66acbec15bc4..3b004613df6d 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertConditions.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertConditions.java @@ -55,9 +55,7 @@ public MetricAnomalyAlertConditions setMetricBoundaryCondition(MetricBoundaryCon * @return The MetricAnomalyAlertConditions object itself. */ public MetricAnomalyAlertConditions setSeverityCondition(AnomalySeverity min, AnomalySeverity max) { - return setSeverityRangeCondition(new SeverityCondition() - .setMinAlertSeverity(min) - .setMaxAlertSeverity(max)); + return setSeverityRangeCondition(new SeverityCondition(min, max)); } /** diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertScope.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertScope.java index 5225731a580b..f7c52a95cfa2 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertScope.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertScope.java @@ -98,10 +98,7 @@ public static MetricAnomalyAlertScope forSeriesGroup(DimensionKey seriesGroupId) * @return The MetricAnomalyAlertScope. */ public static MetricAnomalyAlertScope forTopNGroup(int top, int period, int minTopCount) { - return new MetricAnomalyAlertScope(new TopNGroupScope() - .setTop(top) - .setPeriod(period) - .setMinTopCount(minTopCount)); + return new MetricAnomalyAlertScope(new TopNGroupScope(top, period, minTopCount)); } /** diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertSnoozeCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertSnoozeCondition.java index 9bf51d5d8d86..87464b468b39 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertSnoozeCondition.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricAnomalyAlertSnoozeCondition.java @@ -1,89 +1,90 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Code generated by Microsoft (R) AutoRest Code Generator. package com.azure.ai.metricsadvisor.administration.models; import com.azure.core.annotation.Fluent; -import com.fasterxml.jackson.annotation.JsonProperty; -/** The MetricAnomalyAlertSnoozeCondition model. */ +/** + * Type that describes configuration for snoozing anomaly alerts. + */ @Fluent public final class MetricAnomalyAlertSnoozeCondition { - /* - * snooze point count, value range : [0, +∞) - */ - @JsonProperty(value = "autoSnooze", required = true) - private int autoSnooze; - - /* - * snooze scope - */ - @JsonProperty(value = "snoozeScope", required = true) + private Integer autoSnooze; private SnoozeScope snoozeScope; + private Boolean onlyForSuccessive; - /* - * only snooze for successive anomalies + /** + * Create an instance of MetricAnomalyAlertSnoozeCondition describing anomaly alert snooze configuration. + * + * @param autoSnooze the snooze data point count. + * @param snoozeScope the scope in which anomalies to be snoozed may appear. + * @param onlyForSuccessive true to snooze successive anomalies, false otherwise. */ - @JsonProperty(value = "onlyForSuccessive", required = true) - private boolean onlyForSuccessive; + public MetricAnomalyAlertSnoozeCondition(int autoSnooze, + SnoozeScope snoozeScope, + boolean onlyForSuccessive) { + this.autoSnooze = autoSnooze; + this.snoozeScope = snoozeScope; + this.onlyForSuccessive = onlyForSuccessive; + } /** - * Get the autoSnooze property: snooze point count, value range : [0, +∞). + * Gets the snooze data point count. * - * @return the autoSnooze value. + * @return the snooze data point count. */ - public int getAutoSnooze() { + public Integer getAutoSnooze() { return this.autoSnooze; } /** - * Set the autoSnooze property: snooze point count, value range : [0, +∞). + * Gets the scope in which anomalies to be snoozed may appear. * - * @param autoSnooze the autoSnooze value to set. - * @return the MetricAnomalyAlertSnoozeCondition object itself. + * @return the scope. */ - public MetricAnomalyAlertSnoozeCondition setAutoSnooze(int autoSnooze) { - this.autoSnooze = autoSnooze; - return this; + public SnoozeScope getSnoozeScope() { + return this.snoozeScope; } /** - * Get the snoozeScope property: snooze scope. + * Gets boolean indicating whether to snooze successive anomalies or not. * - * @return the snoozeScope value. + * @return the onlyForSuccessive value. */ - public SnoozeScope getSnoozeScope() { - return this.snoozeScope; + public Boolean isOnlyForSuccessive() { + return this.onlyForSuccessive; } /** - * Set the snoozeScope property: snooze scope. + * Sets the value indicating the snooze point count, the value range is : [0, +∞). * - * @param snoozeScope the snoozeScope value to set. + * @param autoSnooze the the snooze point count. * @return the MetricAnomalyAlertSnoozeCondition object itself. */ - public MetricAnomalyAlertSnoozeCondition setSnoozeScope(SnoozeScope snoozeScope) { - this.snoozeScope = snoozeScope; + public MetricAnomalyAlertSnoozeCondition setAutoSnooze(Integer autoSnooze) { + this.autoSnooze = autoSnooze; return this; } /** - * Get the onlyForSuccessive property: only snooze for successive anomalies. + * Sets the scope in which anomalies to be snoozed may appear. * - * @return the onlyForSuccessive value. + * @param snoozeScope the snooze scope to set. + * @return the MetricAnomalyAlertSnoozeCondition object itself. */ - public boolean isOnlyForSuccessive() { - return this.onlyForSuccessive; + public MetricAnomalyAlertSnoozeCondition setSnoozeScope(SnoozeScope snoozeScope) { + this.snoozeScope = snoozeScope; + return this; } /** - * Set the onlyForSuccessive property: only snooze for successive anomalies. + * Sets the flag indicating whether to snooze the successive anomalies. * - * @param onlyForSuccessive the onlyForSuccessive value to set. + * @param onlyForSuccessive true to snooze the successive anomalies, false otherwise. * @return the MetricAnomalyAlertSnoozeCondition object itself. */ - public MetricAnomalyAlertSnoozeCondition setOnlyForSuccessive(boolean onlyForSuccessive) { + public MetricAnomalyAlertSnoozeCondition setOnlyForSuccessive(Boolean onlyForSuccessive) { this.onlyForSuccessive = onlyForSuccessive; return this; } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricBoundaryCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricBoundaryCondition.java index bba0c8fb8699..8f2247bf4509 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricBoundaryCondition.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/MetricBoundaryCondition.java @@ -7,8 +7,7 @@ import com.azure.core.annotation.Fluent; /** - * Defines the boundary conditions for the anomaly (abnormal data points) - * to be included in the alert. + * Defines the boundary conditions for the anomaly (abnormal data points) to be included in the alert. */ @Fluent public final class MetricBoundaryCondition { @@ -86,37 +85,22 @@ public String getCompanionMetricId() { } /** - * Sets either upper or lower boundary. + * Sets the boundary. * - * @param direction The boundary direction. - * @param boundaryValue The boundary value. + * @param direction Both {@code lowerBoundary} and {@code upperBoundary} must be specified + * when the direction is {@link BoundaryDirection#BOTH}. The {@code lowerBoundary} + * must be specified for {@link BoundaryDirection#LOWER}, similarly {@code upperBoundary} + * must set specified for {@link BoundaryDirection#UPPER}. + * @param lowerBoundary The lower boundary value. + * @param upperBoundary The upper boundary value. * @return The MetricBoundaryCondition object itself. */ - public MetricBoundaryCondition setSingleBoundary(SingleBoundaryDirection direction, - double boundaryValue) { - if (direction == SingleBoundaryDirection.LOWER) { - this.boundaryDirection = BoundaryDirection.LOWER; - this.lowerBoundary = boundaryValue; - this.upperBoundary = null; - } else { - this.boundaryDirection = BoundaryDirection.UPPER; - this.upperBoundary = boundaryValue; - this.lowerBoundary = null; - } - return this; - } - - /** - * Sets both upper and lower boundary. - * - * @param lower The lower boundary value. - * @param upper The upper boundary value. - * @return The MetricBoundaryCondition object itself. - */ - public MetricBoundaryCondition setBothBoundary(double lower, double upper) { - this.lowerBoundary = lower; - this.upperBoundary = upper; - this.boundaryDirection = BoundaryDirection.BOTH; + public MetricBoundaryCondition setBoundary(BoundaryDirection direction, + Double lowerBoundary, + Double upperBoundary) { + this.lowerBoundary = lowerBoundary; + this.upperBoundary = upperBoundary; + this.boundaryDirection = direction; return this; } @@ -141,10 +125,7 @@ public MetricBoundaryCondition setCompanionMetricId(String companionMetricId) { * * @return True if alert is triggered for missing data-points, false otherwise. */ - public boolean shouldAlertIfDataPointMissing() { - if (this.alertIfMissing == null) { - return false; - } + public Boolean shouldAlertIfDataPointMissing() { return this.alertIfMissing; } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SeverityCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SeverityCondition.java index a0454bd0522e..5c10cfe18885 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SeverityCondition.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SeverityCondition.java @@ -1,64 +1,69 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Code generated by Microsoft (R) AutoRest Code Generator. package com.azure.ai.metricsadvisor.administration.models; import com.azure.core.annotation.Fluent; -import com.fasterxml.jackson.annotation.JsonProperty; -/** The SeverityCondition model. */ +/** + * Type that describes severity range. + */ @Fluent public final class SeverityCondition { - /* - * min alert severity - */ - @JsonProperty(value = "minAlertSeverity", required = true) private AnomalySeverity minAlertSeverity; + private AnomalySeverity maxAlertSeverity; - /* - * max alert severity + /** + * Create a SeverityCondition with the range defined by the provided {@code min} and {@code max}. + * + * @param min the minimum severity value + * @param max the maximum severity value */ - @JsonProperty(value = "maxAlertSeverity", required = true) - private AnomalySeverity maxAlertSeverity; + public SeverityCondition(AnomalySeverity min, AnomalySeverity max) { + this.minAlertSeverity = min; + this.maxAlertSeverity = max; + } /** - * Get the minAlertSeverity property: min alert severity. + * Gets the minimum severity value. * - * @return the minAlertSeverity value. + * @return the minimum severity value. */ public AnomalySeverity getMinAlertSeverity() { return this.minAlertSeverity; } /** - * Set the minAlertSeverity property: min alert severity. + * Gets the maximum severity value. * - * @param minAlertSeverity the minAlertSeverity value to set. - * @return the SeverityCondition object itself. + * @return the maximum severity value. */ - public SeverityCondition setMinAlertSeverity(AnomalySeverity minAlertSeverity) { - this.minAlertSeverity = minAlertSeverity; - return this; + public AnomalySeverity getMaxAlertSeverity() { + return this.maxAlertSeverity; } /** - * Get the maxAlertSeverity property: max alert severity. + * Sets the minimum severity value. * - * @return the maxAlertSeverity value. + * @param min the minimum severity value. + * @return the SeverityCondition object itself. */ - public AnomalySeverity getMaxAlertSeverity() { - return this.maxAlertSeverity; + public SeverityCondition setMinAlertSeverity(AnomalySeverity min) { + this.minAlertSeverity = min; + return this; } + + /** - * Set the maxAlertSeverity property: max alert severity. + * Sets the maximum severity value. * - * @param maxAlertSeverity the maxAlertSeverity value to set. + * @param max the minimum severity value. * @return the SeverityCondition object itself. */ - public SeverityCondition setMaxAlertSeverity(AnomalySeverity maxAlertSeverity) { - this.maxAlertSeverity = maxAlertSeverity; + public SeverityCondition setMaxAlertSeverity(AnomalySeverity max) { + this.maxAlertSeverity = max; return this; } + } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SingleBoundaryDirection.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SingleBoundaryDirection.java deleted file mode 100644 index 5348d4b3f2b9..000000000000 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SingleBoundaryDirection.java +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.ai.metricsadvisor.administration.models; - -import com.azure.core.util.ExpandableStringEnum; - -import java.util.Collection; - -/** - * Defines values for SingleBoundaryDirection. - */ -public final class SingleBoundaryDirection extends ExpandableStringEnum { - /** - * Defines the lower boundary in a boundary condition. - */ - public static final SingleBoundaryDirection LOWER = fromString("LOWER"); - /** - * Defines the upper boundary in a boundary condition. - */ - public static final SingleBoundaryDirection UPPER = fromString("UPPER"); - - /** - * Creates or finds a BoundaryDirection from its string representation. - * - * @param name a name to look for. - * - * @return the corresponding BoundaryDirection. - */ - public static SingleBoundaryDirection fromString(String name) { - return fromString(name, SingleBoundaryDirection.class); - } - - /** - * @return known BoundaryDirection values. - */ - public static Collection values() { - return values(SingleBoundaryDirection.class); - } -} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SmartDetectionCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SmartDetectionCondition.java index 790b5af113d1..9f74968bbb07 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SmartDetectionCondition.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SmartDetectionCondition.java @@ -1,87 +1,109 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Code generated by Microsoft (R) AutoRest Code Generator. package com.azure.ai.metricsadvisor.administration.models; import com.azure.core.annotation.Fluent; -import com.fasterxml.jackson.annotation.JsonProperty; -/** The SmartDetectionCondition model. */ +/** + * Type that describes smart-detection parameters. In smart-detection mode, metrics advisor + * uses multiple ML based algorithms to compute severity value of data points, detector detect + * anomalies by checking whether those values falls within or outside of the range derived from + * sensitivity parameter. + */ @Fluent public final class SmartDetectionCondition { - /* - * sensitivity, value range : (0, 100] - */ - @JsonProperty(value = "sensitivity", required = true) - private double sensitivity; - - /* - * detection direction - */ - @JsonProperty(value = "anomalyDetectorDirection", required = true) + private Double sensitivity; private AnomalyDetectorDirection anomalyDetectorDirection; + private SuppressCondition suppressCondition; - /* - * The suppressCondition property. + /** + * Create an instance of SmartDetectionCondition describing how to identify anomalies using + * smart-detection mode. + * + * @param sensitivity value that adjust the tolerance of anomalies, visually higher the value + * narrower the band (lower and upper bounds) around the time series. + * @param detectorDirection a value {@link AnomalyDetectorDirection#BOTH} indicates that any + * data point with severity value not within the range derived from {@code sensitivity} + * should be considered as an anomaly. A value {@link AnomalyDetectorDirection#UP} means + * a data point severity value above the upper bound of the range is considered as an anomaly, + * a value {@link AnomalyDetectorDirection#DOWN} means a data point severity value below lower + * bound of the range is considered as an anomaly. + * @param suppressCondition the condition to aggregate the anomaly detection reporting, + * suppressing the reporting of individual anomalies helps to avoid noises, especially + * if the metrics have fine granularity. */ - @JsonProperty(value = "suppressCondition", required = true) - private SuppressCondition suppressCondition; + public SmartDetectionCondition(double sensitivity, + AnomalyDetectorDirection detectorDirection, + SuppressCondition suppressCondition) { + this.sensitivity = sensitivity; + this.anomalyDetectorDirection = detectorDirection; + this.suppressCondition = suppressCondition; + } /** - * Get the sensitivity property: sensitivity, value range : (0, 100]. + * Gets the sensitivity value. + * + *

the sensitivity value adjust the tolerance of anomalies, visually higher the value narrower the band + * (lower and upper bounds) around the time series. * * @return the sensitivity value. */ - public double getSensitivity() { + public Double getSensitivity() { return this.sensitivity; } /** - * Set the sensitivity property: sensitivity, value range : (0, 100]. + * Gets the direction that detector should use when comparing data point + * value against range derived from sensitivity . * - * @param sensitivity the sensitivity value to set. - * @return the SmartDetectionCondition object itself. + * @return the detector direction. */ - public SmartDetectionCondition setSensitivity(double sensitivity) { - this.sensitivity = sensitivity; - return this; + public AnomalyDetectorDirection getAnomalyDetectorDirection() { + return this.anomalyDetectorDirection; } + /** - * Get the anomalyDetectorDirection property: detection direction. + * Gets the suppress condition. * - * @return the anomalyDetectorDirection value. + * @return the suppress condition value. */ - public AnomalyDetectorDirection getAnomalyDetectorDirection() { - return this.anomalyDetectorDirection; + public SuppressCondition getSuppressCondition() { + return this.suppressCondition; } + /** - * Set the anomalyDetectorDirection property: detection direction. + * Sets the sensitivity value, it should be in the range (0, 100]. * - * @param anomalyDetectorDirection the anomalyDetectorDirection value to set. + * @param sensitivity the sensitivity value to set. * @return the SmartDetectionCondition object itself. */ - public SmartDetectionCondition setAnomalyDetectorDirection(AnomalyDetectorDirection anomalyDetectorDirection) { - this.anomalyDetectorDirection = anomalyDetectorDirection; + public SmartDetectionCondition setSensitivity(double sensitivity) { + this.sensitivity = sensitivity; return this; } /** - * Get the suppressCondition property: The suppressCondition property. + * Sets the direction that detector should use when comparing data point value against range derived + * from the sensitivity. * - * @return the suppressCondition value. + * @param detectorDirection the detector direction + * + * @return the HardThresholdCondition object itself. */ - public SuppressCondition getSuppressCondition() { - return this.suppressCondition; + public SmartDetectionCondition setAnomalyDetectorDirection(AnomalyDetectorDirection detectorDirection) { + this.anomalyDetectorDirection = detectorDirection; + return this; } /** - * Set the suppressCondition property: The suppressCondition property. + * Sets the suppress condition. * - * @param suppressCondition the suppressCondition value to set. - * @return the SmartDetectionCondition object itself. + * @param suppressCondition the suppress condition + * + * @return the HardThresholdCondition object itself. */ public SmartDetectionCondition setSuppressCondition(SuppressCondition suppressCondition) { this.suppressCondition = suppressCondition; diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SuppressCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SuppressCondition.java index 5d8ca839845d..99b5bf0607d6 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SuppressCondition.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/SuppressCondition.java @@ -1,63 +1,71 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Code generated by Microsoft (R) AutoRest Code Generator. - package com.azure.ai.metricsadvisor.administration.models; import com.azure.core.annotation.Fluent; -import com.fasterxml.jackson.annotation.JsonProperty; -/** The SuppressCondition model. */ +/** + * Type that describes suppress condition for anomalies. + */ @Fluent public final class SuppressCondition { - /* - * min point number, value range : [1, +∞) - */ - @JsonProperty(value = "minNumber", required = true) - private int minNumber; + private Integer minNumber; + private Double minRatio; - /* - * min point ratio, value range : (0, 100] + /** + * Create an instance of SuppressCondition describing how to suppress anomaly reporting. + * + *

Anomalies from metrics with higher granularity can be noisy, using SuppressCondition + * user can inform the detector to not to report the anomalies until {@code minRatio} + * percentage of last {@code minNumber} data points are detected as anomalies. + * + * @param minNumber the number of latest data points to consider for detection. + * @param minRatio the percentage of the {@code minNumber} data points to be anomalies before reporting. */ - @JsonProperty(value = "minRatio", required = true) - private double minRatio; + public SuppressCondition(int minNumber, double minRatio) { + this.minNumber = minNumber; + this.minRatio = minRatio; + } /** - * Get the minNumber property: min point number, value range : [1, +∞). + * Gets the number of latest data points to consider for detection. * - * @return the minNumber value. + * @return the minimum number value. */ - public int getMinNumber() { + public Integer getMinNumber() { return this.minNumber; } /** - * Set the minNumber property: min point number, value range : [1, +∞). + * Gets the percentage of the {@code minNumber} data points to be anomalies before reporting. * - * @param minNumber the minNumber value to set. - * @return the SuppressCondition object itself. + * @return the minimum ratio value. */ - public SuppressCondition setMinNumber(int minNumber) { - this.minNumber = minNumber; - return this; + public Double getMinRatio() { + return this.minRatio; } /** - * Get the minRatio property: min point ratio, value range : (0, 100]. + * Sets the number of latest data points to consider for detection, the value should + * be in the range : [1, +∞). * - * @return the minRatio value. + * @param minNumber the minNumber value to set. + * @return the SuppressCondition object itself. */ - public double getMinRatio() { - return this.minRatio; + public SuppressCondition setMinNumber(Integer minNumber) { + this.minNumber = minNumber; + return this; } + /** - * Set the minRatio property: min point ratio, value range : (0, 100]. + * Sets the percentage of the {@code minNumber} data points to be anomalies before reporting, + * the value should be in the range : (0, 100]. * * @param minRatio the minRatio value to set. * @return the SuppressCondition object itself. */ - public SuppressCondition setMinRatio(double minRatio) { + public SuppressCondition setMinRatio(Double minRatio) { this.minRatio = minRatio; return this; } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/TopNGroupScope.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/TopNGroupScope.java index 89d7a572fd20..00357284146c 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/TopNGroupScope.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/administration/models/TopNGroupScope.java @@ -1,95 +1,107 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -// Code generated by Microsoft (R) AutoRest Code Generator. package com.azure.ai.metricsadvisor.administration.models; import com.azure.core.annotation.Fluent; -import com.fasterxml.jackson.annotation.JsonProperty; -/** The TopNGroupScope model. */ +/** + * The type TopNGroupScope represents the parameters that defines TopN anomaly scope. + * Detector produces an alert when such "scoped" anomalies are detected. + *

+ * Each metric has a stream of data points. There can be multiple metrics, hence multiple streams + * of data points. When these multiple streams produce data points, it can be form a "set" stream. + * Each set (aka point-set) is indexed by a timestamp; such a set contains data points information + * arrived at that timestamp from different streams. The TopNGroupScope parameters defines the + * criteria to report anomalies from these point-set. Each data point in the point-set can be either + * an anomaly or not. Each anomaly has a rank assigned. The detector can look into the rank of anomalies + * in each point-sets and use them to compute anomaly-rank for the point-set. + * The Period in TopNGroupScope means how many latest point-sets we want the service to select for ranking. + * The Top in TopNGroupScope defines the top anomaly-rank (like top 3 rank), and when anomaly-rank + * of MinTopCount number of point-sets falls into this top rank, the detector to produce an alert. + */ @Fluent public final class TopNGroupScope { - /* - * top N, value range : [1, +∞) - */ - @JsonProperty(value = "top", required = true) - private int top; - - /* - * point count used to look back, value range : [1, +∞) - */ - @JsonProperty(value = "period", required = true) - private int period; + private Integer top; + private Integer period; + private Integer minTopCount; - /* - * min count should be in top N, value range : [1, +∞) + /** + * Create an instance of TopNGroupScope describing parameters that defines TopN anomaly scope. * - * should be less than or equal to period + * @param top the top anomaly-rank. + * @param period the number of latest point-sets detector select for ranking. + * @param minTopCount the number of point-sets in the {@code period} to falls into the top rank for + * anomaly reporting. */ - @JsonProperty(value = "minTopCount", required = true) - private int minTopCount; + public TopNGroupScope(int top, int period, int minTopCount) { + this.top = top; + this.period = period; + this.minTopCount = minTopCount; + } /** - * Get the top property: top N, value range : [1, +∞). + * Gets the top anomaly-rank. * * @return the top value. */ - public int getTop() { + public Integer getTop() { return this.top; } /** - * Set the top property: top N, value range : [1, +∞). + * Gets the period indicating the number of latest point-sets detector select for ranking. * - * @param top the top value to set. - * @return the TopNGroupScope object itself. + * @return the period value. */ - public TopNGroupScope setTop(int top) { - this.top = top; - return this; + public Integer getPeriod() { + return this.period; } /** - * Get the period property: point count used to look back, value range : [1, +∞). + * Gets the number of point-sets in the period to falls into the top rank for anomaly reporting. * - * @return the period value. + * @return the minTopCount value. */ - public int getPeriod() { - return this.period; + public Integer getMinTopCount() { + return this.minTopCount; } /** - * Set the period property: point count used to look back, value range : [1, +∞). + * Sets the top anomaly-rank value, value should in the range : [1, +∞). * - * @param period the period value to set. + * @param top the top value to set. * @return the TopNGroupScope object itself. */ - public TopNGroupScope setPeriod(int period) { - this.period = period; + public TopNGroupScope setTop(Integer top) { + this.top = top; return this; } + /** - * Get the minTopCount property: min count should be in top N, value range : [1, +∞) - * - *

should be less than or equal to period. + * Sets the period value indicating the number of latest point-sets detector should select for ranking, + * value should be in the range : [1, +∞). * - * @return the minTopCount value. + * @param period the period value to set. + * @return the TopNGroupScope object itself. */ - public int getMinTopCount() { - return this.minTopCount; + public TopNGroupScope setPeriod(Integer period) { + this.period = period; + return this; } + /** - * Set the minTopCount property: min count should be in top N, value range : [1, +∞) + * Sets the number of point-sets in the period to falls into the top rank for anomaly reporting, * - *

should be less than or equal to period. + *

+ * the value should be less than or equal to period. * * @param minTopCount the minTopCount value to set. * @return the TopNGroupScope object itself. */ - public TopNGroupScope setMinTopCount(int minTopCount) { + public TopNGroupScope setMinTopCount(Integer minTopCount) { this.minTopCount = minTopCount; return this; } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/ChangeThresholdCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/ChangeThresholdCondition.java new file mode 100644 index 000000000000..93326fd39c63 --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/ChangeThresholdCondition.java @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) AutoRest Code Generator. + +package com.azure.ai.metricsadvisor.implementation.models; + +import com.azure.ai.metricsadvisor.administration.models.AnomalyDetectorDirection; +import com.azure.core.annotation.Fluent; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** The ChangeThresholdCondition model. */ +@Fluent +public final class ChangeThresholdCondition { + /* + * change percentage, value range : [0, +∞) + */ + @JsonProperty(value = "changePercentage", required = true) + private double changePercentage; + + /* + * shift point, value range : [1, +∞) + */ + @JsonProperty(value = "shiftPoint", required = true) + private int shiftPoint; + + /* + * if the withinRange = true, detected data is abnormal when the value + * falls in the range, in this case anomalyDetectorDirection must be Both + * if the withinRange = false, detected data is abnormal when the value + * falls out of the range + */ + @JsonProperty(value = "withinRange", required = true) + private boolean withinRange; + + /* + * detection direction + */ + @JsonProperty(value = "anomalyDetectorDirection", required = true) + private AnomalyDetectorDirection anomalyDetectorDirection; + + /* + * The suppressCondition property. + */ + @JsonProperty(value = "suppressCondition", required = true) + private SuppressCondition suppressCondition; + + /** + * Get the changePercentage property: change percentage, value range : [0, +∞). + * + * @return the changePercentage value. + */ + public double getChangePercentage() { + return this.changePercentage; + } + + /** + * Set the changePercentage property: change percentage, value range : [0, +∞). + * + * @param changePercentage the changePercentage value to set. + * @return the ChangeThresholdCondition object itself. + */ + public ChangeThresholdCondition setChangePercentage(double changePercentage) { + this.changePercentage = changePercentage; + return this; + } + + /** + * Get the shiftPoint property: shift point, value range : [1, +∞). + * + * @return the shiftPoint value. + */ + public int getShiftPoint() { + return this.shiftPoint; + } + + /** + * Set the shiftPoint property: shift point, value range : [1, +∞). + * + * @param shiftPoint the shiftPoint value to set. + * @return the ChangeThresholdCondition object itself. + */ + public ChangeThresholdCondition setShiftPoint(int shiftPoint) { + this.shiftPoint = shiftPoint; + return this; + } + + /** + * Get the withinRange property: if the withinRange = true, detected data is abnormal when the value falls in the + * range, in this case anomalyDetectorDirection must be Both if the withinRange = false, detected data is abnormal + * when the value falls out of the range. + * + * @return the withinRange value. + */ + public boolean isWithinRange() { + return this.withinRange; + } + + /** + * Set the withinRange property: if the withinRange = true, detected data is abnormal when the value falls in the + * range, in this case anomalyDetectorDirection must be Both if the withinRange = false, detected data is abnormal + * when the value falls out of the range. + * + * @param withinRange the withinRange value to set. + * @return the ChangeThresholdCondition object itself. + */ + public ChangeThresholdCondition setWithinRange(boolean withinRange) { + this.withinRange = withinRange; + return this; + } + + /** + * Get the anomalyDetectorDirection property: detection direction. + * + * @return the anomalyDetectorDirection value. + */ + public AnomalyDetectorDirection getAnomalyDetectorDirection() { + return this.anomalyDetectorDirection; + } + + /** + * Set the anomalyDetectorDirection property: detection direction. + * + * @param anomalyDetectorDirection the anomalyDetectorDirection value to set. + * @return the ChangeThresholdCondition object itself. + */ + public ChangeThresholdCondition setAnomalyDetectorDirection(AnomalyDetectorDirection anomalyDetectorDirection) { + this.anomalyDetectorDirection = anomalyDetectorDirection; + return this; + } + + /** + * Get the suppressCondition property: The suppressCondition property. + * + * @return the suppressCondition value. + */ + public SuppressCondition getSuppressCondition() { + return this.suppressCondition; + } + + /** + * Set the suppressCondition property: The suppressCondition property. + * + * @param suppressCondition the suppressCondition value to set. + * @return the ChangeThresholdCondition object itself. + */ + public ChangeThresholdCondition setSuppressCondition(SuppressCondition suppressCondition) { + this.suppressCondition = suppressCondition; + return this; + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedDetail.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedDetail.java index fc700c8dd6ad..74612b6e3aa5 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedDetail.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedDetail.java @@ -4,8 +4,6 @@ package com.azure.ai.metricsadvisor.implementation.models; -import com.azure.ai.metricsadvisor.administration.models.DataFeedDimension; -import com.azure.ai.metricsadvisor.administration.models.DataFeedMetric; import com.azure.core.annotation.Fluent; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSubTypes; diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedDimension.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedDimension.java new file mode 100644 index 000000000000..e4a093136e81 --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedDimension.java @@ -0,0 +1,64 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) AutoRest Code Generator. + +package com.azure.ai.metricsadvisor.implementation.models; + +import com.azure.core.annotation.Fluent; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** The DataFeedDimension model. */ +@Fluent +public final class DataFeedDimension { + /* + * dimension name + */ + @JsonProperty(value = "dimensionName", required = true) + private String name; + + /* + * dimension display name + */ + @JsonProperty(value = "dimensionDisplayName") + private String displayName; + + /** + * Get the dimensionName property: dimension name. + * + * @return the dimensionName value. + */ + public String getName() { + return this.name; + } + + /** + * Set the dimensionName property: dimension name. + * + * @param dimensionName the dimensionName value to set. + * @return the DataFeedDimension object itself. + */ + public DataFeedDimension setName(String dimensionName) { + this.name = dimensionName; + return this; + } + + /** + * Get the dimensionDisplayName property: dimension display name. + * + * @return the dimensionDisplayName value. + */ + public String getDisplayName() { + return this.displayName; + } + + /** + * Set the dimensionDisplayName property: dimension display name. + * + * @param dimensionDisplayName the dimensionDisplayName value to set. + * @return the DataFeedDimension object itself. + */ + public DataFeedDimension setDisplayName(String dimensionDisplayName) { + this.displayName = dimensionDisplayName; + return this; + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedMetric.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedMetric.java new file mode 100644 index 000000000000..57cb7faf0d0e --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DataFeedMetric.java @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) AutoRest Code Generator. + +package com.azure.ai.metricsadvisor.implementation.models; + +import com.azure.core.annotation.Fluent; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** The DataFeedMetric model. */ +@Fluent +public final class DataFeedMetric { + /* + * metric id + */ + @JsonProperty(value = "metricId", access = JsonProperty.Access.WRITE_ONLY) + private String id; + + /* + * metric name + */ + @JsonProperty(value = "metricName", required = true) + private String name; + + /* + * metric display name + */ + @JsonProperty(value = "metricDisplayName") + private String displayName; + + /* + * metric description + */ + @JsonProperty(value = "metricDescription") + private String description; + + /** + * Get the id property: metric id. + * + * @return the id value. + */ + public String getId() { + return this.id; + } + + /** + * Get the name property: metric name. + * + * @return the name value. + */ + public String getName() { + return this.name; + } + + /** + * Set the name property: metric name. + * + * @param name the name value to set. + * @return the DataFeedMetric object itself. + */ + public DataFeedMetric setName(String name) { + this.name = name; + return this; + } + + /** + * Get the displayName property: metric display name. + * + * @return the displayName value. + */ + public String getDisplayName() { + return this.displayName; + } + + /** + * Set the displayName property: metric display name. + * + * @param displayName the displayName value to set. + * @return the DataFeedMetric object itself. + */ + public DataFeedMetric setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Get the description property: metric description. + * + * @return the description value. + */ + public String getDescription() { + return this.description; + } + + /** + * Set the description property: metric description. + * + * @param description the description value to set. + * @return the DataFeedMetric object itself. + */ + public DataFeedMetric setDescription(String description) { + this.description = description; + return this; + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DimensionGroupConfiguration.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DimensionGroupConfiguration.java index ccf7579d5e72..6f19e20a6729 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DimensionGroupConfiguration.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/DimensionGroupConfiguration.java @@ -4,9 +4,6 @@ package com.azure.ai.metricsadvisor.implementation.models; -import com.azure.ai.metricsadvisor.administration.models.ChangeThresholdCondition; -import com.azure.ai.metricsadvisor.administration.models.HardThresholdCondition; -import com.azure.ai.metricsadvisor.administration.models.SmartDetectionCondition; import com.azure.core.annotation.Fluent; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/HardThresholdCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/HardThresholdCondition.java new file mode 100644 index 000000000000..28345f7400af --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/HardThresholdCondition.java @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) AutoRest Code Generator. + +package com.azure.ai.metricsadvisor.implementation.models; + +import com.azure.ai.metricsadvisor.administration.models.AnomalyDetectorDirection; +import com.azure.core.annotation.Fluent; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** The HardThresholdCondition model. */ +@Fluent +public final class HardThresholdCondition { + /* + * lower bound + * + * should be specified when anomalyDetectorDirection is Both or Down + */ + @JsonProperty(value = "lowerBound") + private Double lowerBound; + + /* + * upper bound + * + * should be specified when anomalyDetectorDirection is Both or Up + */ + @JsonProperty(value = "upperBound") + private Double upperBound; + + /* + * detection direction + */ + @JsonProperty(value = "anomalyDetectorDirection", required = true) + private AnomalyDetectorDirection anomalyDetectorDirection; + + /* + * The suppressCondition property. + */ + @JsonProperty(value = "suppressCondition", required = true) + private SuppressCondition suppressCondition; + + /** + * Get the lowerBound property: lower bound + * + *

should be specified when anomalyDetectorDirection is Both or Down. + * + * @return the lowerBound value. + */ + public Double getLowerBound() { + return this.lowerBound; + } + + /** + * Set the lowerBound property: lower bound + * + *

should be specified when anomalyDetectorDirection is Both or Down. + * + * @param lowerBound the lowerBound value to set. + * @return the HardThresholdCondition object itself. + */ + public HardThresholdCondition setLowerBound(Double lowerBound) { + this.lowerBound = lowerBound; + return this; + } + + /** + * Get the upperBound property: upper bound + * + *

should be specified when anomalyDetectorDirection is Both or Up. + * + * @return the upperBound value. + */ + public Double getUpperBound() { + return this.upperBound; + } + + /** + * Set the upperBound property: upper bound + * + *

should be specified when anomalyDetectorDirection is Both or Up. + * + * @param upperBound the upperBound value to set. + * @return the HardThresholdCondition object itself. + */ + public HardThresholdCondition setUpperBound(Double upperBound) { + this.upperBound = upperBound; + return this; + } + + /** + * Get the anomalyDetectorDirection property: detection direction. + * + * @return the anomalyDetectorDirection value. + */ + public AnomalyDetectorDirection getAnomalyDetectorDirection() { + return this.anomalyDetectorDirection; + } + + /** + * Set the anomalyDetectorDirection property: detection direction. + * + * @param anomalyDetectorDirection the anomalyDetectorDirection value to set. + * @return the HardThresholdCondition object itself. + */ + public HardThresholdCondition setAnomalyDetectorDirection(AnomalyDetectorDirection anomalyDetectorDirection) { + this.anomalyDetectorDirection = anomalyDetectorDirection; + return this; + } + + /** + * Get the suppressCondition property: The suppressCondition property. + * + * @return the suppressCondition value. + */ + public SuppressCondition getSuppressCondition() { + return this.suppressCondition; + } + + /** + * Set the suppressCondition property: The suppressCondition property. + * + * @param suppressCondition the suppressCondition value to set. + * @return the HardThresholdCondition object itself. + */ + public HardThresholdCondition setSuppressCondition(SuppressCondition suppressCondition) { + this.suppressCondition = suppressCondition; + return this; + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/MetricAlertingConfiguration.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/MetricAlertingConfiguration.java index ba228e0e9016..a71e559112f0 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/MetricAlertingConfiguration.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/MetricAlertingConfiguration.java @@ -4,9 +4,6 @@ package com.azure.ai.metricsadvisor.implementation.models; -import com.azure.ai.metricsadvisor.administration.models.MetricAnomalyAlertSnoozeCondition; -import com.azure.ai.metricsadvisor.administration.models.SeverityCondition; -import com.azure.ai.metricsadvisor.administration.models.TopNGroupScope; import com.azure.core.annotation.Fluent; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.UUID; diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/MetricAnomalyAlertSnoozeCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/MetricAnomalyAlertSnoozeCondition.java new file mode 100644 index 000000000000..6ac3f3899e10 --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/MetricAnomalyAlertSnoozeCondition.java @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) AutoRest Code Generator. + +package com.azure.ai.metricsadvisor.implementation.models; + +import com.azure.ai.metricsadvisor.administration.models.SnoozeScope; +import com.azure.core.annotation.Fluent; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** The MetricAnomalyAlertSnoozeCondition model. */ +@Fluent +public final class MetricAnomalyAlertSnoozeCondition { + /* + * snooze point count, value range : [0, +∞) + */ + @JsonProperty(value = "autoSnooze", required = true) + private int autoSnooze; + + /* + * snooze scope + */ + @JsonProperty(value = "snoozeScope", required = true) + private SnoozeScope snoozeScope; + + /* + * only snooze for successive anomalies + */ + @JsonProperty(value = "onlyForSuccessive", required = true) + private boolean onlyForSuccessive; + + /** + * Get the autoSnooze property: snooze point count, value range : [0, +∞). + * + * @return the autoSnooze value. + */ + public int getAutoSnooze() { + return this.autoSnooze; + } + + /** + * Set the autoSnooze property: snooze point count, value range : [0, +∞). + * + * @param autoSnooze the autoSnooze value to set. + * @return the MetricAnomalyAlertSnoozeCondition object itself. + */ + public MetricAnomalyAlertSnoozeCondition setAutoSnooze(int autoSnooze) { + this.autoSnooze = autoSnooze; + return this; + } + + /** + * Get the snoozeScope property: snooze scope. + * + * @return the snoozeScope value. + */ + public SnoozeScope getSnoozeScope() { + return this.snoozeScope; + } + + /** + * Set the snoozeScope property: snooze scope. + * + * @param snoozeScope the snoozeScope value to set. + * @return the MetricAnomalyAlertSnoozeCondition object itself. + */ + public MetricAnomalyAlertSnoozeCondition setSnoozeScope(SnoozeScope snoozeScope) { + this.snoozeScope = snoozeScope; + return this; + } + + /** + * Get the onlyForSuccessive property: only snooze for successive anomalies. + * + * @return the onlyForSuccessive value. + */ + public boolean isOnlyForSuccessive() { + return this.onlyForSuccessive; + } + + /** + * Set the onlyForSuccessive property: only snooze for successive anomalies. + * + * @param onlyForSuccessive the onlyForSuccessive value to set. + * @return the MetricAnomalyAlertSnoozeCondition object itself. + */ + public MetricAnomalyAlertSnoozeCondition setOnlyForSuccessive(boolean onlyForSuccessive) { + this.onlyForSuccessive = onlyForSuccessive; + return this; + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SeriesConfiguration.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SeriesConfiguration.java index b3157117b87e..b7f2703e84ab 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SeriesConfiguration.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SeriesConfiguration.java @@ -4,9 +4,6 @@ package com.azure.ai.metricsadvisor.implementation.models; -import com.azure.ai.metricsadvisor.administration.models.ChangeThresholdCondition; -import com.azure.ai.metricsadvisor.administration.models.HardThresholdCondition; -import com.azure.ai.metricsadvisor.administration.models.SmartDetectionCondition; import com.azure.core.annotation.Fluent; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SeverityCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SeverityCondition.java new file mode 100644 index 000000000000..b805d9e8cd0f --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SeverityCondition.java @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) AutoRest Code Generator. + +package com.azure.ai.metricsadvisor.implementation.models; + +import com.azure.ai.metricsadvisor.administration.models.AnomalySeverity; +import com.azure.core.annotation.Fluent; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** The SeverityCondition model. */ +@Fluent +public final class SeverityCondition { + /* + * min alert severity + */ + @JsonProperty(value = "minAlertSeverity", required = true) + private AnomalySeverity minAlertSeverity; + + /* + * max alert severity + */ + @JsonProperty(value = "maxAlertSeverity", required = true) + private AnomalySeverity maxAlertSeverity; + + /** + * Get the minAlertSeverity property: min alert severity. + * + * @return the minAlertSeverity value. + */ + public AnomalySeverity getMinAlertSeverity() { + return this.minAlertSeverity; + } + + /** + * Set the minAlertSeverity property: min alert severity. + * + * @param minAlertSeverity the minAlertSeverity value to set. + * @return the SeverityCondition object itself. + */ + public SeverityCondition setMinAlertSeverity(AnomalySeverity minAlertSeverity) { + this.minAlertSeverity = minAlertSeverity; + return this; + } + + /** + * Get the maxAlertSeverity property: max alert severity. + * + * @return the maxAlertSeverity value. + */ + public AnomalySeverity getMaxAlertSeverity() { + return this.maxAlertSeverity; + } + + /** + * Set the maxAlertSeverity property: max alert severity. + * + * @param maxAlertSeverity the maxAlertSeverity value to set. + * @return the SeverityCondition object itself. + */ + public SeverityCondition setMaxAlertSeverity(AnomalySeverity maxAlertSeverity) { + this.maxAlertSeverity = maxAlertSeverity; + return this; + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SmartDetectionCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SmartDetectionCondition.java new file mode 100644 index 000000000000..aa247828abac --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SmartDetectionCondition.java @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) AutoRest Code Generator. + +package com.azure.ai.metricsadvisor.implementation.models; + +import com.azure.ai.metricsadvisor.administration.models.AnomalyDetectorDirection; +import com.azure.core.annotation.Fluent; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** The SmartDetectionCondition model. */ +@Fluent +public final class SmartDetectionCondition { + /* + * sensitivity, value range : (0, 100] + */ + @JsonProperty(value = "sensitivity", required = true) + private double sensitivity; + + /* + * detection direction + */ + @JsonProperty(value = "anomalyDetectorDirection", required = true) + private AnomalyDetectorDirection anomalyDetectorDirection; + + /* + * The suppressCondition property. + */ + @JsonProperty(value = "suppressCondition", required = true) + private SuppressCondition suppressCondition; + + /** + * Get the sensitivity property: sensitivity, value range : (0, 100]. + * + * @return the sensitivity value. + */ + public double getSensitivity() { + return this.sensitivity; + } + + /** + * Set the sensitivity property: sensitivity, value range : (0, 100]. + * + * @param sensitivity the sensitivity value to set. + * @return the SmartDetectionCondition object itself. + */ + public SmartDetectionCondition setSensitivity(double sensitivity) { + this.sensitivity = sensitivity; + return this; + } + + /** + * Get the anomalyDetectorDirection property: detection direction. + * + * @return the anomalyDetectorDirection value. + */ + public AnomalyDetectorDirection getAnomalyDetectorDirection() { + return this.anomalyDetectorDirection; + } + + /** + * Set the anomalyDetectorDirection property: detection direction. + * + * @param anomalyDetectorDirection the anomalyDetectorDirection value to set. + * @return the SmartDetectionCondition object itself. + */ + public SmartDetectionCondition setAnomalyDetectorDirection(AnomalyDetectorDirection anomalyDetectorDirection) { + this.anomalyDetectorDirection = anomalyDetectorDirection; + return this; + } + + /** + * Get the suppressCondition property: The suppressCondition property. + * + * @return the suppressCondition value. + */ + public SuppressCondition getSuppressCondition() { + return this.suppressCondition; + } + + /** + * Set the suppressCondition property: The suppressCondition property. + * + * @param suppressCondition the suppressCondition value to set. + * @return the SmartDetectionCondition object itself. + */ + public SmartDetectionCondition setSuppressCondition(SuppressCondition suppressCondition) { + this.suppressCondition = suppressCondition; + return this; + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SuppressCondition.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SuppressCondition.java new file mode 100644 index 000000000000..15e59b11ba34 --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/SuppressCondition.java @@ -0,0 +1,64 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) AutoRest Code Generator. + +package com.azure.ai.metricsadvisor.implementation.models; + +import com.azure.core.annotation.Fluent; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** The SuppressCondition model. */ +@Fluent +public final class SuppressCondition { + /* + * min point number, value range : [1, +∞) + */ + @JsonProperty(value = "minNumber", required = true) + private int minNumber; + + /* + * min point ratio, value range : (0, 100] + */ + @JsonProperty(value = "minRatio", required = true) + private double minRatio; + + /** + * Get the minNumber property: min point number, value range : [1, +∞). + * + * @return the minNumber value. + */ + public int getMinNumber() { + return this.minNumber; + } + + /** + * Set the minNumber property: min point number, value range : [1, +∞). + * + * @param minNumber the minNumber value to set. + * @return the SuppressCondition object itself. + */ + public SuppressCondition setMinNumber(int minNumber) { + this.minNumber = minNumber; + return this; + } + + /** + * Get the minRatio property: min point ratio, value range : (0, 100]. + * + * @return the minRatio value. + */ + public double getMinRatio() { + return this.minRatio; + } + + /** + * Set the minRatio property: min point ratio, value range : (0, 100]. + * + * @param minRatio the minRatio value to set. + * @return the SuppressCondition object itself. + */ + public SuppressCondition setMinRatio(double minRatio) { + this.minRatio = minRatio; + return this; + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/TopNGroupScope.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/TopNGroupScope.java new file mode 100644 index 000000000000..b6731dc6008b --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/TopNGroupScope.java @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) AutoRest Code Generator. + +package com.azure.ai.metricsadvisor.implementation.models; + +import com.azure.core.annotation.Fluent; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** The TopNGroupScope model. */ +@Fluent +public final class TopNGroupScope { + /* + * top N, value range : [1, +∞) + */ + @JsonProperty(value = "top", required = true) + private int top; + + /* + * point count used to look back, value range : [1, +∞) + */ + @JsonProperty(value = "period", required = true) + private int period; + + /* + * min count should be in top N, value range : [1, +∞) + * + * should be less than or equal to period + */ + @JsonProperty(value = "minTopCount", required = true) + private int minTopCount; + + /** + * Get the top property: top N, value range : [1, +∞). + * + * @return the top value. + */ + public int getTop() { + return this.top; + } + + /** + * Set the top property: top N, value range : [1, +∞). + * + * @param top the top value to set. + * @return the TopNGroupScope object itself. + */ + public TopNGroupScope setTop(int top) { + this.top = top; + return this; + } + + /** + * Get the period property: point count used to look back, value range : [1, +∞). + * + * @return the period value. + */ + public int getPeriod() { + return this.period; + } + + /** + * Set the period property: point count used to look back, value range : [1, +∞). + * + * @param period the period value to set. + * @return the TopNGroupScope object itself. + */ + public TopNGroupScope setPeriod(int period) { + this.period = period; + return this; + } + + /** + * Get the minTopCount property: min count should be in top N, value range : [1, +∞) + * + *

should be less than or equal to period. + * + * @return the minTopCount value. + */ + public int getMinTopCount() { + return this.minTopCount; + } + + /** + * Set the minTopCount property: min count should be in top N, value range : [1, +∞) + * + *

should be less than or equal to period. + * + * @param minTopCount the minTopCount value to set. + * @return the TopNGroupScope object itself. + */ + public TopNGroupScope setMinTopCount(int minTopCount) { + this.minTopCount = minTopCount; + return this; + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/WholeMetricConfiguration.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/WholeMetricConfiguration.java index 1d731997ce76..243677a182bd 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/WholeMetricConfiguration.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/models/WholeMetricConfiguration.java @@ -4,9 +4,6 @@ package com.azure.ai.metricsadvisor.implementation.models; -import com.azure.ai.metricsadvisor.administration.models.ChangeThresholdCondition; -import com.azure.ai.metricsadvisor.administration.models.HardThresholdCondition; -import com.azure.ai.metricsadvisor.administration.models.SmartDetectionCondition; import com.azure.core.annotation.Fluent; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/AlertConfigurationTransforms.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/AlertConfigurationTransforms.java index 0b2eadde4448..08a11f2ef808 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/AlertConfigurationTransforms.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/AlertConfigurationTransforms.java @@ -3,6 +3,7 @@ package com.azure.ai.metricsadvisor.implementation.util; +import com.azure.ai.metricsadvisor.administration.models.MetricAnomalyAlertSnoozeCondition; import com.azure.ai.metricsadvisor.implementation.models.AnomalyAlertingConfiguration; import com.azure.ai.metricsadvisor.implementation.models.AnomalyAlertingConfigurationLogicType; import com.azure.ai.metricsadvisor.implementation.models.AnomalyAlertingConfigurationPatch; @@ -10,6 +11,7 @@ import com.azure.ai.metricsadvisor.implementation.models.DimensionGroupIdentity; import com.azure.ai.metricsadvisor.implementation.models.Direction; import com.azure.ai.metricsadvisor.implementation.models.MetricAlertingConfiguration; +import com.azure.ai.metricsadvisor.implementation.models.SeverityCondition; import com.azure.ai.metricsadvisor.implementation.models.ValueCondition; import com.azure.ai.metricsadvisor.administration.models.AnomalyAlertConfiguration; import com.azure.ai.metricsadvisor.administration.models.BoundaryDirection; @@ -22,6 +24,7 @@ import com.azure.ai.metricsadvisor.administration.models.MetricBoundaryCondition; import com.azure.core.http.rest.PagedResponse; import com.azure.core.http.rest.PagedResponseBase; +import com.azure.ai.metricsadvisor.administration.models.TopNGroupScope; import com.azure.core.util.logging.ClientLogger; import java.util.ArrayList; @@ -143,13 +146,22 @@ private static List getMetricAlertConfigList( innerMetricAlertConfiguration.setDimensionAnomalyScope(innerId); } else if (alertScope.getScopeType() == MetricAnomalyAlertScopeType.TOP_N) { innerMetricAlertConfiguration.setAnomalyScopeType(AnomalyScope.TOPN); - innerMetricAlertConfiguration.setTopNAnomalyScope(alertScope.getTopNGroupInScope()); + com.azure.ai.metricsadvisor.implementation.models.TopNGroupScope innerTopNGroupScope = + new com.azure.ai.metricsadvisor.implementation.models.TopNGroupScope() + .setTop(alertScope.getTopNGroupInScope().getTop()) + .setPeriod(alertScope.getTopNGroupInScope().getPeriod()) + .setMinTopCount(alertScope.getTopNGroupInScope().getMinTopCount()); + innerMetricAlertConfiguration.setTopNAnomalyScope(innerTopNGroupScope); } // 2. Set alert conditions (boundary and boundary conditions). final MetricAnomalyAlertConditions alertConditions = metricAnomalyAlertConfiguration.getAlertConditions(); if (alertConditions != null) { - innerMetricAlertConfiguration.setSeverityFilter(alertConditions.getSeverityCondition()); + if (alertConditions.getSeverityCondition() != null) { + innerMetricAlertConfiguration.setSeverityFilter(new SeverityCondition() + .setMaxAlertSeverity(alertConditions.getSeverityCondition().getMinAlertSeverity()) + .setMaxAlertSeverity(alertConditions.getSeverityCondition().getMaxAlertSeverity())); + } final MetricBoundaryCondition boundaryConditions = alertConditions.getMetricBoundaryCondition(); ValueCondition innerValueCondition = new ValueCondition(); if (boundaryConditions != null) { @@ -176,7 +188,17 @@ private static List getMetricAlertConfigList( } // 3. Set alert snooze conditions - innerMetricAlertConfiguration.setSnoozeFilter(metricAnomalyAlertConfiguration.getAlertSnoozeCondition()); + if (metricAnomalyAlertConfiguration.getAlertSnoozeCondition() != null) { + com.azure.ai.metricsadvisor.implementation.models.MetricAnomalyAlertSnoozeCondition innerSnoozeCondition + = new com.azure.ai.metricsadvisor.implementation.models.MetricAnomalyAlertSnoozeCondition(); + + innerSnoozeCondition + .setAutoSnooze(metricAnomalyAlertConfiguration.getAlertSnoozeCondition().getAutoSnooze()) + .setSnoozeScope(metricAnomalyAlertConfiguration.getAlertSnoozeCondition().getSnoozeScope()) + .setOnlyForSuccessive(metricAnomalyAlertConfiguration.getAlertSnoozeCondition().isOnlyForSuccessive()); + + innerMetricAlertConfiguration.setSnoozeFilter(innerSnoozeCondition); + } innerMetricAlertConfigurations.add(innerMetricAlertConfiguration); } return innerMetricAlertConfigurations; @@ -248,8 +270,13 @@ public static AnomalyAlertConfiguration fromInner( } alertScope = MetricAnomalyAlertScope.forSeriesGroup(seriesGroupId); } else if (innerMetricAlertConfiguration.getAnomalyScopeType() == AnomalyScope.TOPN) { + com.azure.ai.metricsadvisor.implementation.models.TopNGroupScope innerTopNGroupScope + = innerMetricAlertConfiguration.getTopNAnomalyScope(); + alertScope = - MetricAnomalyAlertScope.forTopNGroup(innerMetricAlertConfiguration.getTopNAnomalyScope()); + MetricAnomalyAlertScope.forTopNGroup(new TopNGroupScope(innerTopNGroupScope.getTop(), + innerTopNGroupScope.getPeriod(), + innerTopNGroupScope.getMinTopCount())); } MetricAlertConfiguration metricAlertConfiguration = new MetricAlertConfiguration( @@ -260,7 +287,12 @@ public static AnomalyAlertConfiguration fromInner( || innerMetricAlertConfiguration.getValueFilter() != null) { MetricAnomalyAlertConditions alertConditions = new MetricAnomalyAlertConditions(); // Set severity based condition. - alertConditions.setSeverityRangeCondition(innerMetricAlertConfiguration.getSeverityFilter()); + if (innerMetricAlertConfiguration.getSeverityFilter() != null) { + alertConditions.setSeverityRangeCondition( + new com.azure.ai.metricsadvisor.administration.models.SeverityCondition( + innerMetricAlertConfiguration.getSeverityFilter().getMinAlertSeverity(), + innerMetricAlertConfiguration.getSeverityFilter().getMaxAlertSeverity())); + } // Set boundary based condition. ValueCondition innerValueCondition = innerMetricAlertConfiguration.getValueFilter(); if (innerValueCondition != null) { @@ -289,7 +321,16 @@ public static AnomalyAlertConfiguration fromInner( } metricAlertConfiguration.setAlertConditions(alertConditions); } - metricAlertConfiguration.setAlertSnoozeCondition(innerMetricAlertConfiguration.getSnoozeFilter()); + + com.azure.ai.metricsadvisor.implementation.models.MetricAnomalyAlertSnoozeCondition + innerSnoozeCondition = innerMetricAlertConfiguration.getSnoozeFilter(); + + if (innerSnoozeCondition != null) { + metricAlertConfiguration.setAlertSnoozeCondition(new MetricAnomalyAlertSnoozeCondition( + innerSnoozeCondition.getAutoSnooze(), + innerSnoozeCondition.getSnoozeScope(), + innerSnoozeCondition.isOnlyForSuccessive())); + } metricAlertConfigurations.add(metricAlertConfiguration); } alertConfiguration.setMetricAlertConfigurations(metricAlertConfigurations); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DataFeedMetricAccessor.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DataFeedMetricAccessor.java new file mode 100644 index 000000000000..da0b3ff5ff0b --- /dev/null +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DataFeedMetricAccessor.java @@ -0,0 +1,30 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.ai.metricsadvisor.implementation.util; + +import com.azure.ai.metricsadvisor.administration.models.DataFeedMetric; + +public final class DataFeedMetricAccessor { + private static Accessor accessor; + + private DataFeedMetricAccessor() { + } + + public interface Accessor { + void setId(DataFeedMetric dataFeedMetric, String id); + } + + /** + * The method called from {@link DataFeedMetric} to set it's accessor. + * + * @param accessor The accessor. + */ + public static void setAccessor(final Accessor accessor) { + DataFeedMetricAccessor.accessor = accessor; + } + + public static void setId(DataFeedMetric dataFeedMetric, String id) { + accessor.setId(dataFeedMetric, id); + } +} diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DataFeedTransforms.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DataFeedTransforms.java index 6d4f50fe95f2..a6f66075a173 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DataFeedTransforms.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DataFeedTransforms.java @@ -3,6 +3,7 @@ package com.azure.ai.metricsadvisor.implementation.util; +import com.azure.ai.metricsadvisor.administration.models.DataFeedDimension; import com.azure.ai.metricsadvisor.implementation.models.AuthenticationTypeEnum; import com.azure.ai.metricsadvisor.implementation.models.AzureApplicationInsightsDataFeed; import com.azure.ai.metricsadvisor.implementation.models.AzureApplicationInsightsDataFeedPatch; @@ -84,6 +85,8 @@ import com.azure.core.util.logging.ClientLogger; import java.time.Duration; +import java.util.ArrayList; +import java.util.List; import java.util.stream.Collectors; /** @@ -108,8 +111,8 @@ public static DataFeed fromInner(final DataFeedDetail dataFeedDetail) { final DataFeed dataFeed = setDataFeedSourceType(dataFeedDetail); dataFeed .setName(dataFeedDetail.getDataFeedName()) - .setSchema(new DataFeedSchema(dataFeedDetail.getMetrics()) - .setDimensions(dataFeedDetail.getDimension()) + .setSchema(new DataFeedSchema(fromInnerMetricList(dataFeedDetail.getMetrics())) + .setDimensions(fromInnerDimensionList(dataFeedDetail.getDimension())) .setTimestampColumn(dataFeedDetail.getTimestampColumn())) .setGranularity(dataFeedGranularity) .setIngestionSettings(new DataFeedIngestionSettings(dataFeedDetail.getDataStartFrom()) @@ -140,7 +143,8 @@ public static DataFeed fromInner(final DataFeedDetail dataFeedDetail) { DataFeedHelper.setStatus(dataFeed, DataFeedStatus.fromString(dataFeedDetail.getStatus().toString())); DataFeedHelper.setMetricIds(dataFeed, dataFeedDetail.getMetrics().stream() - .collect(Collectors.toMap(DataFeedMetric::getId, DataFeedMetric::getName))); + .collect(Collectors.toMap(com.azure.ai.metricsadvisor.implementation.models.DataFeedMetric::getId, + com.azure.ai.metricsadvisor.implementation.models.DataFeedMetric::getName))); return dataFeed; } @@ -644,4 +648,62 @@ public static DataFeedDetailPatch toInnerForUpdate(final DataFeedSource dataFeed return dataFeedDetailPatch; } + + public static List + toInnerDimensionsListForCreate(List dimensions) { + List innerDimensions = null; + if (dimensions != null) { + innerDimensions = new ArrayList<>(); + for (DataFeedDimension dimension : dimensions) { + innerDimensions.add(new com.azure.ai.metricsadvisor.implementation.models.DataFeedDimension() + .setName(dimension.getName()).setDisplayName(dimension.getDisplayName())); + } + } + return innerDimensions; + } + + public static List + toInnerMetricsListForCreate(List metrics) { + List innerMetrics = null; + if (metrics != null) { + innerMetrics = new ArrayList<>(); + for (DataFeedMetric metric : metrics) { + innerMetrics.add(new com.azure.ai.metricsadvisor.implementation.models.DataFeedMetric() + .setName(metric.getName()) + .setDisplayName(metric.getDisplayName()) + .setDescription(metric.getDescription())); + } + } + return innerMetrics; + } + + private static List + fromInnerDimensionList(List innerList) { + if (innerList == null) { + return null; + } else { + List dimensions = new ArrayList<>(); + for (com.azure.ai.metricsadvisor.implementation.models.DataFeedDimension inner : innerList) { + dimensions.add(new DataFeedDimension(inner.getName()).setDisplayName(inner.getDisplayName())); + } + return dimensions; + } + } + + private static List fromInnerMetricList( + List innerList) { + if (innerList == null) { + return null; + } else { + List metrics = new ArrayList<>(); + for (com.azure.ai.metricsadvisor.implementation.models.DataFeedMetric inner : innerList) { + DataFeedMetric metric = new DataFeedMetric(inner.getName()) + .setDisplayName(inner.getDisplayName()) + .setDescription(inner.getDescription()); + DataFeedMetricAccessor.setId(metric, inner.getId()); + metrics.add(metric); + } + return metrics; + } + } } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DetectionConfigurationTransforms.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DetectionConfigurationTransforms.java index 00c9a30beb14..dc9af952a4f3 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DetectionConfigurationTransforms.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/main/java/com/azure/ai/metricsadvisor/implementation/util/DetectionConfigurationTransforms.java @@ -3,6 +3,9 @@ package com.azure.ai.metricsadvisor.implementation.util; +import com.azure.ai.metricsadvisor.administration.models.HardThresholdCondition; +import com.azure.ai.metricsadvisor.administration.models.SmartDetectionCondition; +import com.azure.ai.metricsadvisor.administration.models.SuppressCondition; import com.azure.ai.metricsadvisor.implementation.models.AnomalyDetectionConfigurationLogicType; import com.azure.ai.metricsadvisor.implementation.models.AnomalyDetectionConfigurationPatch; import com.azure.ai.metricsadvisor.implementation.models.ChangeThresholdConditionPatch; @@ -12,18 +15,15 @@ import com.azure.ai.metricsadvisor.implementation.models.SeriesConfiguration; import com.azure.ai.metricsadvisor.implementation.models.SeriesIdentity; import com.azure.ai.metricsadvisor.implementation.models.SmartDetectionConditionPatch; -import com.azure.ai.metricsadvisor.implementation.models.SuppressConditionPatch; import com.azure.ai.metricsadvisor.implementation.models.WholeMetricConfiguration; import com.azure.ai.metricsadvisor.implementation.models.WholeMetricConfigurationPatch; import com.azure.ai.metricsadvisor.administration.models.ChangeThresholdCondition; import com.azure.ai.metricsadvisor.administration.models.DetectionConditionOperator; import com.azure.ai.metricsadvisor.models.DimensionKey; -import com.azure.ai.metricsadvisor.administration.models.HardThresholdCondition; import com.azure.ai.metricsadvisor.administration.models.MetricWholeSeriesDetectionCondition; import com.azure.ai.metricsadvisor.administration.models.AnomalyDetectionConfiguration; import com.azure.ai.metricsadvisor.administration.models.MetricSeriesGroupDetectionCondition; import com.azure.ai.metricsadvisor.administration.models.MetricSingleSeriesDetectionCondition; -import com.azure.ai.metricsadvisor.administration.models.SmartDetectionCondition; import com.azure.core.http.rest.PagedResponse; import com.azure.core.http.rest.PagedResponseBase; import com.azure.core.util.CoreUtils; @@ -98,9 +98,9 @@ public static PagedResponse fromInnerPagedRespons } wholeSeriesConditions - .setSmartDetectionCondition(innerWholeSeriesConditions.getSmartDetectionCondition()) - .setChangeThresholdCondition(innerWholeSeriesConditions.getChangeThresholdCondition()) - .setHardThresholdCondition(innerWholeSeriesConditions.getHardThresholdCondition()); + .setSmartDetectionCondition(fromInner(innerWholeSeriesConditions.getSmartDetectionCondition())) + .setChangeThresholdCondition(fromInner(innerWholeSeriesConditions.getChangeThresholdCondition())) + .setHardThresholdCondition(fromInner(innerWholeSeriesConditions.getHardThresholdCondition())); configuration.setWholeSeriesDetectionCondition(wholeSeriesConditions); } @@ -131,9 +131,9 @@ public static PagedResponse fromInnerPagedRespons } seriesGroupCondition - .setSmartDetectionCondition(innerSeriesGroupConfiguration.getSmartDetectionCondition()) - .setChangeThresholdCondition(innerSeriesGroupConfiguration.getChangeThresholdCondition()) - .setHardThresholdCondition(innerSeriesGroupConfiguration.getHardThresholdCondition()); + .setSmartDetectionCondition(fromInner(innerSeriesGroupConfiguration.getSmartDetectionCondition())) + .setChangeThresholdCondition(fromInner(innerSeriesGroupConfiguration.getChangeThresholdCondition())) + .setHardThresholdCondition(fromInner(innerSeriesGroupConfiguration.getHardThresholdCondition())); configuration.addSeriesGroupDetectionCondition(seriesGroupCondition); @@ -164,9 +164,9 @@ public static PagedResponse fromInnerPagedRespons } seriesCondition - .setSmartDetectionCondition(innerSeriesConfiguration.getSmartDetectionCondition()) - .setChangeThresholdCondition(innerSeriesConfiguration.getChangeThresholdCondition()) - .setHardThresholdCondition(innerSeriesConfiguration.getHardThresholdCondition()); + .setSmartDetectionCondition(fromInner(innerSeriesConfiguration.getSmartDetectionCondition())) + .setChangeThresholdCondition(fromInner(innerSeriesConfiguration.getChangeThresholdCondition())) + .setHardThresholdCondition(fromInner(innerSeriesConfiguration.getHardThresholdCondition())); configuration.addSingleSeriesDetectionCondition(seriesCondition); }); @@ -273,9 +273,9 @@ public static com.azure.ai.metricsadvisor.implementation.models.AnomalyDetection + " is required when multiple conditions are specified for the whole series.")); } innerWholeSeriesCondition - .setSmartDetectionCondition(wholeSeriesCondition.getSmartDetectionCondition()) - .setChangeThresholdCondition(wholeSeriesCondition.getChangeThresholdCondition()) - .setHardThresholdCondition(wholeSeriesCondition.getHardThresholdCondition()); + .setSmartDetectionCondition(toInnerForCreate(wholeSeriesCondition.getSmartDetectionCondition())) + .setChangeThresholdCondition(toInnerForCreate(wholeSeriesCondition.getChangeThresholdCondition())) + .setHardThresholdCondition(toInnerForCreate(wholeSeriesCondition.getHardThresholdCondition())); return innerWholeSeriesCondition; } @@ -290,65 +290,18 @@ public static com.azure.ai.metricsadvisor.implementation.models.AnomalyDetection } if (wholeSeriesCondition.getSmartDetectionCondition() != null) { - SmartDetectionCondition smartDetectionCondition = wholeSeriesCondition.getSmartDetectionCondition(); - SmartDetectionConditionPatch smartDetectionConditionForUpdate = new SmartDetectionConditionPatch(); - smartDetectionConditionForUpdate - .setAnomalyDetectorDirection(smartDetectionCondition.getAnomalyDetectorDirection()) - .setSensitivity(smartDetectionCondition.getSensitivity()); - - if (smartDetectionCondition.getSuppressCondition() != null) { - SuppressConditionPatch suppressConditionForUpdate = new SuppressConditionPatch(); - suppressConditionForUpdate - .setMinNumber(smartDetectionCondition.getSuppressCondition().getMinNumber()) - .setMinRatio(smartDetectionCondition.getSuppressCondition().getMinRatio()); - - smartDetectionConditionForUpdate.setSuppressCondition(suppressConditionForUpdate); - - } - innerWholeSeriesCondition.setSmartDetectionCondition(smartDetectionConditionForUpdate); + innerWholeSeriesCondition + .setSmartDetectionCondition(toInnerForUpdate(wholeSeriesCondition.getSmartDetectionCondition())); } - if (wholeSeriesCondition.getChangeThresholdCondition() != null) { - ChangeThresholdCondition changeThresholdCondition = wholeSeriesCondition.getChangeThresholdCondition(); - ChangeThresholdConditionPatch changeThresholdConditionForUpdate = new ChangeThresholdConditionPatch(); - - changeThresholdConditionForUpdate - .setAnomalyDetectorDirection(changeThresholdCondition.getAnomalyDetectorDirection()) - .setChangePercentage(changeThresholdCondition.getChangePercentage()) - .setShiftPoint(changeThresholdCondition.getShiftPoint()) - .setWithinRange(changeThresholdCondition.isWithinRange()); - - if (changeThresholdCondition.getSuppressCondition() != null) { - SuppressConditionPatch suppressConditionForUpdate = new SuppressConditionPatch(); - suppressConditionForUpdate - .setMinNumber(changeThresholdCondition.getSuppressCondition().getMinNumber()) - .setMinRatio(changeThresholdCondition.getSuppressCondition().getMinRatio()); - - changeThresholdConditionForUpdate.setSuppressCondition(suppressConditionForUpdate); - } - innerWholeSeriesCondition.setChangeThresholdCondition(changeThresholdConditionForUpdate); + innerWholeSeriesCondition + .setChangeThresholdCondition(toInnerForUpdate(wholeSeriesCondition.getChangeThresholdCondition())); } if (wholeSeriesCondition.getHardThresholdCondition() != null) { - HardThresholdCondition hardThresholdCondition = wholeSeriesCondition.getHardThresholdCondition(); - HardThresholdConditionPatch hardThresholdConditionForUpdate = new HardThresholdConditionPatch(); - - hardThresholdConditionForUpdate - .setAnomalyDetectorDirection(hardThresholdCondition.getAnomalyDetectorDirection()) - .setLowerBound(hardThresholdCondition.getLowerBound()) - .setUpperBound(hardThresholdCondition.getUpperBound()); - - - if (hardThresholdCondition.getSuppressCondition() != null) { - SuppressConditionPatch suppressConditionForUpdate = new SuppressConditionPatch(); - suppressConditionForUpdate - .setMinNumber(hardThresholdCondition.getSuppressCondition().getMinNumber()) - .setMinRatio(hardThresholdCondition.getSuppressCondition().getMinRatio()); - - hardThresholdConditionForUpdate.setSuppressCondition(suppressConditionForUpdate); - } - innerWholeSeriesCondition.setHardThresholdCondition(hardThresholdConditionForUpdate); + innerWholeSeriesCondition + .setHardThresholdCondition(toInnerForUpdate(wholeSeriesCondition.getHardThresholdCondition())); } return innerWholeSeriesCondition; @@ -381,9 +334,9 @@ public static com.azure.ai.metricsadvisor.implementation.models.AnomalyDetection } innerConfiguration - .setSmartDetectionCondition(seriesGroupCondition.getSmartDetectionCondition()) - .setChangeThresholdCondition(seriesGroupCondition.getChangeThresholdCondition()) - .setHardThresholdCondition(seriesGroupCondition.getHardThresholdCondition()); + .setSmartDetectionCondition(toInnerForCreate(seriesGroupCondition.getSmartDetectionCondition())) + .setChangeThresholdCondition(toInnerForCreate(seriesGroupCondition.getChangeThresholdCondition())) + .setHardThresholdCondition(toInnerForCreate(seriesGroupCondition.getHardThresholdCondition())); return innerConfiguration; } @@ -412,9 +365,9 @@ public static com.azure.ai.metricsadvisor.implementation.models.AnomalyDetection } innerConfiguration - .setSmartDetectionCondition(seriesCondition.getSmartDetectionCondition()) - .setChangeThresholdCondition(seriesCondition.getChangeThresholdCondition()) - .setHardThresholdCondition(seriesCondition.getHardThresholdCondition()); + .setSmartDetectionCondition(toInnerForCreate(seriesCondition.getSmartDetectionCondition())) + .setChangeThresholdCondition(toInnerForCreate(seriesCondition.getChangeThresholdCondition())) + .setHardThresholdCondition(toInnerForCreate(seriesCondition.getHardThresholdCondition())); return innerConfiguration; } @@ -454,4 +407,138 @@ private static boolean hasMultipleNestedConditions(MetricSingleSeriesDetectionCo .findAny(); return multipleConditionsOpt.isPresent(); } + + private static ChangeThresholdCondition fromInner( + com.azure.ai.metricsadvisor.implementation.models.ChangeThresholdCondition inner) { + if (inner == null) { + return null; + } + return new ChangeThresholdCondition( + inner.getChangePercentage(), + inner.getShiftPoint(), + inner.isWithinRange(), + inner.getAnomalyDetectorDirection(), + fromInner(inner.getSuppressCondition())); + } + + private static com.azure.ai.metricsadvisor.implementation.models.ChangeThresholdCondition toInnerForCreate( + ChangeThresholdCondition condition) { + if (condition == null) { + return null; + } + return new com.azure.ai.metricsadvisor.implementation.models.ChangeThresholdCondition() + .setAnomalyDetectorDirection(condition.getAnomalyDetectorDirection()) + .setChangePercentage(condition.getChangePercentage()) + .setShiftPoint(condition.getShiftPoint()) + .setWithinRange(condition.isWithinRange()) + .setSuppressCondition(toInnerForCreate(condition.getSuppressCondition())); + } + + private static ChangeThresholdConditionPatch toInnerForUpdate(ChangeThresholdCondition condition) { + if (condition == null) { + return null; + } + ChangeThresholdConditionPatch inner = new ChangeThresholdConditionPatch(); + inner.setAnomalyDetectorDirection(condition.getAnomalyDetectorDirection()) + .setChangePercentage(condition.getChangePercentage()) + .setShiftPoint(condition.getShiftPoint()) + .setWithinRange(condition.isWithinRange()); + + if (condition.getSuppressCondition() != null) { + inner.setSuppressCondition(toInnerForUpdate(condition.getSuppressCondition())); + } + return inner; + } + + private static HardThresholdCondition fromInner( + com.azure.ai.metricsadvisor.implementation.models.HardThresholdCondition inner) { + if (inner == null) { + return null; + } + return new HardThresholdCondition(inner.getAnomalyDetectorDirection(), fromInner(inner.getSuppressCondition())) + .setLowerBound(inner.getLowerBound()) + .setUpperBound(inner.getUpperBound()); + } + + private static com.azure.ai.metricsadvisor.implementation.models.HardThresholdCondition toInnerForCreate( + HardThresholdCondition condition) { + if (condition == null) { + return null; + } + return new com.azure.ai.metricsadvisor.implementation.models.HardThresholdCondition() + .setAnomalyDetectorDirection(condition.getAnomalyDetectorDirection()) + .setSuppressCondition(toInnerForCreate(condition.getSuppressCondition())) + .setLowerBound(condition.getLowerBound()) + .setUpperBound(condition.getUpperBound()); + } + + private static HardThresholdConditionPatch toInnerForUpdate(HardThresholdCondition condition) { + if (condition == null) { + return null; + } + HardThresholdConditionPatch inner = new HardThresholdConditionPatch(); + inner.setAnomalyDetectorDirection(condition.getAnomalyDetectorDirection()) + .setLowerBound(condition.getLowerBound()) + .setUpperBound(condition.getUpperBound()); + + if (condition.getSuppressCondition() != null) { + inner.setSuppressCondition(toInnerForUpdate(condition.getSuppressCondition())); + } + return inner; + } + + private static SmartDetectionCondition fromInner( + com.azure.ai.metricsadvisor.implementation.models.SmartDetectionCondition inner) { + if (inner == null) { + return null; + } + return new SmartDetectionCondition(inner.getSensitivity(), + inner.getAnomalyDetectorDirection(), + fromInner(inner.getSuppressCondition())); + } + + private static com.azure.ai.metricsadvisor.implementation.models.SmartDetectionCondition toInnerForCreate( + SmartDetectionCondition condition) { + if (condition == null) { + return null; + } + return new com.azure.ai.metricsadvisor.implementation.models.SmartDetectionCondition() + .setSensitivity(condition.getSensitivity()) + .setAnomalyDetectorDirection(condition.getAnomalyDetectorDirection()) + .setSuppressCondition(toInnerForCreate(condition.getSuppressCondition())); + } + + private static SmartDetectionConditionPatch toInnerForUpdate(SmartDetectionCondition condition) { + if (condition == null) { + return null; + } + SmartDetectionConditionPatch inner = new SmartDetectionConditionPatch(); + inner + .setSensitivity(condition.getSensitivity()) + .setAnomalyDetectorDirection(condition.getAnomalyDetectorDirection()); + + if (condition.getSuppressCondition() != null) { + inner.setSuppressCondition(toInnerForUpdate(condition.getSuppressCondition())); + } + return inner; + } + + private static SuppressCondition fromInner( + com.azure.ai.metricsadvisor.implementation.models.SuppressCondition inner) { + return inner != null ? new SuppressCondition(inner.getMinNumber(), inner.getMinRatio()) : null; + } + + private static com.azure.ai.metricsadvisor.implementation.models.SuppressCondition toInnerForCreate( + SuppressCondition condition) { + return condition != null ? new com.azure.ai.metricsadvisor.implementation.models.SuppressCondition() + .setMinNumber(condition.getMinNumber()) + .setMinRatio(condition.getMinRatio()) : null; + } + + private static com.azure.ai.metricsadvisor.implementation.models.SuppressConditionPatch toInnerForUpdate( + SuppressCondition condition) { + return condition != null ? new com.azure.ai.metricsadvisor.implementation.models.SuppressConditionPatch() + .setMinNumber(condition.getMinNumber()) + .setMinRatio(condition.getMinRatio()) : null; + } } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListIncidentsDetectedAsyncSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListIncidentsDetectedAsyncSample.java index a78fb8f736a8..f8f2a86bb776 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListIncidentsDetectedAsyncSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListIncidentsDetectedAsyncSample.java @@ -28,7 +28,7 @@ public static void main(String[] args) { .setMaxPageSize(1000); PagedFlux incidentsFlux - = advisorAsyncClient.listIncidentsForDetectionConfiguration(detectionConfigurationId, startTime, endTime, options); + = advisorAsyncClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime, options); incidentsFlux.doOnNext(incident -> { System.out.printf("Data Feed Metric Id: %s%n", incident.getMetricId()); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListIncidentsDetectedSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListIncidentsDetectedSample.java index 2815834b5ca3..6a2f001e81b0 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListIncidentsDetectedSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListIncidentsDetectedSample.java @@ -29,7 +29,7 @@ public static void main(String[] args) { .setMaxPageSize(1000); PagedIterable incidentsIterable - = advisorClient.listIncidentsForDetectionConfiguration(detectionConfigurationId, startTime, endTime, options, + = advisorClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime, options, Context.NONE); for (AnomalyIncident anomalyIncident : incidentsIterable) { diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListsAnomaliesForDetectionConfigAsyncSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListsAnomaliesForDetectionConfigAsyncSample.java index 8dbc2b8090e5..69d45412c0a0 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListsAnomaliesForDetectionConfigAsyncSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListsAnomaliesForDetectionConfigAsyncSample.java @@ -29,7 +29,7 @@ public static void main(String[] args) { final ListAnomaliesDetectedOptions options = new ListAnomaliesDetectedOptions() .setMaxPageSize(10) .setFilter(filter); - advisorAsyncClient.listAnomaliesForDetectionConfiguration(detectionConfigurationId, + advisorAsyncClient.listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime, options) .doOnNext(anomaly -> { System.out.printf("DataPoint Anomaly Severity: %s%n", anomaly.getSeverity()); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListsAnomaliesForDetectionConfigSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListsAnomaliesForDetectionConfigSample.java index 6ae7e2b1cca6..fc54f12e4f9d 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListsAnomaliesForDetectionConfigSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ListsAnomaliesForDetectionConfigSample.java @@ -32,7 +32,7 @@ public static void main(String[] args) { .setMaxPageSize(10) .setFilter(filter); PagedIterable anomaliesIterable - = advisorClient.listAnomaliesForDetectionConfiguration(detectionConfigurationId, + = advisorClient.listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime); for (DataPointAnomaly dataPointAnomaly : anomaliesIterable) { diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/MetricsAdvisorAsyncClientJavaDocCodeSnippets.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/MetricsAdvisorAsyncClientJavaDocCodeSnippets.java index 8b2db9dc8bda..b13a78fd51af 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/MetricsAdvisorAsyncClientJavaDocCodeSnippets.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/MetricsAdvisorAsyncClientJavaDocCodeSnippets.java @@ -353,13 +353,13 @@ public void listAnomalyDimensionValuesWithOptions() { } public void listIncidentsForDetectionConfig() { - // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime + // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); PagedFlux incidentsFlux - = metricsAdvisorAsyncClient.listIncidentsForDetectionConfiguration(detectionConfigurationId, startTime, + = metricsAdvisorAsyncClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime); incidentsFlux.subscribe(incident -> { @@ -371,14 +371,14 @@ public void listIncidentsForDetectionConfig() { System.out.printf("Anomaly Incident Status: %s%n", incident.getStatus()); System.out.printf("Root DataFeedDimension Key: %s%n", incident.getRootDimensionKey().asMap()); }); - // END: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime + // END: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime } /** - * Code snippet for {@link MetricsAdvisorAsyncClient#listIncidentsForDetectionConfiguration(String, OffsetDateTime, OffsetDateTime, ListIncidentsDetectedOptions)}. + * Code snippet for {@link MetricsAdvisorAsyncClient#listIncidentsForDetectionConfig(String, OffsetDateTime, OffsetDateTime, ListIncidentsDetectedOptions)}. */ public void listIncidentsForDetectionConfigWithOptions() { - // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions + // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); @@ -386,7 +386,7 @@ public void listIncidentsForDetectionConfigWithOptions() { .setMaxPageSize(1000); PagedFlux incidentsFlux - = metricsAdvisorAsyncClient.listIncidentsForDetectionConfiguration(detectionConfigurationId, startTime, + = metricsAdvisorAsyncClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime, options); incidentsFlux.subscribe(incident -> { @@ -398,16 +398,16 @@ public void listIncidentsForDetectionConfigWithOptions() { System.out.printf("Anomaly Incident Status: %s%n", incident.getStatus()); System.out.printf("Root DataFeedDimension Key: %s%n", incident.getRootDimensionKey().asMap()); }); - // END: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions + // END: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions } public void listAnomaliesForDetectionConfiguration() { - // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime + // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); - metricsAdvisorAsyncClient.listAnomaliesForDetectionConfiguration(detectionConfigurationId, + metricsAdvisorAsyncClient.listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime) .subscribe(anomaly -> { System.out.printf("DataPoint Anomaly AnomalySeverity: %s%n", anomaly.getSeverity()); @@ -418,14 +418,14 @@ public void listAnomaliesForDetectionConfiguration() { dimension.getKey(), dimension.getValue()); } }); - // END: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime + // END: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime } /** - * Code snippet for {@link MetricsAdvisorAsyncClient#listAnomaliesForDetectionConfiguration(String, OffsetDateTime, OffsetDateTime, ListAnomaliesDetectedOptions)}. + * Code snippet for {@link MetricsAdvisorAsyncClient#listAnomaliesForDetectionConfig(String, OffsetDateTime, OffsetDateTime, ListAnomaliesDetectedOptions)}. */ public void listAnomaliesForDetectionConfigurationWithOptions() { - // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions + // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); @@ -434,7 +434,7 @@ public void listAnomaliesForDetectionConfigurationWithOptions() { final ListAnomaliesDetectedOptions options = new ListAnomaliesDetectedOptions() .setMaxPageSize(10) .setFilter(filter); - metricsAdvisorAsyncClient.listAnomaliesForDetectionConfiguration(detectionConfigurationId, + metricsAdvisorAsyncClient.listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime, options) .subscribe(anomaly -> { System.out.printf("DataPoint Anomaly AnomalySeverity: %s%n", anomaly.getSeverity()); @@ -445,7 +445,7 @@ public void listAnomaliesForDetectionConfigurationWithOptions() { dimension.getKey(), dimension.getValue()); } }); - // END: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions + // END: com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions } /* @@ -667,7 +667,7 @@ public void listIncidentRootCausesWithIncident() { = new ListIncidentsDetectedOptions() .setMaxPageSize(10); - metricsAdvisorAsyncClient.listIncidentsForDetectionConfiguration(detectionConfigurationId, startTime, endTime, + metricsAdvisorAsyncClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime, options) .flatMap(incident -> { return metricsAdvisorAsyncClient.listIncidentRootCauses(incident); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/MetricsAdvisorClientJavaDocCodeSnippets.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/MetricsAdvisorClientJavaDocCodeSnippets.java index 6e7f607a11a6..0252bafbe963 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/MetricsAdvisorClientJavaDocCodeSnippets.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/MetricsAdvisorClientJavaDocCodeSnippets.java @@ -438,16 +438,16 @@ public void listAnomalyDimensionValuesWithContext() { } /** - * Code snippet for {@link MetricsAdvisorClient#listIncidentsForDetectionConfiguration(String, OffsetDateTime, OffsetDateTime)}. + * Code snippet for {@link MetricsAdvisorClient#listIncidentsForDetectionConfig(String, OffsetDateTime, OffsetDateTime)}. */ public void listIncidentsForDetectionConfig() { - // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime + // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); PagedIterable incidentsIterable - = metricsAdvisorClient.listIncidentsForDetectionConfiguration(detectionConfigurationId, startTime, endTime); + = metricsAdvisorClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime); for (AnomalyIncident anomalyIncident : incidentsIterable) { System.out.printf("Data Feed Metric Id: %s%n", anomalyIncident.getMetricId()); @@ -458,14 +458,14 @@ public void listIncidentsForDetectionConfig() { System.out.printf("Anomaly Incident Status: %s%n", anomalyIncident.getStatus()); System.out.printf("Root DataFeedDimension Key: %s%n", anomalyIncident.getRootDimensionKey().asMap()); } - // END: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime + // END: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime } /** - * Code snippet for {@link MetricsAdvisorClient#listIncidentsForDetectionConfiguration(String, OffsetDateTime, OffsetDateTime, ListIncidentsDetectedOptions, Context)}. + * Code snippet for {@link MetricsAdvisorClient#listIncidentsForDetectionConfig(String, OffsetDateTime, OffsetDateTime, ListIncidentsDetectedOptions, Context)}. */ public void listIncidentsForDetectionConfigWithContext() { - // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions-Context + // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions-Context final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); @@ -473,7 +473,7 @@ public void listIncidentsForDetectionConfigWithContext() { .setMaxPageSize(1000); PagedIterable incidentsIterable - = metricsAdvisorClient.listIncidentsForDetectionConfiguration(detectionConfigurationId, + = metricsAdvisorClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime, options, Context.NONE); @@ -494,14 +494,14 @@ public void listIncidentsForDetectionConfigWithContext() { System.out.printf("Root DataFeedDimension Key: %s%n", anomalyIncident.getRootDimensionKey().asMap()); } }); - // END: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions-Context + // END: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listIncidentsForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListIncidentsDetectedOptions-Context } /* - * Code snippet for {@link MetricsAdvisorClient#listAnomaliesForDetectionConfiguration(String, ListAnomaliesDetectedOptions)}. + * Code snippet for {@link MetricsAdvisorClient#listAnomaliesForDetectionConfig(String, ListAnomaliesDetectedOptions)}. */ public void listAnomaliesForDetectionConfiguration() { - // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime + // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); @@ -511,7 +511,7 @@ public void listAnomaliesForDetectionConfiguration() { .setMaxPageSize(10) .setFilter(filter); PagedIterable anomaliesIterable - = metricsAdvisorClient.listAnomaliesForDetectionConfiguration(detectionConfigurationId, startTime, endTime, + = metricsAdvisorClient.listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime, options, Context.NONE); for (DataPointAnomaly dataPointAnomaly : anomaliesIterable) { @@ -523,14 +523,14 @@ public void listAnomaliesForDetectionConfiguration() { dimension.getKey(), dimension.getValue()); } } - // END: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime + // END: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime } /** - * Code snippet for {@link MetricsAdvisorClient#listAnomaliesForDetectionConfiguration(String, OffsetDateTime, OffsetDateTime, ListAnomaliesDetectedOptions, Context)}. + * Code snippet for {@link MetricsAdvisorClient#listAnomaliesForDetectionConfig(String, OffsetDateTime, OffsetDateTime, ListAnomaliesDetectedOptions, Context)}. */ public void listAnomaliesForDetectionConfigurationWithContext() { - // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions-Context + // BEGIN: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions-Context final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); @@ -540,7 +540,7 @@ public void listAnomaliesForDetectionConfigurationWithContext() { .setMaxPageSize(10) .setFilter(filter); PagedIterable anomaliesIterable - = metricsAdvisorClient.listAnomaliesForDetectionConfiguration(detectionConfigurationId, + = metricsAdvisorClient.listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime, options, Context.NONE); @@ -559,7 +559,7 @@ public void listAnomaliesForDetectionConfigurationWithContext() { } } }); - // END: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfiguration#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions-Context + // END: com.azure.ai.metricsadvisor.MetricsAdvisorClient.listAnomaliesForDetectionConfig#String-OffsetDateTime-OffsetDateTime-ListAnomaliesDetectedOptions-Context } /* @@ -801,7 +801,7 @@ public void listIncidentRootCausesWithIncident() { final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); - metricsAdvisorClient.listIncidentsForDetectionConfiguration(detectionConfigurationId, startTime, endTime) + metricsAdvisorClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime) .forEach(incident -> { metricsAdvisorClient.listIncidentRootCauses(incident) .forEach(incidentRootCause -> { diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ReadmeSamples.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ReadmeSamples.java index 71d1282a8b19..3f7296a5c566 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ReadmeSamples.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/ReadmeSamples.java @@ -29,10 +29,10 @@ import com.azure.ai.metricsadvisor.administration.models.MetricAlertConfigurationsOperator; import com.azure.ai.metricsadvisor.administration.models.MetricAnomalyAlertScope; import com.azure.ai.metricsadvisor.administration.models.MetricWholeSeriesDetectionCondition; +import com.azure.ai.metricsadvisor.administration.models.SeverityCondition; import com.azure.ai.metricsadvisor.models.MetricsAdvisorKeyCredential; import com.azure.ai.metricsadvisor.administration.models.MySqlDataFeedSource; import com.azure.ai.metricsadvisor.administration.models.NotificationHook; -import com.azure.ai.metricsadvisor.administration.models.SeverityCondition; import com.azure.ai.metricsadvisor.administration.models.SmartDetectionCondition; import com.azure.ai.metricsadvisor.administration.models.SqlServerDataFeedSource; import com.azure.ai.metricsadvisor.administration.models.SuppressCondition; @@ -114,12 +114,12 @@ public void createDataFeed() { .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setSchema(new DataFeedSchema( Arrays.asList( - new DataFeedMetric().setName("cost"), - new DataFeedMetric().setName("revenue") + new DataFeedMetric("cost"), + new DataFeedMetric("revenue") )).setDimensions( Arrays.asList( - new DataFeedDimension().setName("city"), - new DataFeedDimension().setName("category") + new DataFeedDimension("city"), + new DataFeedDimension("category") )) ) .setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z"))) @@ -172,22 +172,22 @@ public void checkIngestionStatus() { public void configureAnomalyDetection() { String metricId = "3d48er30-6e6e-4391-b78f-b00dfee1e6f5"; - ChangeThresholdCondition changeThresholdCondition = new ChangeThresholdCondition() - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setChangePercentage(20) - .setShiftPoint(10) - .setWithinRange(true) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(2)); + ChangeThresholdCondition changeThresholdCondition = new ChangeThresholdCondition( + 20, + 10, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 2)); - HardThresholdCondition hardThresholdCondition = new HardThresholdCondition() - .setAnomalyDetectorDirection(AnomalyDetectorDirection.DOWN) - .setLowerBound(5.0) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(1)); + HardThresholdCondition hardThresholdCondition = new HardThresholdCondition( + AnomalyDetectorDirection.DOWN, + new SuppressCondition(1, 1)) + .setLowerBound(5.0); - SmartDetectionCondition smartDetectionCondition = new SmartDetectionCondition() - .setAnomalyDetectorDirection(AnomalyDetectorDirection.UP) - .setSensitivity(10.0) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(2)); + SmartDetectionCondition smartDetectionCondition = new SmartDetectionCondition( + 10.0, + AnomalyDetectorDirection.UP, + new SuppressCondition(1, 2)); final AnomalyDetectionConfiguration anomalyDetectionConfiguration = metricsAdvisorAdminClient.createDetectionConfig( @@ -242,8 +242,8 @@ public void configureAlert() { new MetricAlertConfiguration(detectionConfigurationId2, MetricAnomalyAlertScope.forWholeSeries()) .setAlertConditions(new MetricAnomalyAlertConditions() - .setSeverityRangeCondition(new SeverityCondition() - .setMaxAlertSeverity(AnomalySeverity.HIGH))) + .setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.HIGH, + AnomalySeverity.HIGH))) )) .setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND) .setHookIdsToAlert(Arrays.asList(hookId1, hookId2))); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/AnomalyDetectionConfigurationAsyncSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/AnomalyDetectionConfigurationAsyncSample.java index 186311a1332c..7b448f603fb8 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/AnomalyDetectionConfigurationAsyncSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/AnomalyDetectionConfigurationAsyncSample.java @@ -101,21 +101,21 @@ public static void main(String[] args) { private static AnomalyDetectionConfiguration prepareDetectionConfigurationObject() { final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(50).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(50, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final String detectionConfigName = "my_detection_config"; final String detectionConfigDescription = "anomaly detection config for metric"; @@ -134,10 +134,10 @@ private static AnomalyDetectionConfiguration prepareDetectionConfigurationObject .put("city", "Seoul"); detectionConfig.addSeriesGroupDetectionCondition( new MetricSeriesGroupDetectionCondition(seriesGroupKey) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(10.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.UP) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2)))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 10.0, + AnomalyDetectorDirection.UP, + new SuppressCondition(2, 2)))); return detectionConfig; } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/AnomalyDetectionConfigurationSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/AnomalyDetectionConfigurationSample.java index 529736b5e295..2bbc46714711 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/AnomalyDetectionConfigurationSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/AnomalyDetectionConfigurationSample.java @@ -70,21 +70,21 @@ public static void main(String[] args) { private static AnomalyDetectionConfiguration prepareDetectionConfigurationObject() { final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(50).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(50, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final String detectionConfigName = "my_detection_config"; final String detectionConfigDescription = "anomaly detection config for metric"; @@ -103,10 +103,10 @@ private static AnomalyDetectionConfiguration prepareDetectionConfigurationObject .put("city", "Seoul"); detectionConfig.addSeriesGroupDetectionCondition( new MetricSeriesGroupDetectionCondition(seriesGroupKey) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(10.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.UP) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2)))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 10.0, + AnomalyDetectorDirection.UP, + new SuppressCondition(2, 2)))); return detectionConfig; } diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/DatafeedAsyncSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/DatafeedAsyncSample.java index 30f85b24973e..7f0b38a1e941 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/DatafeedAsyncSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/DatafeedAsyncSample.java @@ -40,12 +40,12 @@ public static void main(String[] args) { .setSchema( new DataFeedSchema( Arrays.asList( - new DataFeedMetric().setName("cost"), - new DataFeedMetric().setName("revenue") + new DataFeedMetric("cost"), + new DataFeedMetric("revenue") )).setDimensions( Arrays.asList( - new DataFeedDimension().setName("city"), - new DataFeedDimension().setName("category") + new DataFeedDimension("city"), + new DataFeedDimension("category") )) ).setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-07-01T00:00:00Z"))); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/DatafeedSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/DatafeedSample.java index 400770a730e1..a3a63c36eed1 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/DatafeedSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/DatafeedSample.java @@ -39,12 +39,12 @@ public static void main(String[] args) { .setSchema( new DataFeedSchema( Arrays.asList( - new DataFeedMetric().setName("cost"), - new DataFeedMetric().setName("revenue") + new DataFeedMetric("cost"), + new DataFeedMetric("revenue") )).setDimensions( Arrays.asList( - new DataFeedDimension().setName("city"), - new DataFeedDimension().setName("category") + new DataFeedDimension("city"), + new DataFeedDimension("category") )) ).setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-07-01T00:00:00Z"))); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationAsyncClientJavaDocCodeSnippets.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationAsyncClientJavaDocCodeSnippets.java index d25977d13e10..512da37487e3 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationAsyncClientJavaDocCodeSnippets.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationAsyncClientJavaDocCodeSnippets.java @@ -108,12 +108,12 @@ public void createDataFeed() { .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setSchema(new DataFeedSchema( Arrays.asList( - new DataFeedMetric().setName("cost"), - new DataFeedMetric().setName("revenue") + new DataFeedMetric("cost"), + new DataFeedMetric("revenue") )).setDimensions( Arrays.asList( - new DataFeedDimension().setName("city"), - new DataFeedDimension().setName("category") + new DataFeedDimension("city"), + new DataFeedDimension("category") )) ) .setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z"))) @@ -143,8 +143,8 @@ public void createDataFeedWithResponse() { .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setSchema(new DataFeedSchema( Arrays.asList( - new DataFeedMetric().setName("metric1"), - new DataFeedMetric().setName("metric2") + new DataFeedMetric("metric1"), + new DataFeedMetric("metric2") ) )) .setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z"))) @@ -640,21 +640,21 @@ public void createDetectionConfiguration() { // BEGIN: com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationAsyncClient.createDetectionConfig#String-AnomalyDetectionConfiguration final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(50).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(50, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final String detectionConfigName = "my_detection_config"; final String detectionConfigDescription = "anomaly detection config for metric"; @@ -682,21 +682,21 @@ public void createDetectionConfigurationWithResponse() { // BEGIN: com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationAsyncClient.createDetectionConfigWithResponse#String-AnomalyDetectionConfiguration final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(50).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(50, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final String detectionConfigName = "my_detection_config"; final String detectionConfigDescription = "anomaly detection config for metric"; @@ -1122,10 +1122,10 @@ public void updateDetectionConfiguration() { .put("city", "Seoul"); detectionConfig.addSeriesGroupDetectionCondition( new MetricSeriesGroupDetectionCondition(seriesGroupKey) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(10.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.UP) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2)))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 10.0, + AnomalyDetectorDirection.UP, + new SuppressCondition(2, 2)))); return metricsAdvisorAdminAsyncClient .updateDetectionConfig(detectionConfig); }) @@ -1154,10 +1154,10 @@ public void updateDetectionConfigurationWithResponse() { .put("city", "Seoul"); detectionConfig.addSeriesGroupDetectionCondition( new MetricSeriesGroupDetectionCondition(seriesGroupKey) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(10.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.UP) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2)))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 10.0, + AnomalyDetectorDirection.UP, + new SuppressCondition(2, 2)))); return metricsAdvisorAdminAsyncClient .updateDetectionConfigWithResponse(detectionConfig); }) @@ -1215,7 +1215,7 @@ public void createAnomalyAlertConfiguration() { new MetricAlertConfiguration(detectionConfigurationId2, MetricAnomalyAlertScope.forWholeSeries()) .setAlertConditions(new MetricAnomalyAlertConditions() - .setSeverityRangeCondition(new SeverityCondition().setMaxAlertSeverity(AnomalySeverity.HIGH))))) + .setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.HIGH, AnomalySeverity.HIGH))))) .setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND) .setHookIdsToAlert(Arrays.asList(hookId1, hookId2))) .subscribe(anomalyAlertConfiguration -> { @@ -1250,7 +1250,7 @@ public void createAnomalyAlertConfigurationWithResponse() { new MetricAlertConfiguration(detectionConfigurationId2, MetricAnomalyAlertScope.forWholeSeries()) .setAlertConditions(new MetricAnomalyAlertConditions() - .setSeverityRangeCondition(new SeverityCondition().setMaxAlertSeverity(AnomalySeverity.HIGH))))) + .setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.HIGH, AnomalySeverity.HIGH))))) .setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND) .setHookIdsToAlert(Arrays.asList(hookId1, hookId2))) .subscribe(alertConfigurationResponse -> { diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationClientJavaDocCodeSnippets.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationClientJavaDocCodeSnippets.java index 06351bc4a143..6ecea5925678 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationClientJavaDocCodeSnippets.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAdvisorAdministrationClientJavaDocCodeSnippets.java @@ -24,6 +24,7 @@ import com.azure.ai.metricsadvisor.administration.models.DatasourceCredentialEntity; import com.azure.ai.metricsadvisor.administration.models.DatasourceServicePrincipalInKeyVault; import com.azure.ai.metricsadvisor.administration.models.DetectionConditionOperator; +import com.azure.ai.metricsadvisor.administration.models.SeverityCondition; import com.azure.ai.metricsadvisor.models.DimensionKey; import com.azure.ai.metricsadvisor.administration.models.EmailNotificationHook; import com.azure.ai.metricsadvisor.administration.models.HardThresholdCondition; @@ -44,7 +45,6 @@ import com.azure.ai.metricsadvisor.models.MetricsAdvisorKeyCredential; import com.azure.ai.metricsadvisor.administration.models.MySqlDataFeedSource; import com.azure.ai.metricsadvisor.administration.models.NotificationHook; -import com.azure.ai.metricsadvisor.administration.models.SeverityCondition; import com.azure.ai.metricsadvisor.administration.models.SmartDetectionCondition; import com.azure.ai.metricsadvisor.administration.models.SuppressCondition; import com.azure.ai.metricsadvisor.administration.models.WebNotificationHook; @@ -114,12 +114,12 @@ public void createDataFeed() { .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setSchema(new DataFeedSchema( Arrays.asList( - new DataFeedMetric().setName("cost"), - new DataFeedMetric().setName("revenue") + new DataFeedMetric("cost"), + new DataFeedMetric("revenue") )).setDimensions( Arrays.asList( - new DataFeedDimension().setName("city"), - new DataFeedDimension().setName("category") + new DataFeedDimension("city"), + new DataFeedDimension("category") )) ) .setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z"))) @@ -148,12 +148,12 @@ public void createDataFeedWithResponse() { .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setSchema(new DataFeedSchema( Arrays.asList( - new DataFeedMetric().setName("cost"), - new DataFeedMetric().setName("revenue") + new DataFeedMetric("cost"), + new DataFeedMetric("revenue") )).setDimensions( Arrays.asList( - new DataFeedDimension().setName("city"), - new DataFeedDimension().setName("category") + new DataFeedDimension("city"), + new DataFeedDimension("category") )) ) .setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z"))) @@ -648,21 +648,21 @@ public void createDetectionConfiguration() { // BEGIN: com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationClient.createDetectionConfig#String-AnomalyDetectionConfiguration final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(50).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(50, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final String detectionConfigName = "my_detection_config"; final String detectionConfigDescription = "anomaly detection config for metric"; @@ -689,21 +689,21 @@ public void createDetectionConfigurationWithResponse() { // BEGIN: com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationClient.createDetectionConfigWithResponse#String-AnomalyDetectionConfiguration-Context final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(50).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(50, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final String detectionConfigName = "my_detection_config"; final String detectionConfigDescription = "anomaly detection config for metric"; @@ -1134,10 +1134,10 @@ public void updateDetectionConfiguration() { .put("city", "Seoul"); detectionConfig.addSeriesGroupDetectionCondition( new MetricSeriesGroupDetectionCondition(seriesGroupKey) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(10.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.UP) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2)))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 10.0, + AnomalyDetectorDirection.UP, + new SuppressCondition(2, 2)))); AnomalyDetectionConfiguration updatedDetectionConfig = metricsAdvisorAdminClient .updateDetectionConfig(detectionConfig); @@ -1164,10 +1164,10 @@ public void updateDetectionConfigurationWithResponse() { .put("city", "Seoul"); detectionConfig.addSeriesGroupDetectionCondition( new MetricSeriesGroupDetectionCondition(seriesGroupKey) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(10.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.UP) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2)))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 10.0, + AnomalyDetectorDirection.UP, + new SuppressCondition(2, 2)))); Response updateResponse = metricsAdvisorAdminClient .updateDetectionConfigWithResponse(detectionConfig, Context.NONE); @@ -1224,8 +1224,8 @@ public void createAnomalyAlertConfiguration() { new MetricAlertConfiguration(detectionConfigurationId2, MetricAnomalyAlertScope.forWholeSeries()) .setAlertConditions(new MetricAnomalyAlertConditions() - .setSeverityRangeCondition(new SeverityCondition() - .setMaxAlertSeverity(AnomalySeverity.HIGH))))) + .setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.HIGH, + AnomalySeverity.HIGH))))) .setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND) .setHookIdsToAlert(Arrays.asList(hookId1, hookId2))); @@ -1261,8 +1261,8 @@ public void createAnomalyAlertConfigurationWithResponse() { new MetricAlertConfiguration(detectionConfigurationId2, MetricAnomalyAlertScope.forWholeSeries()) .setAlertConditions(new MetricAnomalyAlertConditions() - .setSeverityRangeCondition(new SeverityCondition() - .setMaxAlertSeverity(AnomalySeverity.HIGH))))) + .setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.HIGH, + AnomalySeverity.HIGH))))) .setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND) .setHookIdsToAlert(Arrays.asList(hookId1, hookId2)), Context.NONE); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAnomalyAlertConfigOperationsAsyncSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAnomalyAlertConfigOperationsAsyncSample.java index 77fbdb3c198a..b00252731b16 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAnomalyAlertConfigOperationsAsyncSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAnomalyAlertConfigOperationsAsyncSample.java @@ -10,8 +10,8 @@ import com.azure.ai.metricsadvisor.administration.models.MetricAlertConfiguration; import com.azure.ai.metricsadvisor.administration.models.MetricAlertConfigurationsOperator; import com.azure.ai.metricsadvisor.administration.models.MetricAnomalyAlertScope; -import com.azure.ai.metricsadvisor.models.MetricsAdvisorKeyCredential; import com.azure.ai.metricsadvisor.administration.models.SeverityCondition; +import com.azure.ai.metricsadvisor.models.MetricsAdvisorKeyCredential; import reactor.core.publisher.Mono; import java.util.ArrayList; @@ -46,7 +46,7 @@ public static void main(String[] args) { new MetricAlertConfiguration(detectionConfigurationId2, MetricAnomalyAlertScope.forWholeSeries()) .setAlertConditions(new MetricAnomalyAlertConditions() - .setSeverityRangeCondition(new SeverityCondition().setMinAlertSeverity(AnomalySeverity.LOW))))) + .setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.LOW, AnomalySeverity.LOW))))) .setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND) .setHookIdsToAlert(Arrays.asList(hookId1, hookId2))); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAnomalyAlertConfigOperationsSample.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAnomalyAlertConfigOperationsSample.java index 4cc699e37a9a..72155fc046e0 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAnomalyAlertConfigOperationsSample.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/samples/java/com/azure/ai/metricsadvisor/administration/MetricsAnomalyAlertConfigOperationsSample.java @@ -10,8 +10,8 @@ import com.azure.ai.metricsadvisor.administration.models.MetricAlertConfiguration; import com.azure.ai.metricsadvisor.administration.models.MetricAlertConfigurationsOperator; import com.azure.ai.metricsadvisor.administration.models.MetricAnomalyAlertScope; -import com.azure.ai.metricsadvisor.models.MetricsAdvisorKeyCredential; import com.azure.ai.metricsadvisor.administration.models.SeverityCondition; +import com.azure.ai.metricsadvisor.models.MetricsAdvisorKeyCredential; import java.util.ArrayList; import java.util.Arrays; @@ -46,7 +46,7 @@ public static void main(String[] args) { new MetricAlertConfiguration(detectionConfigurationId2, MetricAnomalyAlertScope.forWholeSeries()) .setAlertConditions(new MetricAnomalyAlertConditions() - .setSeverityRangeCondition(new SeverityCondition().setMinAlertSeverity(AnomalySeverity.LOW))))) + .setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.LOW, AnomalySeverity.LOW))))) .setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND) .setHookIdsToAlert(Arrays.asList(hookId1, hookId2))); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyIncidentDetectedAsyncTest.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyIncidentDetectedAsyncTest.java index 1adc5105f368..66015fe15642 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyIncidentDetectedAsyncTest.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyIncidentDetectedAsyncTest.java @@ -40,7 +40,7 @@ public void listIncidentsDetected(HttpClient httpClient, MetricsAdvisorServiceVe MetricsAdvisorAsyncClient client = getMetricsAdvisorBuilder(httpClient, serviceVersion).buildAsyncClient(); PagedFlux incidentsFlux - = client.listIncidentsForDetectionConfiguration( + = client.listIncidentsForDetectionConfig( ListIncidentsDetectedInput.INSTANCE.detectionConfigurationId, ListIncidentsDetectedInput.INSTANCE.startTime, ListIncidentsDetectedInput.INSTANCE.endTime, ListIncidentsDetectedInput.INSTANCE.options); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyIncidentDetectedTest.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyIncidentDetectedTest.java index 0bc6010c4053..bfa4b0222bed 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyIncidentDetectedTest.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/AnomalyIncidentDetectedTest.java @@ -38,7 +38,7 @@ public void listIncidentsDetected(HttpClient httpClient, MetricsAdvisorServiceVe MetricsAdvisorClient client = getMetricsAdvisorBuilder(httpClient, serviceVersion).buildClient(); PagedIterable incidentsIterable - = client.listIncidentsForDetectionConfiguration( + = client.listIncidentsForDetectionConfig( ListIncidentsDetectedInput.INSTANCE.detectionConfigurationId, ListIncidentsDetectedInput.INSTANCE.startTime, ListIncidentsDetectedInput.INSTANCE.endTime, ListIncidentsDetectedInput.INSTANCE.options, Context.NONE); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedClientTest.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedClientTest.java index 47a0d58cb705..695f98bcf638 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedClientTest.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedClientTest.java @@ -123,7 +123,7 @@ void testListDataFeed(HttpClient httpClient, MetricsAdvisorServiceVersion servic /** * Verifies the result of the list data feed method to return only 3 results using - * {@link ListDataFeedOptions#setMaxPageSize(int)}. + * {@link ListDataFeedOptions#setMaxPageSize(Integer)}}. */ @ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS) @MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters") @@ -679,14 +679,14 @@ void createDataFeedRequiredParams(HttpClient httpClient, MetricsAdvisorServiceVe new DataFeed() .setName("name") .setSource(new PostgreSqlDataFeedSource("conn-string", "query")) - .setSchema(new DataFeedSchema(Collections.singletonList(new DataFeedMetric().setName("name")))))); + .setSchema(new DataFeedSchema(Collections.singletonList(new DataFeedMetric("name")))))); assertEquals("'dataFeedGranularity.granularityType' is required and cannot be null.", ex.getMessage()); ex = assertThrows(NullPointerException.class, () -> client.createDataFeed( new DataFeed() .setName("name") .setSource(new PostgreSqlDataFeedSource("conn-string", "query")) - .setSchema(new DataFeedSchema(Collections.singletonList(new DataFeedMetric().setName("name")))) + .setSchema(new DataFeedSchema(Collections.singletonList(new DataFeedMetric("name")))) .setGranularity(new DataFeedGranularity().setGranularityType(DAILY)))); assertEquals("'dataFeedIngestionSettings.ingestionStartTime' is required and cannot be null.", ex.getMessage()); @@ -774,8 +774,8 @@ public void createDataFeedDuplicateMetricName(HttpClient httpClient, MetricsAdvi try { // Arrange client = getMetricsAdvisorAdministrationBuilder(httpClient, serviceVersion).buildClient(); - DataFeedMetric dataFeedMetric = new DataFeedMetric().setName("cost"); - DataFeedMetric dataFeedMetric2 = new DataFeedMetric().setName("cost"); + DataFeedMetric dataFeedMetric = new DataFeedMetric("cost"); + DataFeedMetric dataFeedMetric2 = new DataFeedMetric("cost"); creatDataFeedRunner(expectedDataFeed -> { expectedDataFeed.setSchema(new DataFeedSchema(Arrays.asList(dataFeedMetric, dataFeedMetric2))); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedTestBase.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedTestBase.java index 181547040b37..80113ebc1948 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedTestBase.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedTestBase.java @@ -163,11 +163,11 @@ void creatDataFeedRunner(Consumer testRunner, DataFeedSourceType dataF } testRunner.accept(dataFeed.setSchema(new DataFeedSchema(Arrays.asList( - new DataFeedMetric().setName("cost").setDisplayName("cost"), - new DataFeedMetric().setName("revenue").setDisplayName("revenue"))) + new DataFeedMetric("cost").setDisplayName("cost"), + new DataFeedMetric("revenue").setDisplayName("revenue"))) .setDimensions(Arrays.asList( - new DataFeedDimension().setName("city").setDisplayName("city"), - new DataFeedDimension().setName("category").setDisplayName("category")))) + new DataFeedDimension("city").setDisplayName("city"), + new DataFeedDimension("category").setDisplayName("category")))) .setName("java_create_data_feed_test_sample" + UUID.randomUUID()) .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setIngestionSettings(new DataFeedIngestionSettings(INGESTION_START_TIME))); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedWithCredentialsTestBase.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedWithCredentialsTestBase.java index 1cc8c68cb368..af99af551c2c 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedWithCredentialsTestBase.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DataFeedWithCredentialsTestBase.java @@ -113,11 +113,11 @@ protected void validateDataExplorerFeedWithCredential(DataFeed dataFeed, protected DataFeed initDataFeed() { return new DataFeed().setSchema(new DataFeedSchema(Arrays.asList( - new DataFeedMetric().setName("cost").setDisplayName("cost"), - new DataFeedMetric().setName("revenue").setDisplayName("revenue"))) + new DataFeedMetric("cost").setDisplayName("cost"), + new DataFeedMetric("revenue").setDisplayName("revenue"))) .setDimensions(Arrays.asList( - new DataFeedDimension().setName("city").setDisplayName("city"), - new DataFeedDimension().setName("category").setDisplayName("category")))) + new DataFeedDimension("city").setDisplayName("city"), + new DataFeedDimension("category").setDisplayName("category")))) .setName("java_create_data_feed_test_sample" + UUID.randomUUID()) .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setIngestionSettings(new DataFeedIngestionSettings(INGESTION_START_TIME)); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DetectionConfigurationTestBase.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DetectionConfigurationTestBase.java index 5ec53e39b46c..3c9715f1ee2c 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DetectionConfigurationTestBase.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/DetectionConfigurationTestBase.java @@ -45,21 +45,21 @@ protected static class CreateDetectionConfigurationForWholeSeriesInput { final String detectionConfigName = "testdetectionconfig" + UUID.randomUUID(); final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(13).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(13, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final AnomalyDetectionConfiguration detectionConfiguration = new AnomalyDetectionConfiguration(detectionConfigName) @@ -144,21 +144,21 @@ protected static class CreateDetectionConfigurationForSeriesAndGroupInput { final String detectionConfigName = "testdetectionconfig" + UUID.randomUUID(); final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.AND) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(13).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(13, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final DimensionKey seriesKey = new DimensionKey() .put("city", "Shenzhen") @@ -166,20 +166,20 @@ protected static class CreateDetectionConfigurationForSeriesAndGroupInput { final MetricSingleSeriesDetectionCondition seriesCondition = new MetricSingleSeriesDetectionCondition(seriesKey) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))); final DimensionKey seriesGroupKey = new DimensionKey() .put("city", "Sao Paulo"); final MetricSeriesGroupDetectionCondition seriesGroupCondition = new MetricSeriesGroupDetectionCondition(seriesGroupKey) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))); final AnomalyDetectionConfiguration detectionConfiguration = new AnomalyDetectionConfiguration(detectionConfigName) @@ -321,21 +321,21 @@ protected static class CreateDetectionConfigurationForMultipleSeriesAndGroupInpu final String detectionConfigName = "testdetectionconfig" + UUID.randomUUID(); final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.AND) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(13).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(13, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final DimensionKey seriesKey1 = new DimensionKey() .put("city", "Shenzhen") @@ -344,21 +344,21 @@ protected static class CreateDetectionConfigurationForMultipleSeriesAndGroupInpu final MetricSingleSeriesDetectionCondition seriesCondition1 = new MetricSingleSeriesDetectionCondition(seriesKey1) .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final DimensionKey seriesKey2 = new DimensionKey() .put("city", "Osaka") @@ -366,10 +366,10 @@ protected static class CreateDetectionConfigurationForMultipleSeriesAndGroupInpu final MetricSingleSeriesDetectionCondition seriesCondition2 = new MetricSingleSeriesDetectionCondition(seriesKey2) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))); final DimensionKey seriesGroupKey1 = new DimensionKey() .put("city", "Sao Paulo"); @@ -377,31 +377,31 @@ protected static class CreateDetectionConfigurationForMultipleSeriesAndGroupInpu final MetricSeriesGroupDetectionCondition seriesGroupCondition1 = new MetricSeriesGroupDetectionCondition(seriesGroupKey1) .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final DimensionKey seriesGroupKey2 = new DimensionKey() .put("city", "Seoul"); final MetricSeriesGroupDetectionCondition seriesGroupCondition2 = new MetricSeriesGroupDetectionCondition(seriesGroupKey2) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))); final AnomalyDetectionConfiguration detectionConfiguration = new AnomalyDetectionConfiguration(detectionConfigName) @@ -689,21 +689,21 @@ protected static class UpdateDetectionConfigurationInput { final String detectionConfigName = "testdetectionconfig" + UUID.randomUUID(); final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition() .setConditionOperator(DetectionConditionOperator.AND) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(50) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(13).setMinRatio(50))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 50, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(13, 50))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final DimensionKey seriesKey1 = new DimensionKey() .put("city", "Shenzhen") @@ -712,21 +712,21 @@ protected static class UpdateDetectionConfigurationInput { final MetricSingleSeriesDetectionCondition seriesCondition1 = new MetricSingleSeriesDetectionCondition(seriesKey1) .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final DimensionKey seriesKey2 = new DimensionKey() .put("city", "Osaka") @@ -734,10 +734,10 @@ protected static class UpdateDetectionConfigurationInput { final MetricSingleSeriesDetectionCondition seriesCondition2 = new MetricSingleSeriesDetectionCondition(seriesKey2) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))); final DimensionKey seriesGroupKey1 = new DimensionKey() .put("city", "Sao Paulo"); @@ -745,21 +745,21 @@ protected static class UpdateDetectionConfigurationInput { final MetricSeriesGroupDetectionCondition seriesGroupCondition1 = new MetricSeriesGroupDetectionCondition(seriesGroupKey1) .setConditionOperator(DetectionConditionOperator.OR) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))) - .setHardThresholdCondition(new HardThresholdCondition() + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))) + .setHardThresholdCondition(new HardThresholdCondition( + AnomalyDetectorDirection.BOTH, + new SuppressCondition(5, 5)) .setLowerBound(0.0) - .setUpperBound(100.0) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(5).setMinRatio(5))) - .setChangeThresholdCondition(new ChangeThresholdCondition() - .setChangePercentage(50) - .setShiftPoint(30) - .setWithinRange(true) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(2).setMinRatio(2))); + .setUpperBound(100.0)) + .setChangeThresholdCondition(new ChangeThresholdCondition( + 50, + 30, + true, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(2, 2))); final AnomalyDetectionConfiguration detectionConfiguration = new AnomalyDetectionConfiguration(detectionConfigName) @@ -777,10 +777,10 @@ protected static class UpdateDetectionConfigurationInput { final MetricSeriesGroupDetectionCondition seriesGroupConditionToAddOnUpdate = new MetricSeriesGroupDetectionCondition(seriesGroupKeyToAddOnUpdate) - .setSmartDetectionCondition(new SmartDetectionCondition() - .setSensitivity(63) - .setAnomalyDetectorDirection(AnomalyDetectorDirection.BOTH) - .setSuppressCondition(new SuppressCondition().setMinNumber(1).setMinRatio(100))); + .setSmartDetectionCondition(new SmartDetectionCondition( + 63, + AnomalyDetectorDirection.BOTH, + new SuppressCondition(1, 100))); } protected DataFeed createDataFeed(HttpClient httpClient, @@ -792,11 +792,11 @@ protected DataFeed createDataFeed(HttpClient httpClient, SQL_SERVER_CONNECTION_STRING, TEMPLATE_QUERY)); dataFeed.setSchema(new DataFeedSchema(Arrays.asList( - new DataFeedMetric().setName("cost").setDisplayName("cost"), - new DataFeedMetric().setName("revenue").setDisplayName("revenue"))) + new DataFeedMetric("cost").setDisplayName("cost"), + new DataFeedMetric("revenue").setDisplayName("revenue"))) .setDimensions(Arrays.asList( - new DataFeedDimension().setName("city").setDisplayName("city"), - new DataFeedDimension().setName("category").setDisplayName("category")))) + new DataFeedDimension("city").setDisplayName("city"), + new DataFeedDimension("category").setDisplayName("category")))) .setName("java_data_feed_for_detection" + UUID.randomUUID()) .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setIngestionSettings(new DataFeedIngestionSettings(INGESTION_START_TIME)); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/TestUtils.java b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/TestUtils.java index 8ac83099adf8..db126434f206 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/TestUtils.java +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/src/test/java/com/azure/ai/metricsadvisor/TestUtils.java @@ -138,11 +138,11 @@ private TestUtils() { static DataFeed getSQLDataFeedSample() { return new DataFeed().setSource(SqlServerDataFeedSource.fromBasicCredential(SQL_SERVER_CONNECTION_STRING, TEMPLATE_QUERY)).setSchema(new DataFeedSchema(Arrays.asList( - new DataFeedMetric().setName("cost"), - new DataFeedMetric().setName("revenue"))) + new DataFeedMetric("cost"), + new DataFeedMetric("revenue"))) .setDimensions(Arrays.asList( - new DataFeedDimension().setName("city"), - new DataFeedDimension().setName("category")))) + new DataFeedDimension("city"), + new DataFeedDimension("category")))) .setName("java_SQL_create_data_feed_test_sample" + UUID.randomUUID()) .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setIngestionSettings(new DataFeedIngestionSettings(INGESTION_START_TIME)); @@ -151,11 +151,11 @@ static DataFeed getSQLDataFeedSample() { static DataFeed getAzureBlobDataFeedSample() { return new DataFeed().setSource(AzureBlobDataFeedSource.fromBasicCredential(BLOB_CONNECTION_STRING, "BLOB_CONTAINER", "BLOB_TEMPLATE_NAME")).setSchema(new DataFeedSchema(Arrays.asList( - new DataFeedMetric().setName("cost"), - new DataFeedMetric().setName("revenue"))) + new DataFeedMetric("cost"), + new DataFeedMetric("revenue"))) .setDimensions(Arrays.asList( - new DataFeedDimension().setName("city"), - new DataFeedDimension().setName("category")))) + new DataFeedDimension("city"), + new DataFeedDimension("category")))) .setName("java_BLOB_create_data_feed_test_sample" + UUID.randomUUID()) .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY)) .setIngestionSettings(new DataFeedIngestionSettings(INGESTION_START_TIME)); diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/swagger/README.md b/sdk/metricsadvisor/azure-ai-metricsadvisor/swagger/README.md index a8129c354408..a2f68fb9396b 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/swagger/README.md +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/swagger/README.md @@ -32,7 +32,7 @@ add-context-parameter: true models-subpackage: implementation.models context-client-method-parameter: true custom-types-subpackage: models -custom-types: AnomalyDetectorDirection,AnomalyStatus,AnomalyValue,ChangePointValue,ChangeThresholdCondition,DataFeedIngestionProgress,DataFeedDimension,EnrichmentStatus,FeedbackType,HardThresholdCondition,AnomalyIncidentStatus,IngestionStatusType,DataFeedMetric,PeriodType,AnomalySeverity,SeverityCondition,SmartDetectionCondition,SnoozeScope,SuppressCondition,AlertQueryTimeMode,TopNGroupScope,DataFeedIngestionStatus,MetricAnomalyAlertSnoozeCondition,MetricSeriesDefinition,FeedbackQueryTimeMode,AnomalyAlert,DataFeedGranularityType,DataFeedRollupType,DataFeedAutoRollUpMethod,DataFeedStatus,MetricsAdvisorErrorCodeException,MetricsAdvisorErrorCode +custom-types: AnomalyDetectorDirection,AnomalyStatus,AnomalyValue,ChangePointValue,DataFeedIngestionProgress,EnrichmentStatus,FeedbackType,AnomalyIncidentStatus,IngestionStatusType,PeriodType,AnomalySeverity,SnoozeScope,AlertQueryTimeMode,DataFeedIngestionStatus,MetricSeriesDefinition,FeedbackQueryTimeMode,AnomalyAlert,DataFeedGranularityType,DataFeedRollupType,DataFeedAutoRollUpMethod,DataFeedStatus,MetricsAdvisorErrorCodeException,MetricsAdvisorErrorCode ``` ### Generated types renamed and moved to model