diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/README.md b/sdk/metricsadvisor/azure-ai-metricsadvisor/README.md index 326b046d1bfc..ef87411badef 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/README.md +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/README.md @@ -257,7 +257,7 @@ detection_config = client.create_detection_configuration( metric_id=metric_id, description="anomaly detection config for metric", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", change_threshold_condition=change_threshold_condition, hard_threshold_condition=hard_threshold_condition, smart_detection_condition=smart_detection_condition diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_administration_client.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_administration_client.py index 2b1111e19bc8..92a33fd6cb26 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_administration_client.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_administration_client.py @@ -1110,7 +1110,7 @@ def list_data_feeds( :keyword str data_feed_name: filter data feed by its name. :keyword data_source_type: filter data feed by its source type. - :paramtype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :paramtype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :keyword granularity_type: filter data feed by its granularity. :paramtype granularity_type: str or ~azure.ai.metricsadvisor.models.DataFeedGranularityType :keyword status: filter data feed by its status. diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_client.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_client.py index 12fc65b10c8f..428247c60f5d 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_client.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_client.py @@ -31,7 +31,11 @@ MetricSeriesData, AnomalyAlert, IncidentRootCause, - MetricEnrichedSeriesData + MetricEnrichedSeriesData, + AnomalyFeedback, + ChangePointFeedback, + CommentFeedback, + PeriodFeedback ) from ._version import SDK_MONIKER @@ -42,15 +46,17 @@ MetricSeriesItem as MetricSeriesDefinition, TimeMode as AlertQueryTimeMode, ) - from .models._models import ( - AnomalyFeedback, - ChangePointFeedback, - CommentFeedback, - PeriodFeedback - ) + from .models._models import MetricFeedback from ._metrics_advisor_key_credential import MetricsAdvisorKeyCredential from azure.core.paging import ItemPaged +FeedbackUnion = Union[ + AnomalyFeedback, + ChangePointFeedback, + CommentFeedback, + PeriodFeedback, +] + class MetricsAdvisorClient(object): """Represents an client that calls restful API of Azure Metrics Advisor service. @@ -106,7 +112,7 @@ def close(self): @distributed_trace def add_feedback(self, feedback, **kwargs): - # type: (Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback], Any) -> None + # type: (FeedbackUnion, Any) -> None """Create a new metric feedback. @@ -133,13 +139,14 @@ def add_feedback(self, feedback, **kwargs): @distributed_trace def get_feedback(self, feedback_id, **kwargs): - # type: (str, Any) -> Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback] + # type: (str, Any) -> Union[MetricFeedback, FeedbackUnion] """Get a metric feedback by its id. :param str feedback_id: the id of the feedback. :return: The feedback object - :rtype: ~azure.ai.metricsadvisor.models.AnomalyFeedback or + :rtype: ~azure.ai.metricsadvisor.models.MetricFeedback or + ~azure.ai.metricsadvisor.models.AnomalyFeedback or ~azure.ai.metricsadvisor.models.ChangePointFeedback or ~azure.ai.metricsadvisor.models.CommentFeedback or ~azure.ai.metricsadvisor.models.PeriodFeedback @@ -161,7 +168,7 @@ def get_feedback(self, feedback_id, **kwargs): @distributed_trace def list_feedback(self, metric_id, **kwargs): - # type: (str, Any) -> ItemPaged[Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]] + # type: (str, Any) -> ItemPaged[Union[MetricFeedback, FeedbackUnion]] """List feedback on the given metric. @@ -179,7 +186,7 @@ def list_feedback(self, metric_id, **kwargs): :paramtype time_mode: str or ~azure.ai.metricsadvisor.models.FeedbackQueryTimeMode :return: Pageable list of MetricFeedback :rtype: ~azure.core.paging.ItemPaged[ - Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]] + Union[MetricFeedback, AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]] :raises ~azure.core.exceptions.HttpResponseError: .. admonition:: Example: @@ -687,11 +694,11 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs): **kwargs) @distributed_trace - def list_metrics_series_data(self, + def list_metric_series_data(self, metric_id, # type: str + series_keys, # type: List[Dict[str, str]] start_time, # type: Union[str, datetime.datetime] end_time, # type: Union[str, datetime.datetime] - series_to_filter, # type: List[Dict[str, str]] **kwargs # type: Any ): # type: (...) -> ItemPaged[MetricSeriesData] @@ -700,10 +707,10 @@ def list_metrics_series_data(self, :param metric_id: metric unique id. :type metric_id: str + :param series_keys: query specific series. + :type series_keys: list[dict[str, str]] :param Union[str, datetime.datetime] start_time: start time filter under chosen time mode. :param Union[str, datetime.datetime] end_time: end time filter under chosen time mode. - :param series_to_filter: query specific series. - :type series_to_filter: list[dict[str, str]] :return: Time series data from metric. :rtype: ~azure.core.paging.ItemPaged[~azure.ai.metricsadvisor.models.MetricSeriesData] :raises ~azure.core.exceptions.HttpResponseError: @@ -711,8 +718,8 @@ def list_metrics_series_data(self, .. admonition:: Example: .. literalinclude:: ../samples/sample_queries.py - :start-after: [START list_metrics_series_data] - :end-before: [END list_metrics_series_data] + :start-after: [START list_metric_series_data] + :end-before: [END list_metric_series_data] :language: python :dedent: 4 :caption: Query metrics series data. @@ -724,7 +731,7 @@ def list_metrics_series_data(self, metric_data_query_options = MetricDataQueryOptions( start_time=converted_start_time, end_time=converted_end_time, - series=series_to_filter, + series=series_keys, ) return self._client.get_metric_data( # type: ignore diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_administration_client_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_administration_client_async.py index c90ac9502a2a..cca021fde32d 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_administration_client_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_administration_client_async.py @@ -1005,7 +1005,7 @@ def list_data_feeds( :keyword str data_feed_name: filter data feed by its name. :keyword data_source_type: filter data feed by its source type. - :paramtype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :paramtype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :keyword granularity_type: filter data feed by its granularity. :paramtype granularity_type: str or ~azure.ai.metricsadvisor.models.DataFeedGranularityType :keyword status: filter data feed by its status. diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_client_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_client_async.py index 48d005195fc2..b3bcc2df2e8e 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_client_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_client_async.py @@ -44,14 +44,10 @@ EnrichmentStatus, MetricSeriesItem as MetricSeriesDefinition ) - from ..models._models import ( - AnomalyFeedback, - ChangePointFeedback, - CommentFeedback, - PeriodFeedback - ) + from ..models._models import MetricFeedback from .._metrics_advisor_key_credential import MetricsAdvisorKeyCredential from azure.core.credentials_async import AsyncTokenCredential + from .._metrics_advisor_client import FeedbackUnion class MetricsAdvisorClient(object): """Represents an client that calls restful API of Azure Metrics Advisor service. @@ -107,7 +103,7 @@ async def close(self) -> None: @distributed_trace_async async def add_feedback(self, feedback, **kwargs): - # type: (Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback], Any) -> None + # type: (FeedbackUnion, Any) -> None """Create a new metric feedback. @@ -134,13 +130,14 @@ async def add_feedback(self, feedback, **kwargs): @distributed_trace_async async def get_feedback(self, feedback_id, **kwargs): - # type: (str, Any) -> Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback] + # type: (str, Any) -> Union[MetricFeedback, FeedbackUnion] """Get a metric feedback by its id. :param str feedback_id: the id of the feedback. :return: The feedback object - :rtype: ~azure.ai.metricsadvisor.models.AnomalyFeedback or + :rtype: ~azure.ai.metricsadvisor.models.MetricFeedback or + ~azure.ai.metricsadvisor.models.AnomalyFeedback or ~azure.ai.metricsadvisor.models.ChangePointFeedback or ~azure.ai.metricsadvisor.models.CommentFeedback or ~azure.ai.metricsadvisor.models.PeriodFeedback @@ -167,7 +164,7 @@ def list_feedback( self, metric_id, # type: str **kwargs # type: Any ): - # type: (...) -> AsyncItemPaged[Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]] + # type: (...) -> AsyncItemPaged[Union[MetricFeedback, FeedbackUnion]] """List feedback on the given metric. @@ -185,7 +182,7 @@ def list_feedback( :paramtype time_mode: str or ~azure.ai.metricsadvisor.models.FeedbackQueryTimeMode :return: Pageable list of MetricFeedback :rtype: ~azure.core.async_paging.AsyncItemPaged[ - Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]] + Union[MetricFeedback, AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]] :raises ~azure.core.exceptions.HttpResponseError: .. admonition:: Example: @@ -699,11 +696,11 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs): **kwargs) @distributed_trace - def list_metrics_series_data( + def list_metric_series_data( self, metric_id, # type: str + series_keys, # type: List[Dict[str, str]] start_time, # type: Union[str, datetime.datetime] end_time, # type: Union[str, datetime.datetime] - series_to_filter, # type: List[Dict[str, str]] **kwargs # type: Any ): # type: (...) -> AsyncItemPaged[MetricSeriesData] @@ -712,10 +709,10 @@ def list_metrics_series_data( :param metric_id: metric unique id. :type metric_id: str + :param series_keys: query specific series. + :type series_keys: list[dict[str, str]] :param Union[str, datetime.datetime] start_time: start time filter under chosen time mode. :param Union[str, datetime.datetime] end_time: end time filter under chosen time mode. - :param series_to_filter: query specific series. - :type series_to_filter: list[dict[str, str]] :return: Time series data from metric. :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.MetricSeriesData] :raises ~azure.core.exceptions.HttpResponseError: @@ -723,8 +720,8 @@ def list_metrics_series_data( .. admonition:: Example: .. literalinclude:: ../samples/async_samples/sample_queries_async.py - :start-after: [START list_metrics_series_data_async] - :end-before: [END list_metrics_series_data_async] + :start-after: [START list_metric_series_data_async] + :end-before: [END list_metric_series_data_async] :language: python :dedent: 4 :caption: Query metrics series data. @@ -736,7 +733,7 @@ def list_metrics_series_data( metric_data_query_options = MetricDataQueryOptions( start_time=converted_start_time, end_time=converted_end_time, - series=series_to_filter, + series=series_keys, ) return self._client.get_metric_data( # type: ignore diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/__init__.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/__init__.py index 2de01c394da6..2ec3c8df2049 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/__init__.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/__init__.py @@ -27,7 +27,7 @@ from .._generated.models._microsoft_azure_metrics_advisor_restapi_open_ap_iv2_enums import ( SnoozeScope, Severity as AnomalySeverity, - DataSourceType, + DataSourceType as DatasourceType, ViewMode as DataFeedAccessMode, RollUpMethod as DataFeedAutoRollupMethod, FillMissingPointType as DataSourceMissingDataPointFillType, @@ -40,8 +40,8 @@ PeriodType, FeedbackType, TimeMode as AlertQueryTimeMode, - DataSourceCredentialType, - AuthenticationTypeEnum as DataSourceAuthenticationType + DataSourceCredentialType as DatasourceCredentialType, + AuthenticationTypeEnum as DatasourceAuthenticationType ) from .._generated.models import ( @@ -58,6 +58,7 @@ ) from ._models import ( + MetricFeedback, AnomalyFeedback, ChangePointFeedback, CommentFeedback, @@ -123,6 +124,7 @@ __all__ = ( + "MetricFeedback", "AnomalyFeedback", "ChangePointFeedback", "CommentFeedback", @@ -167,7 +169,7 @@ "MetricSeriesGroupDetectionCondition", "MetricSingleSeriesDetectionCondition", "SeverityCondition", - "DataSourceType", + "DatasourceType", "MetricAnomalyAlertScopeType", "AnomalyDetectorDirection", "NotificationHook", @@ -207,8 +209,8 @@ "DatasourceDataLakeGen2SharedKey", "DatasourceServicePrincipal", "DatasourceServicePrincipalInKeyVault", - "DataSourceCredentialType", - "DataSourceAuthenticationType", + "DatasourceCredentialType", + "DatasourceAuthenticationType", "DatasourceCredential", "DataFeedSource", ) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/_models.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/_models.py index ed8d0f3a9b56..741e16d96d05 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/_models.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/models/_models.py @@ -777,6 +777,7 @@ class AnomalyAlertConfiguration(object): include: "AND", "OR", "XOR". :vartype cross_metrics_operator: str or ~azure.ai.metricsadvisor.models.MetricAnomalyAlertConfigurationsOperator + :keyword list[str] dimensions_to_split_alerts: dimensions used to split alert. """ def __init__(self, name, metric_alert_configurations, hook_ids, **kwargs): @@ -787,17 +788,19 @@ def __init__(self, name, metric_alert_configurations, hook_ids, **kwargs): self.id = kwargs.get('id', None) self.description = kwargs.get('description', None) self.cross_metrics_operator = kwargs.get('cross_metrics_operator', None) + self.dimensions_to_split_alerts = kwargs.get('dimensions_to_split_alerts', None) def __repr__(self): return "AnomalyAlertConfiguration(id={}, name={}, description={}, cross_metrics_operator={}, hook_ids={}, " \ - "metric_alert_configurations={})".format( - self.id, - self.name, - self.description, - self.cross_metrics_operator, - self.hook_ids, - repr(self.metric_alert_configurations) - )[:1024] + "metric_alert_configurations={}, dimensions_to_split_alerts={})".format( + self.id, + self.name, + self.description, + self.cross_metrics_operator, + self.hook_ids, + repr(self.metric_alert_configurations), + self.dimensions_to_split_alerts + )[:1024] @classmethod def _from_generated(cls, config): @@ -810,7 +813,8 @@ def _from_generated(cls, config): metric_alert_configurations=[ MetricAlertConfiguration._from_generated(c) for c in config.metric_alerting_configurations - ] + ], + dimensions_to_split_alerts=config.split_alert_by_dimensions ) def _to_generated(self): @@ -821,7 +825,8 @@ def _to_generated(self): ], hook_ids=self.hook_ids, cross_metrics_operator=self.cross_metrics_operator, - description=self.description + description=self.description, + split_alert_by_dimensions=self.dimensions_to_split_alerts ) def _to_generated_patch( @@ -839,7 +844,8 @@ def _to_generated_patch( ] if metric_alert_configurations else None, hook_ids=hook_ids or self.hook_ids, cross_metrics_operator=cross_metrics_operator or self.cross_metrics_operator, - description=description or self.description + description=description or self.description, + split_alert_by_dimensions=self.dimensions_to_split_alerts ) @@ -944,16 +950,16 @@ def _to_generated_patch( class DataFeedSource(dict): """DataFeedSource base class - :param data_source_type: Required. data source type.Constant filled by server. Possible values + :ivar data_source_type: Required. data source type.Constant filled by server. Possible values include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :type data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType - :keyword authentication_type: authentication type for corresponding data source. Possible values + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType + :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :paramtype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType - :keyword str credential_id: The datasource credential id. + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType + :ivar str credential_id: The datasource credential id. """ def __init__(self, data_source_type, **kwargs): # type: (str, **Any) -> None @@ -969,11 +975,11 @@ class AzureApplicationInsightsDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :param str query: Required. Query. :keyword str azure_cloud: Azure cloud environment. @@ -1037,11 +1043,11 @@ class AzureBlobDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :param container: Required. Container. :type container: str @@ -1106,11 +1112,11 @@ class AzureCosmosDbDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :param sql_query: Required. Query script. :type sql_query: str @@ -1183,11 +1189,11 @@ class AzureDataExplorerDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :param query: Required. Query script. :type query: str @@ -1255,11 +1261,11 @@ class AzureTableDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :param str query: Required. Query script. :param str table: Required. Table name. @@ -1317,11 +1323,11 @@ class AzureEventHubsDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :keyword str connection_string: The connection string of this Azure Event Hubs. :param str consumer_group: Required. The consumer group to be used in this data feed. @@ -1373,11 +1379,11 @@ class InfluxDbDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :keyword str connection_string: InfluxDB connection string. :keyword str database: Database name. @@ -1447,11 +1453,11 @@ class MySqlDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :keyword str connection_string: Database connection string. :param str query: Required. Query script. @@ -1503,11 +1509,11 @@ class PostgreSqlDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :keyword str connection_string: Database connection string. :param str query: Required. Query script. @@ -1559,11 +1565,11 @@ class SqlServerDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :param str query: Required. Query script. :keyword str connection_string: Database connection string. @@ -1635,11 +1641,11 @@ class AzureDataLakeStorageGen2DataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :keyword str account_name: Account name. :keyword str account_key: Account key. @@ -1736,11 +1742,11 @@ class AzureLogAnalyticsDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :keyword str tenant_id: The tenant id of service principal that have access to this Log Analytics. @@ -1824,11 +1830,11 @@ class MongoDbDataFeedSource(DataFeedSource): include: "AzureApplicationInsights", "AzureBlob", "AzureCosmosDB", "AzureDataExplorer", "AzureDataLakeStorageGen2", "AzureEventHubs", "AzureLogAnalytics", "AzureTable", "InfluxDB", "MongoDB", "MySql", "PostgreSql", "SqlServer". - :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType + :vartype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType :ivar authentication_type: authentication type for corresponding data source. Possible values include: "Basic", "ManagedIdentity", "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". Default is "Basic". - :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DataSourceAuthenticationType + :vartype authentication_type: str or ~azure.ai.metricsadvisor.models.DatasourceAuthenticationType :keyword str credential_id: The datasource credential id. :keyword str connection_string: MongoDb connection string. :keyword str database: Database name. @@ -2077,10 +2083,10 @@ def _to_generated_patch( class MetricDetectionCondition(object): """MetricDetectionCondition. - :keyword cross_conditions_operator: condition operator + :keyword condition_operator: condition operator should be specified when combining multiple detection conditions. Possible values include: "AND", "OR". - :paramtype cross_conditions_operator: str or + :paramtype condition_operator: str or ~azure.ai.metricsadvisor.models.DetectionConditionsOperator :keyword smart_detection_condition: :paramtype smart_detection_condition: ~azure.ai.metricsadvisor.models.SmartDetectionCondition @@ -2091,15 +2097,15 @@ class MetricDetectionCondition(object): """ def __init__(self, **kwargs): - self.cross_conditions_operator = kwargs.get('cross_conditions_operator', None) + self.condition_operator = kwargs.get('condition_operator', None) self.smart_detection_condition = kwargs.get('smart_detection_condition', None) self.hard_threshold_condition = kwargs.get('hard_threshold_condition', None) self.change_threshold_condition = kwargs.get('change_threshold_condition', None) def __repr__(self): - return "MetricDetectionCondition(cross_conditions_operator={}, smart_detection_condition={}, " \ + return "MetricDetectionCondition(condition_operator={}, smart_detection_condition={}, " \ "hard_threshold_condition={}, change_threshold_condition={})".format( - self.cross_conditions_operator, + self.condition_operator, repr(self.smart_detection_condition), repr(self.hard_threshold_condition), repr(self.change_threshold_condition) @@ -2108,7 +2114,7 @@ def __repr__(self): @classmethod def _from_generated(cls, condition): return cls( - cross_conditions_operator=condition.condition_operator, + condition_operator=condition.condition_operator, smart_detection_condition=SmartDetectionCondition._from_generated(condition.smart_detection_condition), hard_threshold_condition=HardThresholdCondition._from_generated(condition.hard_threshold_condition), change_threshold_condition=ChangeThresholdCondition._from_generated(condition.change_threshold_condition) @@ -2116,7 +2122,7 @@ def _from_generated(cls, condition): def _to_generated(self): return _WholeMetricConfiguration( - condition_operator=self.cross_conditions_operator, + condition_operator=self.condition_operator, smart_detection_condition=self.smart_detection_condition._to_generated() if self.smart_detection_condition else None, hard_threshold_condition=self.hard_threshold_condition._to_generated() @@ -2127,7 +2133,7 @@ def _to_generated(self): def _to_generated_patch(self): return _WholeMetricConfigurationPatch( - condition_operator=self.cross_conditions_operator, + condition_operator=self.condition_operator, smart_detection_condition=self.smart_detection_condition._to_generated_patch() if self.smart_detection_condition else None, hard_threshold_condition=self.hard_threshold_condition._to_generated_patch() @@ -2373,10 +2379,10 @@ class MetricSeriesGroupDetectionCondition(MetricDetectionCondition): :param series_group_key: Required. dimension specified for series group. :type series_group_key: dict[str, str] - :keyword cross_conditions_operator: condition operator + :keyword condition_operator: condition operator should be specified when combining multiple detection conditions. Possible values include: "AND", "OR". - :paramtype cross_conditions_operator: str or + :paramtype condition_operator: str or ~azure.ai.metricsadvisor.models.DetectionConditionsOperator :keyword smart_detection_condition: :paramtype smart_detection_condition: ~azure.ai.metricsadvisor.models.SmartDetectionCondition @@ -2392,9 +2398,9 @@ def __init__(self, series_group_key, **kwargs): self.series_group_key = series_group_key def __repr__(self): - return "MetricSeriesGroupDetectionCondition(cross_conditions_operator={}, smart_detection_condition={}, " \ + return "MetricSeriesGroupDetectionCondition(condition_operator={}, smart_detection_condition={}, " \ "hard_threshold_condition={}, change_threshold_condition={}, series_group_key={})".format( - self.cross_conditions_operator, + self.condition_operator, repr(self.smart_detection_condition), repr(self.hard_threshold_condition), repr(self.change_threshold_condition), @@ -2405,7 +2411,7 @@ def __repr__(self): def _from_generated(cls, condition): return cls( series_group_key=condition.group.dimension, - cross_conditions_operator=condition.condition_operator, + condition_operator=condition.condition_operator, smart_detection_condition=SmartDetectionCondition._from_generated(condition.smart_detection_condition), hard_threshold_condition=HardThresholdCondition._from_generated(condition.hard_threshold_condition), change_threshold_condition=ChangeThresholdCondition._from_generated(condition.change_threshold_condition) @@ -2414,7 +2420,7 @@ def _from_generated(cls, condition): def _to_generated(self): return _DimensionGroupConfiguration( group=_DimensionGroupIdentity(dimension=self.series_group_key), - condition_operator=self.cross_conditions_operator, + condition_operator=self.condition_operator, smart_detection_condition=self.smart_detection_condition._to_generated() if self.smart_detection_condition else None, hard_threshold_condition=self.hard_threshold_condition._to_generated() @@ -2429,10 +2435,10 @@ class MetricSingleSeriesDetectionCondition(MetricDetectionCondition): :param series_key: Required. dimension specified for series. :type series_key: dict[str, str] - :keyword cross_conditions_operator: condition operator + :keyword condition_operator: condition operator should be specified when combining multiple detection conditions. Possible values include: "AND", "OR". - :paramtype cross_conditions_operator: str or + :paramtype condition_operator: str or ~azure.ai.metricsadvisor.models.DetectionConditionsOperator :keyword smart_detection_condition: :paramtype smart_detection_condition: ~azure.ai.metricsadvisor.models.SmartDetectionCondition @@ -2448,9 +2454,9 @@ def __init__(self, series_key, **kwargs): self.series_key = series_key def __repr__(self): - return "MetricSingleSeriesDetectionCondition(cross_conditions_operator={}, smart_detection_condition={}, " \ + return "MetricSingleSeriesDetectionCondition(condition_operator={}, smart_detection_condition={}, " \ "hard_threshold_condition={}, change_threshold_condition={}, series_key={})".format( - self.cross_conditions_operator, + self.condition_operator, repr(self.smart_detection_condition), repr(self.hard_threshold_condition), repr(self.change_threshold_condition), @@ -2461,7 +2467,7 @@ def __repr__(self): def _from_generated(cls, condition): return cls( series_key=condition.series.dimension, - cross_conditions_operator=condition.condition_operator, + condition_operator=condition.condition_operator, smart_detection_condition=SmartDetectionCondition._from_generated(condition.smart_detection_condition), hard_threshold_condition=HardThresholdCondition._from_generated(condition.hard_threshold_condition), change_threshold_condition=ChangeThresholdCondition._from_generated(condition.change_threshold_condition) @@ -2470,7 +2476,7 @@ def _from_generated(cls, condition): def _to_generated(self): return _SeriesConfiguration( series=_SeriesIdentity(dimension=self.series_key), - condition_operator=self.cross_conditions_operator, + condition_operator=self.condition_operator, smart_detection_condition=self.smart_detection_condition._to_generated() if self.smart_detection_condition else None, hard_threshold_condition=self.hard_threshold_condition._to_generated() @@ -2967,26 +2973,78 @@ def _from_generated(cls, root_cause): description=root_cause.description, ) -class AnomalyFeedback(msrest.serialization.Model): # pylint:disable=too-many-instance-attributes - """AnomalyFeedback. +class MetricFeedback(dict): + """Feedback base class Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param feedback_type: Required. feedback type.Constant filled by server. Possible values + :ivar feedback_type: Required. feedback type.Constant filled by server. Possible values include: "Anomaly", "ChangePoint", "Period", "Comment". - :type feedback_type: str or ~azure.ai.metricsadvisor.models.FeedbackType - :ivar id: feedback unique id. - :vartype id: str + :vartype feedback_type: str or ~azure.ai.metricsadvisor.models.FeedbackType + :ivar str id: feedback unique id. :ivar created_time: feedback created time. :vartype created_time: ~datetime.datetime :ivar user_principal: user who gives this feedback. :vartype user_principal: str - :param metric_id: Required. metric unique id. - :type metric_id: str - :param dimension_key: Required. metric dimension filter. - :type dimension_key: dict[str, str] + :ivar str metric_id: Required. metric unique id. + :ivar dict[str, str] dimension_key: Required. metric dimension filter. + """ + _attribute_map = { + 'feedback_type': {'key': 'feedbackType', 'type': 'str'}, + 'id': {'key': 'id', 'type': 'str'}, + 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, + 'user_principal': {'key': 'userPrincipal', 'type': 'str'}, + 'metric_id': {'key': 'metricId', 'type': 'str'}, + 'dimension_key': {'key': 'dimensionKey', 'type': '{str}'}, + } + + def __init__( + self, + feedback_type, + metric_id, + dimension_key, + **kwargs + ): + super(MetricFeedback, self).__init__(**kwargs) + self.feedback_type = feedback_type # type: str + self.id = kwargs.get('id', None) + self.created_time = kwargs.get('created_time', None) + self.user_principal = kwargs.get('user_principal', None) + self.metric_id = metric_id + self.dimension_key = dimension_key + + def __repr__(self): + return "MetricFeedback(feedback_type={}, id={}, created_time={}, user_principal={}, metric_id={}, " \ + "dimension_key={})".format( + self.feedback_type, + self.id, + self.created_time, + self.user_principal, + self.metric_id, + self.dimension_key, + )[:1024] + + def _to_generated_patch(self): + pass + +class AnomalyFeedback(MetricFeedback): # pylint:disable=too-many-instance-attributes + """AnomalyFeedback. + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar feedback_type: Required. feedback type.Constant filled by server. Possible values + include: "Anomaly", "ChangePoint", "Period", "Comment". + :vartype feedback_type: str or ~azure.ai.metricsadvisor.models.FeedbackType + :ivar str id: feedback unique id. + :keyword created_time: feedback created time. + :paramtype created_time: ~datetime.datetime + :keyword str user_principal: user who gives this feedback. + :param str metric_id: Required. metric unique id. + :param dict[str, str] dimension_key: Required. metric dimension filter. :param start_time: Required. the start timestamp of feedback timerange. :type start_time: ~datetime.datetime :param end_time: Required. the end timestamp of feedback timerange, when equals to startTime @@ -3026,13 +3084,12 @@ def __init__( value, **kwargs ): - super(AnomalyFeedback, self).__init__(**kwargs) - self.feedback_type = 'Anomaly' # type: str - self.id = kwargs.get('id', None) - self.created_time = kwargs.get('created_time', None) - self.user_principal = kwargs.get('user_principal', None) - self.metric_id = metric_id - self.dimension_key = dimension_key + super(AnomalyFeedback, self).__init__( + feedback_type='Anomaly', + metric_id=metric_id, + dimension_key=dimension_key, + **kwargs + ) self.start_time = start_time self.end_time = end_time self.value = value @@ -3090,26 +3147,22 @@ def _to_generated(self): anomaly_detection_configuration_snapshot=self.anomaly_detection_configuration_snapshot ) -class ChangePointFeedback(msrest.serialization.Model): +class ChangePointFeedback(MetricFeedback): """ChangePointFeedback. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param feedback_type: Required. feedback type.Constant filled by server. Possible values + :ivar feedback_type: Required. feedback type.Constant filled by server. Possible values include: "Anomaly", "ChangePoint", "Period", "Comment". - :type feedback_type: str or ~azure.ai.metricsadvisor.models.FeedbackType - :ivar id: feedback unique id. - :vartype id: str - :ivar created_time: feedback created time. - :vartype created_time: ~datetime.datetime - :ivar user_principal: user who gives this feedback. - :vartype user_principal: str - :param metric_id: Required. metric unique id. - :type metric_id: str - :param dimension_key: Required. metric dimension filter. - :type dimension_key: dict[str, str] + :vartype feedback_type: str or ~azure.ai.metricsadvisor.models.FeedbackType + :ivar str id: feedback unique id. + :keyword created_time: feedback created time. + :paramtype created_time: ~datetime.datetime + :keyword str user_principal: user who gives this feedback. + :param str metric_id: Required. metric unique id. + :param dict[str, str] dimension_key: Required. metric dimension filter. :param start_time: Required. the start timestamp of feedback timerange. :type start_time: ~datetime.datetime :param end_time: Required. the end timestamp of feedback timerange, when equals to startTime @@ -3140,13 +3193,12 @@ def __init__( value, **kwargs ): - super(ChangePointFeedback, self).__init__(**kwargs) - self.feedback_type = 'ChangePoint' # type: str - self.id = kwargs.get('id', None) - self.created_time = kwargs.get('created_time', None) - self.user_principal = kwargs.get('user_principal', None) - self.metric_id = metric_id - self.dimension_key = dimension_key + super(ChangePointFeedback, self).__init__( + feedback_type='ChangePoint', + metric_id=metric_id, + dimension_key=dimension_key, + **kwargs + ) self.start_time = start_time self.end_time = end_time self.value = value @@ -3195,26 +3247,22 @@ def _to_generated(self): value=value, ) -class CommentFeedback(msrest.serialization.Model): +class CommentFeedback(MetricFeedback): """CommentFeedback. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param feedback_type: Required. feedback type.Constant filled by server. Possible values + :ivar feedback_type: Required. feedback type.Constant filled by server. Possible values include: "Anomaly", "ChangePoint", "Period", "Comment". - :type feedback_type: str or ~azure.ai.metricsadvisor.models.FeedbackType - :ivar id: feedback unique id. - :vartype id: str - :ivar created_time: feedback created time. - :vartype created_time: ~datetime.datetime - :ivar user_principal: user who gives this feedback. - :vartype user_principal: str - :param metric_id: Required. metric unique id. - :type metric_id: str - :param dimension_key: Required. metric dimension filter. - :type dimension_key: dict[str, str] + :vartype feedback_type: str or ~azure.ai.metricsadvisor.models.FeedbackType + :ivar str id: feedback unique id. + :keyword created_time: feedback created time. + :paramtype created_time: ~datetime.datetime + :keyword str user_principal: user who gives this feedback. + :param str metric_id: Required. metric unique id. + :param dict[str, str] dimension_key: Required. metric dimension filter. :param start_time: the start timestamp of feedback timerange. :type start_time: ~datetime.datetime :param end_time: the end timestamp of feedback timerange, when equals to startTime means only @@ -3245,13 +3293,12 @@ def __init__( value, **kwargs ): - super(CommentFeedback, self).__init__(**kwargs) - self.feedback_type = 'Comment' # type: str - self.id = kwargs.get('id', None) - self.created_time = kwargs.get('created_time', None) - self.user_principal = kwargs.get('user_principal', None) - self.metric_id = metric_id - self.dimension_key = dimension_key + super(CommentFeedback, self).__init__( + feedback_type='Comment', + metric_id=metric_id, + dimension_key=dimension_key, + **kwargs + ) self.start_time = start_time self.end_time = end_time self.value = value @@ -3300,26 +3347,22 @@ def _to_generated(self): value=value, ) -class PeriodFeedback(msrest.serialization.Model): +class PeriodFeedback(MetricFeedback): """PeriodFeedback. Variables are only populated by the server, and will be ignored when sending a request. All required parameters must be populated in order to send to Azure. - :param feedback_type: Required. feedback type.Constant filled by server. Possible values + :ivar feedback_type: Required. feedback type.Constant filled by server. Possible values include: "Anomaly", "ChangePoint", "Period", "Comment". - :type feedback_type: str or ~azure.ai.metricsadvisor.models.FeedbackType - :ivar id: feedback unique id. - :vartype id: str - :ivar created_time: feedback created time. - :vartype created_time: ~datetime.datetime - :ivar user_principal: user who gives this feedback. - :vartype user_principal: str - :param metric_id: Required. metric unique id. - :type metric_id: str - :param dimension_key: Required. metric dimension filter. - :type dimension_key: dict[str, str] + :vartype feedback_type: str or ~azure.ai.metricsadvisor.models.FeedbackType + :ivar str id: feedback unique id. + :keyword created_time: feedback created time. + :paramtype created_time: ~datetime.datetime + :keyword str user_principal: user who gives this feedback. + :param str metric_id: Required. metric unique id. + :param dict[str, str] dimension_key: Required. metric dimension filter. :param value: Required. :type value: int :param period_type: Required. the type of setting period. Possible values include: @@ -3346,13 +3389,12 @@ def __init__( period_type, **kwargs ): - super(PeriodFeedback, self).__init__(**kwargs) - self.feedback_type = 'Period' # type: str - self.id = kwargs.get('id', None) - self.created_time = kwargs.get('created_time', None) - self.user_principal = kwargs.get('user_principal', None) - self.metric_id = metric_id - self.dimension_key = dimension_key + super(PeriodFeedback, self).__init__( + feedback_type='Period', + metric_id=metric_id, + dimension_key=dimension_key, + **kwargs + ) self.value = value self.period_type = period_type @@ -3404,7 +3446,7 @@ class DatasourceCredential(dict): server. Possible values include: "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". :type credential_type: str or - ~azure.ai.metricsadvisor.models.DataSourceCredentialType + ~azure.ai.metricsadvisor.models.DatasourceCredentialType :ivar id: Unique id of data source credential. :vartype id: str :param name: Required. Name of data source credential. @@ -3447,7 +3489,7 @@ class DatasourceSqlConnectionString(DatasourceCredential): server. Possible values include: "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". :type credential_type: str or - ~azure.ai.metricsadvisor.models.DataSourceCredentialType + ~azure.ai.metricsadvisor.models.DatasourceCredentialType :ivar id: Unique id of data source credential. :vartype id: str :param name: Required. Name of data source credential. @@ -3519,7 +3561,7 @@ class DatasourceDataLakeGen2SharedKey(DatasourceCredential): server. Possible values include: "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". :type credential_type: str or - ~azure.ai.metricsadvisor.models.DataSourceCredentialType + ~azure.ai.metricsadvisor.models.DatasourceCredentialType :ivar id: Unique id of data source credential. :vartype id: str :param name: Required. Name of data source credential. @@ -3591,7 +3633,7 @@ class DatasourceServicePrincipal(DatasourceCredential): server. Possible values include: "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". :type credential_type: str or - ~azure.ai.metricsadvisor.models.DataSourceCredentialType + ~azure.ai.metricsadvisor.models.DatasourceCredentialType :ivar id: Unique id of data source credential. :vartype id: str :param name: Required. Name of data source credential. @@ -3683,7 +3725,7 @@ class DatasourceServicePrincipalInKeyVault(DatasourceCredential): server. Possible values include: "AzureSQLConnectionString", "DataLakeGen2SharedKey", "ServicePrincipal", "ServicePrincipalInKV". :type credential_type: str or - ~azure.ai.metricsadvisor.models.DataSourceCredentialType + ~azure.ai.metricsadvisor.models.DatasourceCredentialType :ivar id: Unique id of data source credential. :vartype id: str :param name: Required. Name of data source credential. diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_detection_configuration_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_detection_configuration_async.py index d5c55f2b8eda..6313a1ba0132 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_detection_configuration_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_detection_configuration_async.py @@ -80,7 +80,7 @@ async def sample_create_detection_config_async(): metric_id=metric_id, description="anomaly detection config for metric", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", change_threshold_condition=change_threshold_condition, hard_threshold_condition=hard_threshold_condition, smart_detection_condition=smart_detection_condition @@ -114,7 +114,7 @@ async def sample_get_detection_config_async(detection_config_id): print("\nWhole Series Detection Conditions:\n") conditions = config.whole_series_detection_condition - print("Use {} operator for multiple detection conditions".format(conditions.cross_conditions_operator)) + print("Use {} operator for multiple detection conditions".format(conditions.condition_operator)) print("Smart Detection Condition:") print("- Sensitivity: {}".format(conditions.smart_detection_condition.sensitivity)) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_queries_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_queries_async.py index be72ea790d21..86a4ac3d0b88 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_queries_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_queries_async.py @@ -110,8 +110,8 @@ async def sample_list_metric_dimension_values_async(): # [END list_metric_dimension_values_async] -async def sample_list_metrics_series_data_async(): - # [START list_metrics_series_data_async] +async def sample_list_metric_series_data_async(): + # [START list_metric_series_data_async] import datetime from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential from azure.ai.metricsadvisor.aio import MetricsAdvisorClient @@ -125,18 +125,18 @@ async def sample_list_metrics_series_data_async(): MetricsAdvisorKeyCredential(subscription_key, api_key)) async with client: - results = client.list_metrics_series_data( + results = client.list_metric_series_data( metric_id=metric_id, start_time=datetime.datetime(2020, 1, 1), end_time=datetime.datetime(2020, 10, 21), - series_to_filter=[ + series_keys=[ {"city": "Los Angeles", "category": "Homemade"} ] ) async for result in results: print(str(result)) - # [END list_metrics_series_data_async] + # [END list_metric_series_data_async] async def sample_list_metric_series_definitions_async(): # [START list_metric_series_definitions_async] @@ -195,7 +195,7 @@ async def main(): print("---List metric dimension values...") await sample_list_metric_dimension_values_async() print("---List metric series data...") - await sample_list_metrics_series_data_async() + await sample_list_metric_series_data_async() print("---List metric series definitions...") await sample_list_metric_series_definitions_async() print("---List metric enrichment status...") diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_detection_configuration.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_detection_configuration.py index b69ca5b3cb85..e68bb84802ae 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_detection_configuration.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_detection_configuration.py @@ -77,7 +77,7 @@ def sample_create_detection_config(): metric_id=metric_id, description="anomaly detection config for metric", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", change_threshold_condition=change_threshold_condition, hard_threshold_condition=hard_threshold_condition, smart_detection_condition=smart_detection_condition @@ -109,7 +109,7 @@ def sample_get_detection_config(detection_config_id): print("\nWhole Series Detection Conditions:\n") conditions = config.whole_series_detection_condition - print("Use {} operator for multiple detection conditions".format(conditions.cross_conditions_operator)) + print("Use {} operator for multiple detection conditions".format(conditions.condition_operator)) print("Smart Detection Condition:") print("- Sensitivity: {}".format(conditions.smart_detection_condition.sensitivity)) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_queries.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_queries.py index 2fbd33897466..8e332e3a7a95 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_queries.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_queries.py @@ -103,8 +103,8 @@ def sample_list_metric_dimension_values(): # [END list_metric_dimension_values] -def sample_list_metrics_series_data(): - # [START list_metrics_series_data] +def sample_list_metric_series_data(): + # [START list_metric_series_data] import datetime from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient @@ -116,18 +116,18 @@ def sample_list_metrics_series_data(): client = MetricsAdvisorClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) - results = client.list_metrics_series_data( + results = client.list_metric_series_data( metric_id=metric_id, start_time=datetime.datetime(2020, 1, 1), end_time=datetime.datetime(2020, 10, 21), - series_to_filter=[ + series_keys=[ {"city": "Los Angeles", "category": "Homemade"} ] ) for result in results: print(str(result)) - # [END list_metrics_series_data] + # [END list_metric_series_data] def sample_list_metric_series_definitions(): # [START list_metric_series_definitions] @@ -182,7 +182,7 @@ def sample_list_metric_enrichment_status(): print("---List metric dimension values...") sample_list_metric_dimension_values() print("---List metric series data...") - sample_list_metrics_series_data() + sample_list_metric_series_data() print("---List metric series definitions...") sample_list_metric_series_definitions() print("---List metric enrichment status...") diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_aad_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_aad_async.py index 83fa0ca2e6b4..0ff0380e38ff 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_aad_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_aad_async.py @@ -307,7 +307,7 @@ async def _create_detection_config_for_update(self, name): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_async.py index d68dfb70f364..c3d27ec86131 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/base_testcase_async.py @@ -305,7 +305,7 @@ async def _create_detection_config_for_update(self, name): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_detection_config_aad_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_detection_config_aad_async.py index de7604269bb2..ea0c8dc7f914 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_detection_config_aad_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_detection_config_aad_async.py @@ -35,7 +35,7 @@ async def test_create_ad_config_whole_series_detection(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -71,7 +71,7 @@ async def test_create_ad_config_whole_series_detection(self): self.assertIsNotNone(config.name) self.assertIsNone(config.series_detection_conditions) self.assertIsNone(config.series_group_detection_conditions) - self.assertEqual(config.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(config.whole_series_detection_condition.condition_operator, "OR") self.assertEqual( config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -115,7 +115,7 @@ async def test_create_ad_config_with_series_and_group_conds(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -172,7 +172,7 @@ async def test_create_ad_config_with_series_and_group_conds(self): self.assertEqual(detection_config.metric_id, data_feed.metric_ids['cost']) self.assertEqual(detection_config.description, "My test metric anomaly detection configuration") self.assertIsNotNone(detection_config.name) - self.assertEqual(detection_config.whole_series_detection_condition.cross_conditions_operator, "AND") + self.assertEqual(detection_config.whole_series_detection_condition.condition_operator, "AND") self.assertEqual( detection_config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(detection_config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -232,7 +232,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -264,7 +264,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): series_detection_conditions=[ MetricSingleSeriesDetectionCondition( series_key={"city": "Shenzhen", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -295,7 +295,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): ), MetricSingleSeriesDetectionCondition( series_key={"city": "Osaka", "category": "Cell Phones"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -309,7 +309,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): series_group_detection_conditions=[ MetricSeriesGroupDetectionCondition( series_group_key={"city": "Sao Paulo"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -340,7 +340,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): ), MetricSeriesGroupDetectionCondition( series_group_key={"city": "Seoul"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -359,7 +359,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): self.assertIsNotNone(detection_config.name) # whole series detection condition - self.assertEqual(detection_config.whole_series_detection_condition.cross_conditions_operator, "AND") + self.assertEqual(detection_config.whole_series_detection_condition.condition_operator, "AND") self.assertEqual( detection_config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(detection_config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -388,7 +388,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): # series detection conditions self.assertEqual( detection_config.series_detection_conditions[0].series_key, {'city': 'Shenzhen', 'category': 'Jewelry'}) - self.assertEqual(detection_config.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(detection_config.series_detection_conditions[0].condition_operator, "AND") self.assertEqual( detection_config.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 100) self.assertEqual( @@ -428,7 +428,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): # series group detection conditions self.assertEqual( detection_config.series_group_detection_conditions[0].series_group_key, {"city": "Sao Paulo"}) - self.assertEqual(detection_config.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(detection_config.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual( detection_config.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 100) self.assertEqual( @@ -514,15 +514,15 @@ async def test_update_detection_config_with_model(self): detection_config.series_detection_conditions[0].change_threshold_condition = change_threshold_condition detection_config.series_detection_conditions[0].hard_threshold_condition = hard_threshold_condition detection_config.series_detection_conditions[0].smart_detection_condition = smart_detection_condition - detection_config.series_detection_conditions[0].cross_conditions_operator = "AND" + detection_config.series_detection_conditions[0].condition_operator = "AND" detection_config.series_group_detection_conditions[0].change_threshold_condition = change_threshold_condition detection_config.series_group_detection_conditions[0].hard_threshold_condition = hard_threshold_condition detection_config.series_group_detection_conditions[0].smart_detection_condition = smart_detection_condition - detection_config.series_group_detection_conditions[0].cross_conditions_operator = "AND" + detection_config.series_group_detection_conditions[0].condition_operator = "AND" detection_config.whole_series_detection_condition.hard_threshold_condition = hard_threshold_condition detection_config.whole_series_detection_condition.smart_detection_condition = smart_detection_condition detection_config.whole_series_detection_condition.change_threshold_condition = change_threshold_condition - detection_config.whole_series_detection_condition.cross_conditions_operator = "OR" + detection_config.whole_series_detection_condition.condition_operator = "OR" await self.admin_client.update_detection_configuration(detection_config) updated = await self.admin_client.get_detection_configuration(detection_config.id) @@ -543,7 +543,7 @@ async def test_update_detection_config_with_model(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.change_percentage, 20) @@ -559,7 +559,7 @@ async def test_update_detection_config_with_model(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.change_percentage, 20) @@ -575,7 +575,7 @@ async def test_update_detection_config_with_model(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: await self.admin_client.delete_data_feed(data_feed.id) @@ -615,21 +615,21 @@ async def test_update_detection_config_with_kwargs(self): name="updated", description="updated", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition ), series_detection_conditions=[MetricSingleSeriesDetectionCondition( series_key={"city": "San Paulo", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition )], series_group_detection_conditions=[MetricSeriesGroupDetectionCondition( series_group_key={"city": "Shenzen"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition @@ -652,7 +652,7 @@ async def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_detection_conditions[0].series_key, {"city": "San Paulo", "category": "Jewelry"}) self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") @@ -669,7 +669,7 @@ async def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].series_group_key, {"city": "Shenzen"}) self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") @@ -686,7 +686,7 @@ async def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: await self.admin_client.delete_data_feed(data_feed.id) @@ -727,21 +727,21 @@ async def test_update_detection_config_with_model_and_kwargs(self): await self.admin_client.update_detection_configuration( detection_config, whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition ), series_detection_conditions=[MetricSingleSeriesDetectionCondition( series_key={"city": "San Paulo", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition )], series_group_detection_conditions=[MetricSeriesGroupDetectionCondition( series_group_key={"city": "Shenzen"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition @@ -764,7 +764,7 @@ async def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_detection_conditions[0].series_key, {"city": "San Paulo", "category": "Jewelry"}) self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") @@ -781,7 +781,7 @@ async def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].series_group_key, {"city": "Shenzen"}) self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") @@ -798,7 +798,7 @@ async def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: await self.admin_client.delete_data_feed(data_feed.id) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_detection_config_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_detection_config_async.py index 9e20aaf78519..e6550dff279c 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_detection_config_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_detection_config_async.py @@ -35,7 +35,7 @@ async def test_create_ad_config_whole_series_detection(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -71,7 +71,7 @@ async def test_create_ad_config_whole_series_detection(self): self.assertIsNotNone(config.name) self.assertIsNone(config.series_detection_conditions) self.assertIsNone(config.series_group_detection_conditions) - self.assertEqual(config.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(config.whole_series_detection_condition.condition_operator, "OR") self.assertEqual( config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -115,7 +115,7 @@ async def test_create_ad_config_with_series_and_group_conds(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -172,7 +172,7 @@ async def test_create_ad_config_with_series_and_group_conds(self): self.assertEqual(detection_config.metric_id, data_feed.metric_ids['cost']) self.assertEqual(detection_config.description, "My test metric anomaly detection configuration") self.assertIsNotNone(detection_config.name) - self.assertEqual(detection_config.whole_series_detection_condition.cross_conditions_operator, "AND") + self.assertEqual(detection_config.whole_series_detection_condition.condition_operator, "AND") self.assertEqual( detection_config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(detection_config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -232,7 +232,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -264,7 +264,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): series_detection_conditions=[ MetricSingleSeriesDetectionCondition( series_key={"city": "Shenzhen", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -295,7 +295,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): ), MetricSingleSeriesDetectionCondition( series_key={"city": "Osaka", "category": "Cell Phones"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -309,7 +309,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): series_group_detection_conditions=[ MetricSeriesGroupDetectionCondition( series_group_key={"city": "Sao Paulo"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -340,7 +340,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): ), MetricSeriesGroupDetectionCondition( series_group_key={"city": "Seoul"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -359,7 +359,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): self.assertIsNotNone(detection_config.name) # whole series detection condition - self.assertEqual(detection_config.whole_series_detection_condition.cross_conditions_operator, "AND") + self.assertEqual(detection_config.whole_series_detection_condition.condition_operator, "AND") self.assertEqual( detection_config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(detection_config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -388,7 +388,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): # series detection conditions self.assertEqual( detection_config.series_detection_conditions[0].series_key, {'city': 'Shenzhen', 'category': 'Jewelry'}) - self.assertEqual(detection_config.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(detection_config.series_detection_conditions[0].condition_operator, "AND") self.assertEqual( detection_config.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 100) self.assertEqual( @@ -428,7 +428,7 @@ async def test_create_ad_config_multiple_series_and_group_conds(self): # series group detection conditions self.assertEqual( detection_config.series_group_detection_conditions[0].series_group_key, {"city": "Sao Paulo"}) - self.assertEqual(detection_config.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(detection_config.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual( detection_config.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 100) self.assertEqual( @@ -514,15 +514,15 @@ async def test_update_detection_config_with_model(self): detection_config.series_detection_conditions[0].change_threshold_condition = change_threshold_condition detection_config.series_detection_conditions[0].hard_threshold_condition = hard_threshold_condition detection_config.series_detection_conditions[0].smart_detection_condition = smart_detection_condition - detection_config.series_detection_conditions[0].cross_conditions_operator = "AND" + detection_config.series_detection_conditions[0].condition_operator = "AND" detection_config.series_group_detection_conditions[0].change_threshold_condition = change_threshold_condition detection_config.series_group_detection_conditions[0].hard_threshold_condition = hard_threshold_condition detection_config.series_group_detection_conditions[0].smart_detection_condition = smart_detection_condition - detection_config.series_group_detection_conditions[0].cross_conditions_operator = "AND" + detection_config.series_group_detection_conditions[0].condition_operator = "AND" detection_config.whole_series_detection_condition.hard_threshold_condition = hard_threshold_condition detection_config.whole_series_detection_condition.smart_detection_condition = smart_detection_condition detection_config.whole_series_detection_condition.change_threshold_condition = change_threshold_condition - detection_config.whole_series_detection_condition.cross_conditions_operator = "OR" + detection_config.whole_series_detection_condition.condition_operator = "OR" await self.admin_client.update_detection_configuration(detection_config) updated = await self.admin_client.get_detection_configuration(detection_config.id) @@ -542,7 +542,7 @@ async def test_update_detection_config_with_model(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.change_percentage, 20) @@ -558,7 +558,7 @@ async def test_update_detection_config_with_model(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.change_percentage, 20) @@ -574,7 +574,7 @@ async def test_update_detection_config_with_model(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: await self.admin_client.delete_data_feed(data_feed.id) @@ -614,21 +614,21 @@ async def test_update_detection_config_with_kwargs(self): name="updated", description="updated", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition ), series_detection_conditions=[MetricSingleSeriesDetectionCondition( series_key={"city": "San Paulo", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition )], series_group_detection_conditions=[MetricSeriesGroupDetectionCondition( series_group_key={"city": "Shenzen"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition @@ -651,7 +651,7 @@ async def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_detection_conditions[0].series_key, {"city": "San Paulo", "category": "Jewelry"}) self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") @@ -668,7 +668,7 @@ async def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].series_group_key, {"city": "Shenzen"}) self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") @@ -685,7 +685,7 @@ async def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: await self.admin_client.delete_data_feed(data_feed.id) @@ -726,21 +726,21 @@ async def test_update_detection_config_with_model_and_kwargs(self): await self.admin_client.update_detection_configuration( detection_config, whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition ), series_detection_conditions=[MetricSingleSeriesDetectionCondition( series_key={"city": "San Paulo", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition )], series_group_detection_conditions=[MetricSeriesGroupDetectionCondition( series_group_key={"city": "Shenzen"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition @@ -763,7 +763,7 @@ async def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_detection_conditions[0].series_key, {"city": "San Paulo", "category": "Jewelry"}) self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") @@ -780,7 +780,7 @@ async def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].series_group_key, {"city": "Shenzen"}) self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") @@ -797,7 +797,7 @@ async def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: await self.admin_client.delete_data_feed(data_feed.id) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_metrics_advisor_client_aad_live_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_metrics_advisor_client_aad_live_async.py index 1f492e3eb535..ae62ba67ef58 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_metrics_advisor_client_aad_live_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_metrics_advisor_client_aad_live_async.py @@ -131,11 +131,11 @@ async def test_list_alerts(self): @AzureTestCase.await_prepared_test async def test_list_metrics_series_data(self): async with self.client: - results = self.client.list_metrics_series_data( + results = self.client.list_metric_series_data( metric_id=self.metric_id, start_time=datetime.datetime(2020, 1, 1), end_time=datetime.datetime(2020, 10, 21), - series_to_filter=[ + series_keys=[ {"city": "Los Angeles", "category": "Homemade"} ] ) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_metrics_advisor_client_live_async.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_metrics_advisor_client_live_async.py index 88875abb627e..bfae9346adf2 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_metrics_advisor_client_live_async.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/async_tests/test_metrics_advisor_client_live_async.py @@ -131,11 +131,11 @@ async def test_list_alerts(self): @AzureTestCase.await_prepared_test async def test_list_metrics_series_data(self): async with self.client: - results = self.client.list_metrics_series_data( + results = self.client.list_metric_series_data( metric_id=self.metric_id, start_time=datetime.datetime(2020, 1, 1), end_time=datetime.datetime(2020, 10, 21), - series_to_filter=[ + series_keys=[ {"city": "Los Angeles", "category": "Homemade"} ] ) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase.py index 40c70334f428..747e05ca333e 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase.py @@ -301,7 +301,7 @@ def _create_detection_config_for_update(self, name): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase_aad.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase_aad.py index 4ed44fcc4e9b..dd91719a5468 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase_aad.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/base_testcase_aad.py @@ -303,7 +303,7 @@ def _create_detection_config_for_update(self, name): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_detection_config.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_detection_config.py index 12919e69d01b..b8ef0b52dac4 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_detection_config.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_detection_config.py @@ -32,7 +32,7 @@ def test_create_ad_config_whole_series_detection(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -68,7 +68,7 @@ def test_create_ad_config_whole_series_detection(self): self.assertIsNotNone(config.name) self.assertIsNone(config.series_detection_conditions) self.assertIsNone(config.series_group_detection_conditions) - self.assertEqual(config.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(config.whole_series_detection_condition.condition_operator, "OR") self.assertEqual( config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -110,7 +110,7 @@ def test_create_ad_config_with_series_and_group_conds(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -167,7 +167,7 @@ def test_create_ad_config_with_series_and_group_conds(self): self.assertEqual(detection_config.metric_id, data_feed.metric_ids['cost']) self.assertEqual(detection_config.description, "My test metric anomaly detection configuration") self.assertIsNotNone(detection_config.name) - self.assertEqual(detection_config.whole_series_detection_condition.cross_conditions_operator, "AND") + self.assertEqual(detection_config.whole_series_detection_condition.condition_operator, "AND") self.assertEqual( detection_config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(detection_config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -225,7 +225,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -257,7 +257,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): series_detection_conditions=[ MetricSingleSeriesDetectionCondition( series_key={"city": "Shenzhen", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -288,7 +288,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): ), MetricSingleSeriesDetectionCondition( series_key={"city": "Osaka", "category": "Cell Phones"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -302,7 +302,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): series_group_detection_conditions=[ MetricSeriesGroupDetectionCondition( series_group_key={"city": "Sao Paulo"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -333,7 +333,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): ), MetricSeriesGroupDetectionCondition( series_group_key={"city": "Seoul"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -352,7 +352,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): self.assertIsNotNone(detection_config.name) # whole series detection condition - self.assertEqual(detection_config.whole_series_detection_condition.cross_conditions_operator, "AND") + self.assertEqual(detection_config.whole_series_detection_condition.condition_operator, "AND") self.assertEqual( detection_config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(detection_config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -381,7 +381,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): # series detection conditions self.assertEqual( detection_config.series_detection_conditions[0].series_key, {'city': 'Shenzhen', 'category': 'Jewelry'}) - self.assertEqual(detection_config.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(detection_config.series_detection_conditions[0].condition_operator, "AND") self.assertEqual( detection_config.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 100) self.assertEqual( @@ -421,7 +421,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): # series group detection conditions self.assertEqual( detection_config.series_group_detection_conditions[0].series_group_key, {"city": "Sao Paulo"}) - self.assertEqual(detection_config.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(detection_config.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual( detection_config.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 100) self.assertEqual( @@ -500,15 +500,15 @@ def test_update_detection_config_with_model(self): detection_config.series_detection_conditions[0].change_threshold_condition = change_threshold_condition detection_config.series_detection_conditions[0].hard_threshold_condition = hard_threshold_condition detection_config.series_detection_conditions[0].smart_detection_condition = smart_detection_condition - detection_config.series_detection_conditions[0].cross_conditions_operator = "AND" + detection_config.series_detection_conditions[0].condition_operator = "AND" detection_config.series_group_detection_conditions[0].change_threshold_condition = change_threshold_condition detection_config.series_group_detection_conditions[0].hard_threshold_condition = hard_threshold_condition detection_config.series_group_detection_conditions[0].smart_detection_condition = smart_detection_condition - detection_config.series_group_detection_conditions[0].cross_conditions_operator = "AND" + detection_config.series_group_detection_conditions[0].condition_operator = "AND" detection_config.whole_series_detection_condition.hard_threshold_condition = hard_threshold_condition detection_config.whole_series_detection_condition.smart_detection_condition = smart_detection_condition detection_config.whole_series_detection_condition.change_threshold_condition = change_threshold_condition - detection_config.whole_series_detection_condition.cross_conditions_operator = "OR" + detection_config.whole_series_detection_condition.condition_operator = "OR" self.admin_client.update_detection_configuration(detection_config) updated = self.admin_client.get_detection_configuration(detection_config.id) @@ -529,7 +529,7 @@ def test_update_detection_config_with_model(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.change_percentage, 20) @@ -545,7 +545,7 @@ def test_update_detection_config_with_model(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.change_percentage, 20) @@ -561,7 +561,7 @@ def test_update_detection_config_with_model(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: self.admin_client.delete_data_feed(data_feed.id) @@ -599,21 +599,21 @@ def test_update_detection_config_with_kwargs(self): name="updated", description="updated", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition ), series_detection_conditions=[MetricSingleSeriesDetectionCondition( series_key={"city": "San Paulo", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition )], series_group_detection_conditions=[MetricSeriesGroupDetectionCondition( series_group_key={"city": "Shenzen"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition @@ -636,7 +636,7 @@ def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_detection_conditions[0].series_key, {"city": "San Paulo", "category": "Jewelry"}) self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") @@ -653,7 +653,7 @@ def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].series_group_key, {"city": "Shenzen"}) self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") @@ -670,7 +670,7 @@ def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: self.admin_client.delete_data_feed(data_feed.id) @@ -709,21 +709,21 @@ def test_update_detection_config_with_model_and_kwargs(self): self.admin_client.update_detection_configuration( detection_config, whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition ), series_detection_conditions=[MetricSingleSeriesDetectionCondition( series_key={"city": "San Paulo", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition )], series_group_detection_conditions=[MetricSeriesGroupDetectionCondition( series_group_key={"city": "Shenzen"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition @@ -746,7 +746,7 @@ def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_detection_conditions[0].series_key, {"city": "San Paulo", "category": "Jewelry"}) self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") @@ -763,7 +763,7 @@ def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].series_group_key, {"city": "Shenzen"}) self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") @@ -780,7 +780,7 @@ def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: self.admin_client.delete_data_feed(data_feed.id) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_detection_config_aad.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_detection_config_aad.py index 54d964a00d63..d0b242b17605 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_detection_config_aad.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_detection_config_aad.py @@ -32,7 +32,7 @@ def test_create_ad_config_whole_series_detection(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -68,7 +68,7 @@ def test_create_ad_config_whole_series_detection(self): self.assertIsNotNone(config.name) self.assertIsNone(config.series_detection_conditions) self.assertIsNone(config.series_group_detection_conditions) - self.assertEqual(config.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(config.whole_series_detection_condition.condition_operator, "OR") self.assertEqual( config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -110,7 +110,7 @@ def test_create_ad_config_with_series_and_group_conds(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -167,7 +167,7 @@ def test_create_ad_config_with_series_and_group_conds(self): self.assertEqual(detection_config.metric_id, data_feed.metric_ids['cost']) self.assertEqual(detection_config.description, "My test metric anomaly detection configuration") self.assertIsNotNone(detection_config.name) - self.assertEqual(detection_config.whole_series_detection_condition.cross_conditions_operator, "AND") + self.assertEqual(detection_config.whole_series_detection_condition.condition_operator, "AND") self.assertEqual( detection_config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(detection_config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -225,7 +225,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): metric_id=data_feed.metric_ids['cost'], description="My test metric anomaly detection configuration", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( sensitivity=50, anomaly_detector_direction="Both", @@ -257,7 +257,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): series_detection_conditions=[ MetricSingleSeriesDetectionCondition( series_key={"city": "Shenzhen", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -288,7 +288,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): ), MetricSingleSeriesDetectionCondition( series_key={"city": "Osaka", "category": "Cell Phones"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -302,7 +302,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): series_group_detection_conditions=[ MetricSeriesGroupDetectionCondition( series_group_key={"city": "Sao Paulo"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -333,7 +333,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): ), MetricSeriesGroupDetectionCondition( series_group_key={"city": "Seoul"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=SmartDetectionCondition( anomaly_detector_direction="Both", sensitivity=63, @@ -352,7 +352,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): self.assertIsNotNone(detection_config.name) # whole series detection condition - self.assertEqual(detection_config.whole_series_detection_condition.cross_conditions_operator, "AND") + self.assertEqual(detection_config.whole_series_detection_condition.condition_operator, "AND") self.assertEqual( detection_config.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(detection_config.whole_series_detection_condition.change_threshold_condition.change_percentage, 50) @@ -381,7 +381,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): # series detection conditions self.assertEqual( detection_config.series_detection_conditions[0].series_key, {'city': 'Shenzhen', 'category': 'Jewelry'}) - self.assertEqual(detection_config.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(detection_config.series_detection_conditions[0].condition_operator, "AND") self.assertEqual( detection_config.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 100) self.assertEqual( @@ -421,7 +421,7 @@ def test_create_ad_config_multiple_series_and_group_conds(self): # series group detection conditions self.assertEqual( detection_config.series_group_detection_conditions[0].series_group_key, {"city": "Sao Paulo"}) - self.assertEqual(detection_config.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(detection_config.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual( detection_config.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 100) self.assertEqual( @@ -500,15 +500,15 @@ def test_update_detection_config_with_model(self): detection_config.series_detection_conditions[0].change_threshold_condition = change_threshold_condition detection_config.series_detection_conditions[0].hard_threshold_condition = hard_threshold_condition detection_config.series_detection_conditions[0].smart_detection_condition = smart_detection_condition - detection_config.series_detection_conditions[0].cross_conditions_operator = "AND" + detection_config.series_detection_conditions[0].condition_operator = "AND" detection_config.series_group_detection_conditions[0].change_threshold_condition = change_threshold_condition detection_config.series_group_detection_conditions[0].hard_threshold_condition = hard_threshold_condition detection_config.series_group_detection_conditions[0].smart_detection_condition = smart_detection_condition - detection_config.series_group_detection_conditions[0].cross_conditions_operator = "AND" + detection_config.series_group_detection_conditions[0].condition_operator = "AND" detection_config.whole_series_detection_condition.hard_threshold_condition = hard_threshold_condition detection_config.whole_series_detection_condition.smart_detection_condition = smart_detection_condition detection_config.whole_series_detection_condition.change_threshold_condition = change_threshold_condition - detection_config.whole_series_detection_condition.cross_conditions_operator = "OR" + detection_config.whole_series_detection_condition.condition_operator = "OR" self.admin_client.update_detection_configuration(detection_config) updated = self.admin_client.get_detection_configuration(detection_config.id) @@ -528,7 +528,7 @@ def test_update_detection_config_with_model(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.change_percentage, 20) @@ -544,7 +544,7 @@ def test_update_detection_config_with_model(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.change_percentage, 20) @@ -560,7 +560,7 @@ def test_update_detection_config_with_model(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: self.admin_client.delete_data_feed(data_feed.id) @@ -598,21 +598,21 @@ def test_update_detection_config_with_kwargs(self): name="updated", description="updated", whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition ), series_detection_conditions=[MetricSingleSeriesDetectionCondition( series_key={"city": "San Paulo", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition )], series_group_detection_conditions=[MetricSeriesGroupDetectionCondition( series_group_key={"city": "Shenzen"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition @@ -635,7 +635,7 @@ def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_detection_conditions[0].series_key, {"city": "San Paulo", "category": "Jewelry"}) self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") @@ -652,7 +652,7 @@ def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].series_group_key, {"city": "Shenzen"}) self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") @@ -669,7 +669,7 @@ def test_update_detection_config_with_kwargs(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: self.admin_client.delete_data_feed(data_feed.id) @@ -708,21 +708,21 @@ def test_update_detection_config_with_model_and_kwargs(self): self.admin_client.update_detection_configuration( detection_config, whole_series_detection_condition=MetricDetectionCondition( - cross_conditions_operator="OR", + condition_operator="OR", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition ), series_detection_conditions=[MetricSingleSeriesDetectionCondition( series_key={"city": "San Paulo", "category": "Jewelry"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition )], series_group_detection_conditions=[MetricSeriesGroupDetectionCondition( series_group_key={"city": "Shenzen"}, - cross_conditions_operator="AND", + condition_operator="AND", smart_detection_condition=smart_detection_condition, hard_threshold_condition=hard_threshold_condition, change_threshold_condition=change_threshold_condition @@ -745,7 +745,7 @@ def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_detection_conditions[0].series_key, {"city": "San Paulo", "category": "Jewelry"}) self.assertEqual(updated.series_group_detection_conditions[0].change_threshold_condition.anomaly_detector_direction, "Both") @@ -762,7 +762,7 @@ def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.sensitivity, 10) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.series_group_detection_conditions[0].smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.series_group_detection_conditions[0].cross_conditions_operator, "AND") + self.assertEqual(updated.series_group_detection_conditions[0].condition_operator, "AND") self.assertEqual(updated.series_group_detection_conditions[0].series_group_key, {"city": "Shenzen"}) self.assertEqual(updated.whole_series_detection_condition.change_threshold_condition.anomaly_detector_direction, "Both") @@ -779,7 +779,7 @@ def test_update_detection_config_with_model_and_kwargs(self): self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.sensitivity, 10) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_number, 5) self.assertEqual(updated.whole_series_detection_condition.smart_detection_condition.suppress_condition.min_ratio, 2) - self.assertEqual(updated.whole_series_detection_condition.cross_conditions_operator, "OR") + self.assertEqual(updated.whole_series_detection_condition.condition_operator, "OR") finally: self.admin_client.delete_data_feed(data_feed.id) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_metrics_advisor_client_aad_live.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_metrics_advisor_client_aad_live.py index 43848dfc299f..96bcafe5a5b6 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_metrics_advisor_client_aad_live.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_metrics_advisor_client_aad_live.py @@ -90,11 +90,11 @@ def test_list_alerts(self): assert len(list(results)) > 0 def test_list_metrics_series_data(self): - results = list(self.client.list_metrics_series_data( + results = list(self.client.list_metric_series_data( metric_id=self.metric_id, start_time=datetime.datetime(2020, 1, 1), end_time=datetime.datetime(2020, 10, 21), - series_to_filter=[ + series_keys=[ {"city": "Los Angeles", "category": "Homemade"} ] )) diff --git a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_metrics_advisor_client_live.py b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_metrics_advisor_client_live.py index 2d01d927ab4c..b0a7effc64d3 100644 --- a/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_metrics_advisor_client_live.py +++ b/sdk/metricsadvisor/azure-ai-metricsadvisor/tests/test_metrics_advisor_client_live.py @@ -90,11 +90,11 @@ def test_list_alerts(self): assert len(list(results)) > 0 def test_list_metrics_series_data(self): - results = list(self.client.list_metrics_series_data( + results = list(self.client.list_metric_series_data( metric_id=self.metric_id, start_time=datetime.datetime(2020, 1, 1), end_time=datetime.datetime(2020, 10, 21), - series_to_filter=[ + series_keys=[ {"city": "Los Angeles", "category": "Homemade"} ] ))