Class MetricsAdvisorAdministrationClient


  • public final class MetricsAdvisorAdministrationClient
    extends Object
    This class provides an asynchronous client that contains all the operations that apply to Azure Metrics Advisor.

    Instantiating a synchronous Metrics Advisor Administration Client

     MetricsAdvisorAdministrationClient metricsAdvisorAdminClient =
         new MetricsAdvisorAdministrationClientBuilder()
             .credential(new MetricsAdvisorKeyCredential("{subscription_key}", "{api_key}"))
             .endpoint("{endpoint}")
             .buildClient();
     
    See Also:
    MetricsAdvisorAdministrationClientBuilder
    • Method Detail

      • createDataFeed

        public DataFeed createDataFeed​(DataFeed dataFeed)
        Create a new data feed.

        Code sample

         DataFeed dataFeed = new DataFeed()
             .setName("dataFeedName")
             .setSource(new MySqlDataFeedSource("conn-string", "query"))
             .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY))
             .setSchema(new DataFeedSchema(
                 Arrays.asList(
                     new DataFeedMetric("cost"),
                     new DataFeedMetric("revenue")
                 )).setDimensions(
                 Arrays.asList(
                     new DataFeedDimension("city"),
                     new DataFeedDimension("category")
                 ))
             )
             .setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z")))
             .setOptions(new DataFeedOptions()
                 .setDescription("data feed description")
                 .setRollupSettings(new DataFeedRollupSettings()
                     .setRollupType(DataFeedRollupType.AUTO_ROLLUP)));
        
         DataFeed createdDataFeed = metricsAdvisorAdminClient.createDataFeed(dataFeed);
        
         System.out.printf("Data feed Id: %s%n", createdDataFeed.getId());
         System.out.printf("Data feed description: %s%n", createdDataFeed.getOptions().getDescription());
         System.out.printf("Data feed source type: %s%n", createdDataFeed.getSourceType());
         System.out.printf("Data feed creator: %s%n", createdDataFeed.getCreator());
         
        Parameters:
        dataFeed - The data feed to be created.
        Returns:
        The created data feed.
        Throws:
        NullPointerException - If dataFeed, dataFeedName, dataFeedSource, metrics, granularityType or ingestionStartTime is null.
      • createDataFeedWithResponse

        public com.azure.core.http.rest.Response<DataFeed> createDataFeedWithResponse​(DataFeed dataFeed,
                                                                                      com.azure.core.util.Context context)
        Create a new data feed with REST response.

        Code sample

         DataFeed dataFeed = new DataFeed()
             .setName("dataFeedName")
             .setSource(new MySqlDataFeedSource("conn-string", "query"))
             .setGranularity(new DataFeedGranularity().setGranularityType(DataFeedGranularityType.DAILY))
             .setSchema(new DataFeedSchema(
                 Arrays.asList(
                     new DataFeedMetric("cost"),
                     new DataFeedMetric("revenue")
                 )).setDimensions(
                 Arrays.asList(
                     new DataFeedDimension("city"),
                     new DataFeedDimension("category")
                 ))
             )
             .setIngestionSettings(new DataFeedIngestionSettings(OffsetDateTime.parse("2020-01-01T00:00:00Z")))
             .setOptions(new DataFeedOptions()
                 .setDescription("data feed description")
                 .setRollupSettings(new DataFeedRollupSettings()
                     .setRollupType(DataFeedRollupType.AUTO_ROLLUP)));
        
         final Response<DataFeed> createdDataFeedResponse =
             metricsAdvisorAdminClient.createDataFeedWithResponse(dataFeed, Context.NONE);
        
         System.out.printf("Data feed create operation status: %s%n", createdDataFeedResponse.getStatusCode());
         DataFeed createdDataFeed = createdDataFeedResponse.getValue();
         System.out.printf("Data feed Id: %s%n", createdDataFeed.getId());
         System.out.printf("Data feed description: %s%n", createdDataFeed.getOptions().getDescription());
         System.out.printf("Data feed source type: %s%n", createdDataFeed.getSourceType());
         System.out.printf("Data feed creator: %s%n", createdDataFeed.getCreator());
         
        Parameters:
        dataFeed - The data feed to be created.
        context - Additional context that is passed through the HTTP pipeline during the service call.
        Returns:
        A Response containing the created data feed.
        Throws:
        NullPointerException - If dataFeed, dataFeedName, dataFeedSource, metrics, granularityType or ingestionStartTime is null.
      • getDataFeed

        public DataFeed getDataFeed​(String dataFeedId)
        Get a data feed by its id.

        Code sample

         final String dataFeedId = "r47053f1-9080-09lo-bacf-8dccf2e86f";
         DataFeed dataFeed = metricsAdvisorAdminClient.getDataFeed(dataFeedId);
         System.out.printf("Data feed Id: %s%n", dataFeed.getId());
         System.out.printf("Data feed description: %s%n", dataFeed.getOptions().getDescription());
         System.out.printf("Data feed source type: %s%n", dataFeed.getSourceType());
         System.out.printf("Data feed creator: %s%n", dataFeed.getCreator());
         
        Parameters:
        dataFeedId - The data feed unique id.
        Returns:
        The data feed for the provided id.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - thrown if the dataFeedId is null.
      • getDataFeedWithResponse

        public com.azure.core.http.rest.Response<DataFeed> getDataFeedWithResponse​(String dataFeedId,
                                                                                   com.azure.core.util.Context context)
        Get a data feed by its id with REST response.

        Code sample

         final String dataFeedId = "r47053f1-9080-09lo-bacf-8dccf2e86f";
         final Response<DataFeed> dataFeedResponse =
             metricsAdvisorAdminClient.getDataFeedWithResponse(dataFeedId, Context.NONE);
        
         System.out.printf("Data feed get operation status: %s%n", dataFeedResponse.getStatusCode());
         DataFeed dataFeed = dataFeedResponse.getValue();
         System.out.printf("Data feed Id: %s%n", dataFeed.getId());
         System.out.printf("Data feed description: %s%n", dataFeed.getOptions().getDescription());
         System.out.printf("Data feed source type: %s%n", dataFeed.getSourceType());
         System.out.printf("Data feed creator: %s%n", dataFeed.getCreator());
         
        Parameters:
        dataFeedId - The data feed unique id.
        context - Additional context that is passed through the HTTP pipeline during the service call.
        Returns:
        The data feed for the provided id.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - thrown if the dataFeedId is null.
      • updateDataFeed

        public DataFeed updateDataFeed​(DataFeed dataFeed)
        Update a data feed.

        Code sample

        
         DataFeed existingDataFeed = new DataFeed();
         final DataFeed updatedDataFeed = metricsAdvisorAdminClient.updateDataFeed(
             existingDataFeed.setOptions(new DataFeedOptions().setDescription("set updated description")));
        
         System.out.printf("Data feed Id: %s%n", updatedDataFeed.getId());
         System.out.printf("Data feed updated description: %s%n", updatedDataFeed.getOptions().getDescription());
         
        Parameters:
        dataFeed - the data feed that needs to be updated.
        Returns:
        the updated data feed.
      • updateDataFeedWithResponse

        public com.azure.core.http.rest.Response<DataFeed> updateDataFeedWithResponse​(DataFeed dataFeed,
                                                                                      com.azure.core.util.Context context)
        Update a data feed with REST response.

        Code sample

         DataFeed existingDataFeed = new DataFeed();
         final Response<DataFeed> updateDataFeedWithResponse =
             metricsAdvisorAdminClient.updateDataFeedWithResponse(
                 existingDataFeed.setOptions(new DataFeedOptions().setDescription("set updated description")),
                 Context.NONE);
        
         System.out.printf("Data feed update operation status: %s%n", updateDataFeedWithResponse.getStatusCode());
         DataFeed dataFeed = updateDataFeedWithResponse.getValue();
         System.out.printf("Data feed Id: %s%n", dataFeed.getId());
         System.out.printf("Data feed updated description: %s%n", dataFeed.getOptions().getDescription());
         
        Parameters:
        dataFeed - the data feed that needs to be updated.
        context - Additional context that is passed through the HTTP pipeline during the service call.
        Returns:
        the updated data feed.
      • deleteDataFeed

        public void deleteDataFeed​(String dataFeedId)
        Delete a data feed.

        Code sample

         final String dataFeedId = "r47053f1-9080-09lo-bacf-8dccf2e86f";
         metricsAdvisorAdminClient.deleteDataFeed(dataFeedId);
         
        Parameters:
        dataFeedId - The data feed unique id.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - thrown if the dataFeedId is null.
      • deleteDataFeedWithResponse

        public com.azure.core.http.rest.Response<Void> deleteDataFeedWithResponse​(String dataFeedId,
                                                                                  com.azure.core.util.Context context)
        Delete a data feed with REST response.

        Code sample

         final String dataFeedId = "r47053f1-9080-09lo-bacf-8dccf2e86f";
         final Response<Void> response = metricsAdvisorAdminClient
             .deleteDataFeedWithResponse(dataFeedId, Context.NONE);
         System.out.printf("Data feed delete operation status : %s%n", response.getStatusCode());
         
        Parameters:
        dataFeedId - The data feed unique id.
        context - Additional context that is passed through the HTTP pipeline during the service call.
        Returns:
        a REST Response.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - thrown if the dataFeedId is null.
      • listDataFeeds

        public com.azure.core.http.rest.PagedIterable<DataFeed> listDataFeeds()
        List information of all data feeds on the metrics advisor account.

        Code sample

         metricsAdvisorAdminClient.listDataFeeds()
             .forEach(dataFeed -> {
                 System.out.printf("Data feed Id: %s%n", dataFeed.getId());
                 System.out.printf("Data feed description: %s%n", dataFeed.getOptions().getDescription());
                 System.out.printf("Data feed source type: %s%n", dataFeed.getSourceType());
                 System.out.printf("Data feed creator: %s%n", dataFeed.getCreator());
             });
         
        Returns:
        A PagedIterable containing information of all the data feeds in the account.
      • listDataFeeds

        public com.azure.core.http.rest.PagedIterable<DataFeed> listDataFeeds​(ListDataFeedOptions options,
                                                                              com.azure.core.util.Context context)
        List information of all data feeds on the metrics advisor account with REST response.

        Code sample

         metricsAdvisorAdminClient.listDataFeeds(
             new ListDataFeedOptions()
                 .setListDataFeedFilter(
                     new ListDataFeedFilter()
                         .setDataFeedStatus(DataFeedStatus.ACTIVE)
                         .setDataFeedGranularityType(DataFeedGranularityType.DAILY))
                 .setMaxPageSize(3), Context.NONE)
             .forEach(dataFeed -> {
                 System.out.printf("Data feed Id: %s%n", dataFeed.getId());
                 System.out.printf("Data feed description: %s%n", dataFeed.getOptions().getDescription());
                 System.out.printf("Data feed source type: %s%n", dataFeed.getSourceType());
                 System.out.printf("Data feed creator: %s%n", dataFeed.getCreator());
                 System.out.printf("Data feed status: %s%n", dataFeed.getStatus());
                 System.out.printf("Data feed granularity type: %s%n", dataFeed.getGranularity().getGranularityType());
             });
         
        Parameters:
        options - The configurable options to pass for filtering the output result.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A PagedIterable containing information of all the data feeds in the account.
      • listDataFeedIngestionStatus

        public com.azure.core.http.rest.PagedIterable<DataFeedIngestionStatus> listDataFeedIngestionStatus​(String dataFeedId,
                                                                                                           ListDataFeedIngestionOptions options)
        Fetch the ingestion status of a data feed.

        Code sample

         final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
         final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z");
         final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z");
         final ListDataFeedIngestionOptions options = new ListDataFeedIngestionOptions(startTime, endTime);
         PagedIterable<DataFeedIngestionStatus> ingestionStatuses
             = metricsAdvisorAdminClient.listDataFeedIngestionStatus(dataFeedId, options);
        
         for (DataFeedIngestionStatus ingestionStatus : ingestionStatuses) {
             System.out.printf("Timestamp: %s%n", ingestionStatus.getTimestamp());
             System.out.printf("Status: %s%n", ingestionStatus.getStatus());
             System.out.printf("Message: %s%n", ingestionStatus.getMessage());
         }
         
        Parameters:
        dataFeedId - The data feed id.
        options - The additional parameters.
        Returns:
        The ingestion statuses.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - If dataFeedId, options, options.startTime, options.endTime is null.
      • listDataFeedIngestionStatus

        public com.azure.core.http.rest.PagedIterable<DataFeedIngestionStatus> listDataFeedIngestionStatus​(String dataFeedId,
                                                                                                           ListDataFeedIngestionOptions options,
                                                                                                           com.azure.core.util.Context context)
        Fetch the ingestion status of a data feed.

        Code sample

         final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
         final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z");
         final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z");
         final ListDataFeedIngestionOptions options = new ListDataFeedIngestionOptions(startTime, endTime);
         PagedIterable<DataFeedIngestionStatus> ingestionStatuses
             = metricsAdvisorAdminClient.listDataFeedIngestionStatus(dataFeedId, options, Context.NONE);
         Stream<PagedResponse<DataFeedIngestionStatus>> ingestionStatusPageStream = ingestionStatuses.streamByPage();
         int[] pageCount = new int[1];
         ingestionStatusPageStream.forEach(ingestionStatusPage -> {
             System.out.printf("Page: %d%n", pageCount[0]++);
             for (DataFeedIngestionStatus ingestionStatus : ingestionStatusPage.getElements()) {
                 System.out.printf("Timestamp: %s%n", ingestionStatus.getTimestamp());
                 System.out.printf("Status: %s%n", ingestionStatus.getStatus());
                 System.out.printf("Message: %s%n", ingestionStatus.getMessage());
             }
         });
         
        Parameters:
        dataFeedId - The data feed id.
        options - The additional parameters.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        The ingestion statuses.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - If dataFeedId, options, options.startTime, options.endTime is null.
      • refreshDataFeedIngestion

        public void refreshDataFeedIngestion​(String dataFeedId,
                                             OffsetDateTime startTime,
                                             OffsetDateTime endTime)
        Refresh data ingestion for a period.

        The data in the data source for the given period will be reingested and any ingested data for the same period will be overwritten.

        Code sample

         final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
         final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z");
         final OffsetDateTime endTime = OffsetDateTime.parse("2020-03-03T00:00:00Z");
         metricsAdvisorAdminClient.refreshDataFeedIngestion(dataFeedId,
             startTime,
             endTime);
         
        Parameters:
        dataFeedId - The data feed id.
        startTime - The start point of the period.
        endTime - The end point of of the period.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - If dataFeedId, startTime, endTime is null.
      • refreshDataFeedIngestionWithResponse

        public com.azure.core.http.rest.Response<Void> refreshDataFeedIngestionWithResponse​(String dataFeedId,
                                                                                            OffsetDateTime startTime,
                                                                                            OffsetDateTime endTime,
                                                                                            com.azure.core.util.Context context)
        Refresh data ingestion for a period.

        The data in the data source for the given period will be reingested and any ingested data for the same period will be overwritten.

        Code sample

         final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
         final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z");
         final OffsetDateTime endTime = OffsetDateTime.parse("2020-03-03T00:00:00Z");
         Response<Void> response = metricsAdvisorAdminClient.refreshDataFeedIngestionWithResponse(dataFeedId,
             startTime,
             endTime,
             Context.NONE);
         System.out.printf("Response statusCode: %d%n", response.getStatusCode());
         
        Parameters:
        dataFeedId - The data feed id.
        startTime - The start point of the period.
        endTime - The end point of of the period.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        The response.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - If dataFeedId, startTime, endTime is null.
      • getDataFeedIngestionProgress

        public DataFeedIngestionProgress getDataFeedIngestionProgress​(String dataFeedId)
        Retrieve the ingestion progress of a data feed.

        Code sample

         final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
         DataFeedIngestionProgress ingestionProgress
             = metricsAdvisorAdminClient.getDataFeedIngestionProgress(dataFeedId);
         System.out.printf("Latest active timestamp: %s%n", ingestionProgress.getLatestActiveTimestamp());
         System.out.printf("Latest successful timestamp: %s%n", ingestionProgress.getLatestSuccessTimestamp());
         
        Parameters:
        dataFeedId - The data feed id.
        Returns:
        The DataFeedIngestionProgress of the data feed.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - thrown if the dataFeedId is null.
      • getDataFeedIngestionProgressWithResponse

        public com.azure.core.http.rest.Response<DataFeedIngestionProgress> getDataFeedIngestionProgressWithResponse​(String dataFeedId,
                                                                                                                     com.azure.core.util.Context context)
        Retrieve the ingestion progress of a data feed.

        Code sample

         final String dataFeedId = "4957a2f7-a0f4-4fc0-b8d7-d866c1df0f4c";
         Response<DataFeedIngestionProgress> response
             = metricsAdvisorAdminClient.getDataFeedIngestionProgressWithResponse(dataFeedId, Context.NONE);
         System.out.printf("Response statusCode: %d%n", response.getStatusCode());
         DataFeedIngestionProgress ingestionProgress = response.getValue();
         System.out.printf("Latest active timestamp: %s%n", ingestionProgress.getLatestActiveTimestamp());
         System.out.printf("Latest successful timestamp: %s%n", ingestionProgress.getLatestSuccessTimestamp());
         
        Parameters:
        dataFeedId - The data feed id.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response containing DataFeedIngestionProgress of the data feed.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - thrown if the dataFeedId is null.
      • createDetectionConfig

        public AnomalyDetectionConfiguration createDetectionConfig​(String metricId,
                                                                   AnomalyDetectionConfiguration detectionConfiguration)
        Create a configuration to detect anomalies in the time series of a metric.

        Code sample

         final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition()
             .setConditionOperator(DetectionConditionOperator.OR)
             .setSmartDetectionCondition(new SmartDetectionCondition(
                 50,
                 AnomalyDetectorDirection.BOTH,
                 new SuppressCondition(50, 50)))
             .setHardThresholdCondition(new HardThresholdCondition(
                 AnomalyDetectorDirection.BOTH,
                 new SuppressCondition(5, 5))
                 .setLowerBound(0.0)
                 .setUpperBound(100.0))
             .setChangeThresholdCondition(new ChangeThresholdCondition(
                 50,
                 30,
                 true,
                 AnomalyDetectorDirection.BOTH,
                 new SuppressCondition(2, 2)));
        
         final String detectionConfigName = "my_detection_config";
         final String detectionConfigDescription = "anomaly detection config for metric";
         final AnomalyDetectionConfiguration detectionConfig
             = new AnomalyDetectionConfiguration(detectionConfigName)
             .setDescription(detectionConfigDescription)
             .setWholeSeriesDetectionCondition(wholeSeriesCondition);
        
         final String metricId = "0b836da8-10e6-46cd-8f4f-28262e113a62";
         AnomalyDetectionConfiguration createdDetectionConfig = metricsAdvisorAdminClient
             .createDetectionConfig(metricId, detectionConfig);
         System.out.printf("Detection config Id: %s%n", createdDetectionConfig.getId());
         System.out.printf("Name: %s%n", createdDetectionConfig.getName());
         System.out.printf("Description: %s%n", createdDetectionConfig.getDescription());
         System.out.printf("MetricId: %s%n", createdDetectionConfig.getMetricId());
         
        Parameters:
        metricId - The metric id to associate the configuration with.
        detectionConfiguration - The anomaly detection configuration.
        Returns:
        The created AnomalyDetectionConfiguration.
        Throws:
        IllegalArgumentException - If metricId does not conform to the UUID format specification, or detectionConfiguration.name is not set.
        NullPointerException - thrown if the metricId is null or detectionConfiguration is null or detectionConfiguration.wholeSeriesCondition is null or seriesKey is missing for any MetricSingleSeriesDetectionCondition in the configuration or seriesGroupKey is missing for any MetricSeriesGroupDetectionCondition in the configuration or conditionOperator is missing when multiple nested conditions are set in a MetricSingleSeriesDetectionCondition or MetricSeriesGroupDetectionCondition.
      • createDetectionConfigWithResponse

        public com.azure.core.http.rest.Response<AnomalyDetectionConfiguration> createDetectionConfigWithResponse​(String metricId,
                                                                                                                  AnomalyDetectionConfiguration detectionConfiguration,
                                                                                                                  com.azure.core.util.Context context)
        Create a configuration to detect anomalies in the time series of a metric.

        Code sample

         final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition()
             .setConditionOperator(DetectionConditionOperator.OR)
             .setSmartDetectionCondition(new SmartDetectionCondition(
                 50,
                 AnomalyDetectorDirection.BOTH,
                 new SuppressCondition(50, 50)))
             .setHardThresholdCondition(new HardThresholdCondition(
                 AnomalyDetectorDirection.BOTH,
                 new SuppressCondition(5, 5))
                 .setLowerBound(0.0)
                 .setUpperBound(100.0))
             .setChangeThresholdCondition(new ChangeThresholdCondition(
                 50,
                 30,
                 true,
                 AnomalyDetectorDirection.BOTH,
                 new SuppressCondition(2, 2)));
        
         final String detectionConfigName = "my_detection_config";
         final String detectionConfigDescription = "anomaly detection config for metric";
         final AnomalyDetectionConfiguration detectionConfig
             = new AnomalyDetectionConfiguration(detectionConfigName)
             .setDescription(detectionConfigDescription)
             .setWholeSeriesDetectionCondition(wholeSeriesCondition);
        
         final String metricId = "0b836da8-10e6-46cd-8f4f-28262e113a62";
         Response<AnomalyDetectionConfiguration> response = metricsAdvisorAdminClient
             .createDetectionConfigWithResponse(metricId, detectionConfig, Context.NONE);
         System.out.printf("Response statusCode: %d%n", response.getStatusCode());
         AnomalyDetectionConfiguration createdDetectionConfig = response.getValue();
         System.out.printf("Detection config Id: %s%n", createdDetectionConfig.getId());
         System.out.printf("Name: %s%n", createdDetectionConfig.getName());
         System.out.printf("Description: %s%n", createdDetectionConfig.getDescription());
         System.out.printf("MetricId: %s%n", createdDetectionConfig.getMetricId());
         
        Parameters:
        metricId - The metric id to associate the configuration with.
        detectionConfiguration - The anomaly detection configuration.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response containing the created AnomalyDetectionConfiguration.
        Throws:
        IllegalArgumentException - If metricId does not conform to the UUID format specification, or detectionConfiguration.name is not set.
        NullPointerException - thrown if the metricId is null or detectionConfiguration is null or detectionConfiguration.wholeSeriesCondition is null or seriesKey is missing for any MetricSingleSeriesDetectionCondition in the configuration or seriesGroupKey is missing for any MetricSeriesGroupDetectionCondition in the configuration or conditionOperator is missing when multiple nested conditions are set in a MetricSingleSeriesDetectionCondition or MetricSeriesGroupDetectionCondition.
      • getDetectionConfig

        public AnomalyDetectionConfiguration getDetectionConfig​(String detectionConfigurationId)
        Get the anomaly detection configuration by its id.

        Code sample

         final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
         AnomalyDetectionConfiguration detectionConfig = metricsAdvisorAdminClient
             .getDetectionConfig(detectionConfigId);
         System.out.printf("Detection config Id: %s%n", detectionConfig.getId());
         System.out.printf("Name: %s%n", detectionConfig.getName());
         System.out.printf("Description: %s%n", detectionConfig.getDescription());
         System.out.printf("MetricId: %s%n", detectionConfig.getMetricId());
        
         System.out.printf("Detection conditions specified for configuration...%n");
        
         System.out.printf("Whole Series Detection Conditions:%n");
         MetricWholeSeriesDetectionCondition wholeSeriesDetectionCondition
             = detectionConfig.getWholeSeriesDetectionCondition();
        
         System.out.printf("- Use %s operator for multiple detection conditions:%n",
             wholeSeriesDetectionCondition.getConditionOperator());
        
         System.out.printf("- Smart Detection Condition:%n");
         System.out.printf(" - Sensitivity: %s%n",
             wholeSeriesDetectionCondition.getSmartDetectionCondition()
                 .getSensitivity());
         System.out.printf(" - Detection direction: %s%n",
             wholeSeriesDetectionCondition.getSmartDetectionCondition()
                 .getAnomalyDetectorDirection());
         System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
             wholeSeriesDetectionCondition.getSmartDetectionCondition()
                 .getSuppressCondition().getMinNumber(),
             wholeSeriesDetectionCondition.getSmartDetectionCondition()
                 .getSuppressCondition().getMinRatio());
        
         System.out.printf("- Hard Threshold Condition:%n");
         System.out.printf(" - Lower bound: %s%n",
             wholeSeriesDetectionCondition.getHardThresholdCondition()
                 .getLowerBound());
         System.out.printf(" - Upper bound: %s%n",
             wholeSeriesDetectionCondition.getHardThresholdCondition()
                 .getUpperBound());
         System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
             wholeSeriesDetectionCondition.getHardThresholdCondition()
                 .getSuppressCondition().getMinNumber(),
             wholeSeriesDetectionCondition.getHardThresholdCondition()
                 .getSuppressCondition().getMinRatio());
        
         System.out.printf("- Change Threshold Condition:%n");
         System.out.printf(" - Change percentage: %s%n",
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .getChangePercentage());
         System.out.printf(" - Shift point: %s%n",
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .getShiftPoint());
         System.out.printf(" - Detect anomaly if within range: %s%n",
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .isWithinRange());
         System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .getSuppressCondition().getMinNumber(),
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .getSuppressCondition().getMinRatio());
        
         List<MetricSingleSeriesDetectionCondition> seriesDetectionConditions
             = detectionConfig.getSeriesDetectionConditions();
         System.out.printf("Series Detection Conditions:%n");
         for (MetricSingleSeriesDetectionCondition seriesDetectionCondition : seriesDetectionConditions) {
             DimensionKey seriesKey = seriesDetectionCondition.getSeriesKey();
             final String seriesKeyStr
                 = Arrays.toString(seriesKey.asMap().entrySet().toArray());
             System.out.printf("- Series Key:%s%n", seriesKeyStr);
             System.out.printf(" - Use %s operator for multiple detection conditions:%n",
                 seriesDetectionCondition.getConditionOperator());
        
             System.out.printf(" - Smart Detection Condition:%n");
             System.out.printf("  - Sensitivity: %s%n",
                 seriesDetectionCondition.getSmartDetectionCondition()
                     .getSensitivity());
             System.out.printf("  - Detection direction: %s%n",
                 seriesDetectionCondition.getSmartDetectionCondition()
                     .getAnomalyDetectorDirection());
             System.out.printf("  - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesDetectionCondition.getSmartDetectionCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesDetectionCondition.getSmartDetectionCondition()
                     .getSuppressCondition().getMinRatio());
        
             System.out.printf(" - Hard Threshold Condition:%n");
             System.out.printf("  -  Lower bound: %s%n",
                 seriesDetectionCondition.getHardThresholdCondition()
                     .getLowerBound());
             System.out.printf("  -  Upper bound: %s%n",
                 seriesDetectionCondition.getHardThresholdCondition()
                     .getUpperBound());
             System.out.printf("  -  Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesDetectionCondition.getHardThresholdCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesDetectionCondition.getHardThresholdCondition()
                     .getSuppressCondition().getMinRatio());
        
             System.out.printf(" - Change Threshold Condition:%n");
             System.out.printf("  -  Change percentage: %s%n",
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .getChangePercentage());
             System.out.printf("  -  Shift point: %s%n",
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .getShiftPoint());
             System.out.printf("  -  Detect anomaly if within range: %s%n",
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .isWithinRange());
             System.out.printf("  -  Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .getSuppressCondition().getMinRatio());
         }
        
         List<MetricSeriesGroupDetectionCondition> seriesGroupDetectionConditions
             = detectionConfig.getSeriesGroupDetectionConditions();
         System.out.printf("Series Group Detection Conditions:%n");
         for (MetricSeriesGroupDetectionCondition seriesGroupDetectionCondition
             : seriesGroupDetectionConditions) {
             DimensionKey seriesGroupKey = seriesGroupDetectionCondition.getSeriesGroupKey();
             final String seriesGroupKeyStr
                 = Arrays.toString(seriesGroupKey.asMap().entrySet().toArray());
             System.out.printf("- Series Group Key:%s%n", seriesGroupKeyStr);
             System.out.printf(" - Use %s operator for multiple detection conditions:%n",
                 seriesGroupDetectionCondition.getConditionOperator());
        
             System.out.printf(" - Smart Detection Condition:%n");
             System.out.printf("  - Sensitivity: %s%n",
                 seriesGroupDetectionCondition.getSmartDetectionCondition()
                     .getSensitivity());
             System.out.printf("  - Detection direction: %s%n",
                 seriesGroupDetectionCondition.getSmartDetectionCondition()
                     .getAnomalyDetectorDirection());
             System.out.printf("  - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesGroupDetectionCondition.getSmartDetectionCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesGroupDetectionCondition.getSmartDetectionCondition()
                     .getSuppressCondition().getMinRatio());
        
             System.out.printf(" - Hard Threshold Condition:%n");
             System.out.printf("  -  Lower bound: %s%n",
                 seriesGroupDetectionCondition.getHardThresholdCondition()
                     .getLowerBound());
             System.out.printf("  -  Upper bound: %s%n",
                 seriesGroupDetectionCondition.getHardThresholdCondition()
                     .getUpperBound());
             System.out.printf("  -  Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesGroupDetectionCondition.getHardThresholdCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesGroupDetectionCondition.getHardThresholdCondition()
                     .getSuppressCondition().getMinRatio());
        
             System.out.printf(" - Change Threshold Condition:%n");
             System.out.printf("  -  Change percentage: %s%n",
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .getChangePercentage());
             System.out.printf("  -  Shift point: %s%n",
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .getShiftPoint());
             System.out.printf("  -  Detect anomaly if within range: %s%n",
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .isWithinRange());
             System.out.printf("  -  Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .getSuppressCondition().getMinRatio());
         }
         
        Parameters:
        detectionConfigurationId - The anomaly detection configuration id.
        Returns:
        The AnomalyDetectionConfiguration identified by the given id.
        Throws:
        IllegalArgumentException - If detectionConfigurationId does not conform to the UUID format specification.
        NullPointerException - thrown if the detectionConfigurationId is null.
      • getDetectionConfigWithResponse

        public com.azure.core.http.rest.Response<AnomalyDetectionConfiguration> getDetectionConfigWithResponse​(String detectionConfigurationId,
                                                                                                               com.azure.core.util.Context context)
        Get the anomaly detection configuration by its id.

        Code sample

         final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
         Response<AnomalyDetectionConfiguration> response = metricsAdvisorAdminClient
             .getDetectionConfigWithResponse(detectionConfigId, Context.NONE);
         System.out.printf("Response statusCode: %d%n", response.getStatusCode());
         AnomalyDetectionConfiguration detectionConfig = response.getValue();
         System.out.printf("Detection config Id: %s%n", detectionConfig.getId());
         System.out.printf("Name: %s%n", detectionConfig.getName());
         System.out.printf("Description: %s%n", detectionConfig.getDescription());
         System.out.printf("MetricId: %s%n", detectionConfig.getMetricId());
        
         System.out.printf("Detection conditions specified for configuration...%n");
        
         System.out.printf("Whole Series Detection Conditions:%n");
         MetricWholeSeriesDetectionCondition wholeSeriesDetectionCondition
             = detectionConfig.getWholeSeriesDetectionCondition();
        
         System.out.printf("- Use %s operator for multiple detection conditions:%n",
             wholeSeriesDetectionCondition.getConditionOperator());
        
         System.out.printf("- Smart Detection Condition:%n");
         System.out.printf(" - Sensitivity: %s%n",
             wholeSeriesDetectionCondition.getSmartDetectionCondition()
                 .getSensitivity());
         System.out.printf(" - Detection direction: %s%n",
             wholeSeriesDetectionCondition.getSmartDetectionCondition()
                 .getAnomalyDetectorDirection());
         System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
             wholeSeriesDetectionCondition.getSmartDetectionCondition()
                 .getSuppressCondition().getMinNumber(),
             wholeSeriesDetectionCondition.getSmartDetectionCondition()
                 .getSuppressCondition().getMinRatio());
        
         System.out.printf("- Hard Threshold Condition:%n");
         System.out.printf(" - Lower bound: %s%n",
             wholeSeriesDetectionCondition.getHardThresholdCondition()
                 .getLowerBound());
         System.out.printf(" - Upper bound: %s%n",
             wholeSeriesDetectionCondition.getHardThresholdCondition()
                 .getUpperBound());
         System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
             wholeSeriesDetectionCondition.getHardThresholdCondition()
                 .getSuppressCondition().getMinNumber(),
             wholeSeriesDetectionCondition.getHardThresholdCondition()
                 .getSuppressCondition().getMinRatio());
        
         System.out.printf("- Change Threshold Condition:%n");
         System.out.printf(" - Change percentage: %s%n",
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .getChangePercentage());
         System.out.printf(" - Shift point: %s%n",
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .getShiftPoint());
         System.out.printf(" - Detect anomaly if within range: %s%n",
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .isWithinRange());
         System.out.printf(" - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .getSuppressCondition().getMinNumber(),
             wholeSeriesDetectionCondition.getChangeThresholdCondition()
                 .getSuppressCondition().getMinRatio());
        
         List<MetricSingleSeriesDetectionCondition> seriesDetectionConditions
             = detectionConfig.getSeriesDetectionConditions();
         System.out.printf("Series Detection Conditions:%n");
         for (MetricSingleSeriesDetectionCondition seriesDetectionCondition : seriesDetectionConditions) {
             DimensionKey seriesKey = seriesDetectionCondition.getSeriesKey();
             final String seriesKeyStr
                 = Arrays.toString(seriesKey.asMap().entrySet().toArray());
             System.out.printf("- Series Key:%s%n", seriesKeyStr);
             System.out.printf(" - Use %s operator for multiple detection conditions:%n",
                 seriesDetectionCondition.getConditionOperator());
        
             System.out.printf(" - Smart Detection Condition:%n");
             System.out.printf("  - Sensitivity: %s%n",
                 seriesDetectionCondition.getSmartDetectionCondition()
                     .getSensitivity());
             System.out.printf("  - Detection direction: %s%n",
                 seriesDetectionCondition.getSmartDetectionCondition()
                     .getAnomalyDetectorDirection());
             System.out.printf("  - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesDetectionCondition.getSmartDetectionCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesDetectionCondition.getSmartDetectionCondition()
                     .getSuppressCondition().getMinRatio());
        
             System.out.printf(" - Hard Threshold Condition:%n");
             System.out.printf("  -  Lower bound: %s%n",
                 seriesDetectionCondition.getHardThresholdCondition()
                     .getLowerBound());
             System.out.printf("  -  Upper bound: %s%n",
                 seriesDetectionCondition.getHardThresholdCondition()
                     .getUpperBound());
             System.out.printf("  -  Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesDetectionCondition.getHardThresholdCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesDetectionCondition.getHardThresholdCondition()
                     .getSuppressCondition().getMinRatio());
        
             System.out.printf(" - Change Threshold Condition:%n");
             System.out.printf("  -  Change percentage: %s%n",
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .getChangePercentage());
             System.out.printf("  -  Shift point: %s%n",
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .getShiftPoint());
             System.out.printf("  -  Detect anomaly if within range: %s%n",
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .isWithinRange());
             System.out.printf("  -  Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesDetectionCondition.getChangeThresholdCondition()
                     .getSuppressCondition().getMinRatio());
         }
        
         List<MetricSeriesGroupDetectionCondition> seriesGroupDetectionConditions
             = detectionConfig.getSeriesGroupDetectionConditions();
         System.out.printf("Series Group Detection Conditions:%n");
         for (MetricSeriesGroupDetectionCondition seriesGroupDetectionCondition
             : seriesGroupDetectionConditions) {
             DimensionKey seriesGroupKey = seriesGroupDetectionCondition.getSeriesGroupKey();
             final String seriesGroupKeyStr
                 = Arrays.toString(seriesGroupKey.asMap().entrySet().toArray());
             System.out.printf("- Series Group Key:%s%n", seriesGroupKeyStr);
             System.out.printf(" - Use %s operator for multiple detection conditions:%n",
                 seriesGroupDetectionCondition.getConditionOperator());
        
             System.out.printf(" - Smart Detection Condition:%n");
             System.out.printf("  - Sensitivity: %s%n",
                 seriesGroupDetectionCondition.getSmartDetectionCondition()
                     .getSensitivity());
             System.out.printf("  - Detection direction: %s%n",
                 seriesGroupDetectionCondition.getSmartDetectionCondition()
                     .getAnomalyDetectorDirection());
             System.out.printf("  - Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesGroupDetectionCondition.getSmartDetectionCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesGroupDetectionCondition.getSmartDetectionCondition()
                     .getSuppressCondition().getMinRatio());
        
             System.out.printf(" - Hard Threshold Condition:%n");
             System.out.printf("  -  Lower bound: %s%n",
                 seriesGroupDetectionCondition.getHardThresholdCondition()
                     .getLowerBound());
             System.out.printf("  -  Upper bound: %s%n",
                 seriesGroupDetectionCondition.getHardThresholdCondition()
                     .getUpperBound());
             System.out.printf("  -  Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesGroupDetectionCondition.getHardThresholdCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesGroupDetectionCondition.getHardThresholdCondition()
                     .getSuppressCondition().getMinRatio());
        
             System.out.printf(" - Change Threshold Condition:%n");
             System.out.printf("  -  Change percentage: %s%n",
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .getChangePercentage());
             System.out.printf("  -  Shift point: %s%n",
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .getShiftPoint());
             System.out.printf("  -  Detect anomaly if within range: %s%n",
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .isWithinRange());
             System.out.printf("  -  Suppress conditions: minimum number: %s; minimum ratio: %s%n",
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .getSuppressCondition().getMinNumber(),
                 seriesGroupDetectionCondition.getChangeThresholdCondition()
                     .getSuppressCondition().getMinRatio());
         }
         
        Parameters:
        detectionConfigurationId - The anomaly detection configuration id.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response containing the AnomalyDetectionConfiguration for the provided id.
        Throws:
        IllegalArgumentException - If detectionConfigurationId does not conform to the UUID format specification.
        NullPointerException - thrown if the detectionConfigurationId is null.
      • updateDetectionConfig

        public AnomalyDetectionConfiguration updateDetectionConfig​(AnomalyDetectionConfiguration detectionConfiguration)
        Update a configuration to detect anomalies in the time series of a metric.

        Code sample

         final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
         AnomalyDetectionConfiguration detectionConfig = metricsAdvisorAdminClient
             .getDetectionConfig(detectionConfigId);
        
         detectionConfig.setName("updated config name");
         detectionConfig.setDescription("updated with more detection conditions");
         DimensionKey seriesGroupKey = new DimensionKey()
             .put("city", "Seoul");
         detectionConfig.addSeriesGroupDetectionCondition(
             new MetricSeriesGroupDetectionCondition(seriesGroupKey)
                 .setSmartDetectionCondition(new SmartDetectionCondition(
                     10.0,
                     AnomalyDetectorDirection.UP,
                     new SuppressCondition(2, 2))));
        
         AnomalyDetectionConfiguration updatedDetectionConfig = metricsAdvisorAdminClient
             .updateDetectionConfig(detectionConfig);
        
         System.out.printf("Detection config Id: %s%n", updatedDetectionConfig.getId());
         System.out.printf("Name: %s%n", updatedDetectionConfig.getName());
         System.out.printf("Description: %s%n", updatedDetectionConfig.getDescription());
         System.out.printf("MetricId: %s%n", updatedDetectionConfig.getMetricId());
         
        Parameters:
        detectionConfiguration - The anomaly detection configuration.
        Returns:
        The updated AnomalyDetectionConfiguration.
        Throws:
        NullPointerException - thrown if the detectionConfiguration is null or detectionConfiguration.id is null.
      • updateDetectionConfigWithResponse

        public com.azure.core.http.rest.Response<AnomalyDetectionConfiguration> updateDetectionConfigWithResponse​(AnomalyDetectionConfiguration detectionConfiguration,
                                                                                                                  com.azure.core.util.Context context)
        Update a configuration to detect anomalies in the time series of a metric.

        Code sample

         final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
         Response<AnomalyDetectionConfiguration> getResponse = metricsAdvisorAdminClient
             .getDetectionConfigWithResponse(detectionConfigId, Context.NONE);
         AnomalyDetectionConfiguration detectionConfig = getResponse.getValue();
         detectionConfig.setName("updated config name");
         detectionConfig.setDescription("updated with more detection conditions");
         DimensionKey seriesGroupKey = new DimensionKey()
             .put("city", "Seoul");
         detectionConfig.addSeriesGroupDetectionCondition(
             new MetricSeriesGroupDetectionCondition(seriesGroupKey)
                 .setSmartDetectionCondition(new SmartDetectionCondition(
                     10.0,
                     AnomalyDetectorDirection.UP,
                     new SuppressCondition(2, 2))));
        
         Response<AnomalyDetectionConfiguration> updateResponse = metricsAdvisorAdminClient
             .updateDetectionConfigWithResponse(detectionConfig, Context.NONE);
        
         System.out.printf("Response StatusCode: %s%n", updateResponse.getStatusCode());
         AnomalyDetectionConfiguration updatedDetectionConfig = updateResponse.getValue();
         System.out.printf("Detection config Id: %s%n", updatedDetectionConfig.getId());
         System.out.printf("Name: %s%n", updatedDetectionConfig.getName());
         System.out.printf("Description: %s%n", updatedDetectionConfig.getDescription());
         System.out.printf("MetricId: %s%n", updatedDetectionConfig.getMetricId());
         
        Parameters:
        detectionConfiguration - The anomaly detection configuration.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response containing the updated AnomalyDetectionConfiguration.
        Throws:
        NullPointerException - thrown if the detectionConfiguration is null or detectionConfiguration.id is null.
      • deleteDetectionConfig

        public void deleteDetectionConfig​(String detectionConfigurationId)
        Delete a metric anomaly detection configuration.

        Code sample

         final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
         metricsAdvisorAdminClient
             .deleteDetectionConfig(detectionConfigId);
         
        Parameters:
        detectionConfigurationId - The metric anomaly detection configuration unique id.
        Throws:
        NullPointerException - thrown if the detectionConfigurationId is null.
        IllegalArgumentException - If detectionConfigurationId does not conform to the UUID format specification.
      • deleteDetectionConfigWithResponse

        public com.azure.core.http.rest.Response<Void> deleteDetectionConfigWithResponse​(String detectionConfigurationId,
                                                                                         com.azure.core.util.Context context)
        Delete a metric anomaly detection configuration.

        Code sample

         final String detectionConfigId = "7b8069a1-1564-46da-9f50-b5d0dd9129ab";
         Response<Void> response = metricsAdvisorAdminClient
             .deleteDetectionConfigWithResponse(detectionConfigId, Context.NONE);
         System.out.printf("Response Status Code: %s%n", response.getStatusCode());
         
        Parameters:
        detectionConfigurationId - The metric anomaly detection configuration unique id.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response of containing result of delete operation.
        Throws:
        NullPointerException - thrown if the detectionConfigurationId is null.
        IllegalArgumentException - If detectionConfigurationId does not conform to the UUID format specification.
      • listDetectionConfigs

        public com.azure.core.http.rest.PagedIterable<AnomalyDetectionConfiguration> listDetectionConfigs​(String metricId)
        Given a metric id, retrieve all anomaly detection configurations applied to it.

        Code sample

         final String metricId = "0b836da8-10e6-46cd-8f4f-28262e113a62";
         PagedIterable<AnomalyDetectionConfiguration> configsIterable
             = metricsAdvisorAdminClient.listDetectionConfigs(metricId);
        
         for (AnomalyDetectionConfiguration detectionConfig : configsIterable) {
             System.out.printf("Detection config Id: %s%n", detectionConfig.getId());
             System.out.printf("Name: %s%n", detectionConfig.getName());
             System.out.printf("Description: %s%n", detectionConfig.getDescription());
             System.out.printf("MetricId: %s%n", detectionConfig.getMetricId());
         }
         
        Parameters:
        metricId - The metric id.
        Returns:
        The anomaly detection configurations.
        Throws:
        NullPointerException - thrown if the metricId is null.
        IllegalArgumentException - If metricId does not conform to the UUID format specification.
      • listDetectionConfigs

        public com.azure.core.http.rest.PagedIterable<AnomalyDetectionConfiguration> listDetectionConfigs​(String metricId,
                                                                                                          ListDetectionConfigsOptions options,
                                                                                                          com.azure.core.util.Context context)
        Given a metric id, retrieve all anomaly detection configurations applied to it.

        Code sample

         final String metricId = "0b836da8-10e6-46cd-8f4f-28262e113a62";
         PagedIterable<AnomalyDetectionConfiguration> configsIterable
             = metricsAdvisorAdminClient.listDetectionConfigs(metricId,
                 new ListDetectionConfigsOptions(), Context.NONE);
        
         Stream<PagedResponse<AnomalyDetectionConfiguration>> configByPageStream
             = configsIterable.streamByPage();
        
         configByPageStream.forEach(configPage -> {
             IterableStream<AnomalyDetectionConfiguration> pageElements = configPage.getElements();
             for (AnomalyDetectionConfiguration detectionConfig : pageElements) {
                 System.out.printf("Detection config Id: %s%n", detectionConfig.getId());
                 System.out.printf("Name: %s%n", detectionConfig.getName());
                 System.out.printf("Description: %s%n", detectionConfig.getDescription());
                 System.out.printf("MetricId: %s%n", detectionConfig.getMetricId());
             }
         });
         
        Parameters:
        metricId - The metric id.
        options - th e additional configurable options to specify when querying the result.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        The anomaly detection configurations.
        Throws:
        NullPointerException - thrown if the metricId is null.
        IllegalArgumentException - If metricId does not conform to the UUID format specification.
      • createHook

        public NotificationHook createHook​(NotificationHook notificationHook)
        Creates a notificationHook that receives anomaly incident alerts.

        Code sample

         NotificationHook emailNotificationHook = new EmailNotificationHook("email notificationHook")
             .setDescription("my email notificationHook")
             .setEmailsToAlert(new ArrayList<String>() {{
                     add("alertme@alertme.com");
                 }})
             .setExternalLink("https://adwiki.azurewebsites.net/articles/howto/alerts/create-hooks.html");
        
         NotificationHook notificationHook = metricsAdvisorAdminClient.createHook(emailNotificationHook);
         EmailNotificationHook createdEmailHook = (EmailNotificationHook) notificationHook;
         System.out.printf("NotificationHook Id: %s%n", createdEmailHook.getId());
         System.out.printf("NotificationHook Name: %s%n", createdEmailHook.getName());
         System.out.printf("NotificationHook Description: %s%n", createdEmailHook.getDescription());
         System.out.printf("NotificationHook External Link: %s%n", createdEmailHook.getExternalLink());
         System.out.printf("NotificationHook Emails: %s%n", String.join(",",
             createdEmailHook.getEmailsToAlert()));
         
        Parameters:
        notificationHook - The notificationHook.
        Returns:
        The created NotificationHook.
        Throws:
        NullPointerException - If notificationHook, notificationHook.name, notificationHook.endpoint (for web notificationHook) is null.
        IllegalArgumentException - If at least one email not present for email notificationHook.
      • createHookWithResponse

        public com.azure.core.http.rest.Response<NotificationHook> createHookWithResponse​(NotificationHook notificationHook,
                                                                                          com.azure.core.util.Context context)
        Creates a notificationHook that receives anomaly incident alerts.

        Code sample

         NotificationHook emailNotificationHook = new EmailNotificationHook("email hook")
             .setDescription("my email hook")
             .setEmailsToAlert(new ArrayList<String>() {{
                     add("alertme@alertme.com");
                 }})
             .setExternalLink("https://adwiki.azurewebsites.net/articles/howto/alerts/create-hooks.html");
        
         Response<NotificationHook> response
             = metricsAdvisorAdminClient.createHookWithResponse(emailNotificationHook, Context.NONE);
         System.out.printf("Response statusCode: %d%n", response.getStatusCode());
         EmailNotificationHook createdEmailHook = (EmailNotificationHook) response.getValue();
         System.out.printf("NotificationHook Id: %s%n", createdEmailHook.getId());
         System.out.printf("NotificationHook Name: %s%n", createdEmailHook.getName());
         System.out.printf("NotificationHook Description: %s%n", createdEmailHook.getDescription());
         System.out.printf("NotificationHook External Link: %s%n", createdEmailHook.getExternalLink());
         System.out.printf("NotificationHook Emails: %s%n", String.join(",",
             createdEmailHook.getEmailsToAlert()));
         
        Parameters:
        notificationHook - The notificationHook.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response containing the created NotificationHook.
        Throws:
        NullPointerException - If notificationHook, notificationHook.name, notificationHook.endpoint (for web notificationHook) is null.
        IllegalArgumentException - If at least one email not present for email notificationHook.
      • getHook

        public NotificationHook getHook​(String hookId)
        Get a hook by its id.

        Code sample

         final String hookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
         NotificationHook notificationHook = metricsAdvisorAdminClient.getHook(hookId);
         if (notificationHook instanceof EmailNotificationHook) {
             EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
             System.out.printf("NotificationHook Id: %s%n", emailHook.getId());
             System.out.printf("NotificationHook Name: %s%n", emailHook.getName());
             System.out.printf("NotificationHook Description: %s%n", emailHook.getDescription());
             System.out.printf("NotificationHook External Link: %s%n", emailHook.getExternalLink());
             System.out.printf("NotificationHook Emails: %s%n", String.join(",", emailHook.getEmailsToAlert()));
         } else if (notificationHook instanceof WebNotificationHook) {
             WebNotificationHook webHook = (WebNotificationHook) notificationHook;
             System.out.printf("NotificationHook Id: %s%n", webHook.getId());
             System.out.printf("NotificationHook Name: %s%n", webHook.getName());
             System.out.printf("NotificationHook Description: %s%n", webHook.getDescription());
             System.out.printf("NotificationHook External Link: %s%n", webHook.getExternalLink());
             System.out.printf("NotificationHook Endpoint: %s%n", webHook.getEndpoint());
             System.out.printf("NotificationHook Headers: %s%n", webHook.getHttpHeaders());
         }
         
        Parameters:
        hookId - The hook unique id.
        Returns:
        The NotificationHook for the provided id.
        Throws:
        IllegalArgumentException - If hookId does not conform to the UUID format specification.
        NullPointerException - thrown if the hookId is null.
      • getHookWithResponse

        public com.azure.core.http.rest.Response<NotificationHook> getHookWithResponse​(String hookId,
                                                                                       com.azure.core.util.Context context)
        Get a hook by its id.

        Code sample

         final String hookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
         Response<NotificationHook> response = metricsAdvisorAdminClient.getHookWithResponse(hookId, Context.NONE);
         System.out.printf("Response statusCode: %d%n", response.getStatusCode());
         NotificationHook notificationHook = response.getValue();
         if (notificationHook instanceof EmailNotificationHook) {
             EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
             System.out.printf("NotificationHook Id: %s%n", emailHook.getId());
             System.out.printf("NotificationHook Name: %s%n", emailHook.getName());
             System.out.printf("NotificationHook Description: %s%n", emailHook.getDescription());
             System.out.printf("NotificationHook External Link: %s%n", emailHook.getExternalLink());
             System.out.printf("NotificationHook Emails: %s%n", String.join(",", emailHook.getEmailsToAlert()));
         } else if (notificationHook instanceof WebNotificationHook) {
             WebNotificationHook webHook = (WebNotificationHook) notificationHook;
             System.out.printf("NotificationHook Id: %s%n", webHook.getId());
             System.out.printf("NotificationHook Name: %s%n", webHook.getName());
             System.out.printf("NotificationHook Description: %s%n", webHook.getDescription());
             System.out.printf("NotificationHook External Link: %s%n", webHook.getExternalLink());
             System.out.printf("NotificationHook Endpoint: %s%n", webHook.getEndpoint());
             System.out.printf("NotificationHook Headers: %s%n", webHook.getHttpHeaders());
         }
         
        Parameters:
        hookId - The hook unique id.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response containing the NotificationHook for the provided id.
        Throws:
        IllegalArgumentException - If hookId does not conform to the UUID format specification.
        NullPointerException - thrown if the hookId is null.
      • updateHook

        public NotificationHook updateHook​(NotificationHook notificationHook)
        Update an existing notificationHook.

        Code sample

         final String emailHookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
         NotificationHook notificationHook = metricsAdvisorAdminClient.getHook(emailHookId);
         EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
         List<String> emailsToUpdate = new ArrayList<>(emailHook.getEmailsToAlert());
         emailsToUpdate.remove("alertme@alertme.com");
         emailsToUpdate.add("alertme2@alertme.com");
         emailsToUpdate.add("alertme3@alertme.com");
         emailHook.setEmailsToAlert(emailsToUpdate);
         NotificationHook updatedNotificationHook = metricsAdvisorAdminClient.updateHook(emailHook);
         EmailNotificationHook updatedEmailHook = (EmailNotificationHook) updatedNotificationHook;
         System.out.printf("NotificationHook Id: %s%n", updatedEmailHook.getId());
         System.out.printf("NotificationHook Name: %s%n", updatedEmailHook.getName());
         System.out.printf("NotificationHook Description: %s%n", updatedEmailHook.getDescription());
         System.out.printf("NotificationHook External Link: %s%n", updatedEmailHook.getExternalLink());
         System.out.printf("NotificationHook Emails: %s%n", String.join(",",
             updatedEmailHook.getEmailsToAlert()));
         
        Parameters:
        notificationHook - The notificationHook to update.
        Returns:
        The updated NotificationHook.
        Throws:
        NullPointerException - If notificationHook.id is null.
      • updateHookWithResponse

        public com.azure.core.http.rest.Response<NotificationHook> updateHookWithResponse​(NotificationHook notificationHook,
                                                                                          com.azure.core.util.Context context)
        Update an existing notificationHook.

        Code sample

         final String emailHookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
         Response<NotificationHook> response
             = metricsAdvisorAdminClient.getHookWithResponse(emailHookId, Context.NONE);
         EmailNotificationHook emailHook = (EmailNotificationHook) response.getValue();
         List<String> emailsToUpdate = new ArrayList<>(emailHook.getEmailsToAlert());
         emailsToUpdate.remove("alertme@alertme.com");
         emailsToUpdate.add("alertme2@alertme.com");
         emailsToUpdate.add("alertme3@alertme.com");
         emailHook.setEmailsToAlert(emailsToUpdate);
         Response<NotificationHook> updateResponse
             = metricsAdvisorAdminClient.updateHookWithResponse(emailHook, Context.NONE);
         EmailNotificationHook updatedEmailHook = (EmailNotificationHook) updateResponse.getValue();
         System.out.printf("Email Hook Id: %s%n", updatedEmailHook.getId());
         System.out.printf("Email Hook Name: %s%n", updatedEmailHook.getName());
         System.out.printf("Email Hook Description: %s%n", updatedEmailHook.getDescription());
         System.out.printf("Email Hook External Link: %s%n", updatedEmailHook.getExternalLink());
         System.out.printf("Email Hook Emails: %s%n", String.join(",",
             updatedEmailHook.getEmailsToAlert()));
         
        Parameters:
        notificationHook - The notificationHook to update.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response containing the updated NotificationHook.
        Throws:
        NullPointerException - If notificationHook.id is null.
        IllegalArgumentException - If notificationHook.Id does not conform to the UUID format specification.
      • deleteHook

        public void deleteHook​(String hookId)
        Delete a hook.

        Code sample

         final String emailHookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
         metricsAdvisorAdminClient.deleteHook(emailHookId);
         
        Parameters:
        hookId - The hook unique id.
        Throws:
        NullPointerException - thrown if the hookId is null.
        IllegalArgumentException - If hookId does not conform to the UUID format specification.
      • deleteHookWithResponse

        public com.azure.core.http.rest.Response<Void> deleteHookWithResponse​(String hookId,
                                                                              com.azure.core.util.Context context)
        Delete a hook.

        Code sample

         final String emailHookId = "f00853f1-6627-447f-bacf-8dccf2e86fed";
         Response<Void> response
             = metricsAdvisorAdminClient.deleteHookWithResponse(emailHookId, Context.NONE);
         System.out.printf("Response status code: %d%n", response.getStatusCode());
         
        Parameters:
        hookId - The hook unique id.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response.
        Throws:
        NullPointerException - thrown if the hookId is null.
        IllegalArgumentException - If hookId does not conform to the UUID format specification.
      • listHooks

        public com.azure.core.http.rest.PagedIterable<NotificationHook> listHooks()
        List information of hooks on the metrics advisor account.

        Code sample

         PagedIterable<NotificationHook> hooks = metricsAdvisorAdminClient.listHooks();
         for (NotificationHook notificationHook : hooks) {
             if (notificationHook instanceof EmailNotificationHook) {
                 EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
                 System.out.printf("Email Hook Id: %s%n", emailHook.getId());
                 System.out.printf("Email Hook Name: %s%n", emailHook.getName());
                 System.out.printf("Email Hook Description: %s%n", emailHook.getDescription());
                 System.out.printf("Email Hook External Link: %s%n", emailHook.getExternalLink());
                 System.out.printf("Email Hook Emails: %s%n", String.join(",", emailHook.getEmailsToAlert()));
             } else if (notificationHook instanceof WebNotificationHook) {
                 WebNotificationHook webHook = (WebNotificationHook) notificationHook;
                 System.out.printf("Web Hook Id: %s%n", webHook.getId());
                 System.out.printf("Web Hook Name: %s%n", webHook.getName());
                 System.out.printf("Web Hook Description: %s%n", webHook.getDescription());
                 System.out.printf("Web Hook External Link: %s%n", webHook.getExternalLink());
                 System.out.printf("Web Hook Endpoint: %s%n", webHook.getEndpoint());
                 System.out.printf("Web Hook Headers: %s%n", webHook.getHttpHeaders());
             }
         }
         
        Returns:
        A PagedIterable containing information of all the NotificationHook in the account.
      • listHooks

        public com.azure.core.http.rest.PagedIterable<NotificationHook> listHooks​(ListHookOptions options,
                                                                                  com.azure.core.util.Context context)
        List information of hooks.

        Code sample

         ListHookOptions options = new ListHookOptions()
             .setSkip(100)
             .setMaxPageSize(20);
         PagedIterable<NotificationHook> hooks = metricsAdvisorAdminClient.listHooks(options, Context.NONE);
         Stream<PagedResponse<NotificationHook>> hooksPageStream = hooks.streamByPage();
         int[] pageCount = new int[1];
         hooksPageStream.forEach(hookPage -> {
             System.out.printf("Page: %d%n", pageCount[0]++);
             for (NotificationHook notificationHook : hookPage.getElements()) {
                 if (notificationHook instanceof EmailNotificationHook) {
                     EmailNotificationHook emailHook = (EmailNotificationHook) notificationHook;
                     System.out.printf("Email Hook Id: %s%n", emailHook.getId());
                     System.out.printf("Email Hook Name: %s%n", emailHook.getName());
                     System.out.printf("Email Hook Description: %s%n", emailHook.getDescription());
                     System.out.printf("Email Hook External Link: %s%n", emailHook.getExternalLink());
                     System.out.printf("Email Hook Emails: %s%n", String.join(",",
                         emailHook.getEmailsToAlert()));
                     System.out.printf("Email Hook Admins: %s%n", String.join(",", emailHook.getAdmins()));
                 } else if (notificationHook instanceof WebNotificationHook) {
                     WebNotificationHook webHook = (WebNotificationHook) notificationHook;
                     System.out.printf("Web Hook Id: %s%n", webHook.getId());
                     System.out.printf("Web Hook Name: %s%n", webHook.getName());
                     System.out.printf("Web Hook Description: %s%n", webHook.getDescription());
                     System.out.printf("Web Hook External Link: %s%n", webHook.getExternalLink());
                     System.out.printf("Web Hook Endpoint: %s%n", webHook.getEndpoint());
                     System.out.printf("Web Hook Headers: %s%n", webHook.getHttpHeaders());
                     System.out.printf("Web Hook Admins: %s%n", String.join(",", webHook.getAdmins()));
                 }
             }
         });
         
        Parameters:
        options - The additional parameters.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A PagedIterable containing information of the NotificationHook resources.
      • createAlertConfig

        public AnomalyAlertConfiguration createAlertConfig​(AnomalyAlertConfiguration alertConfiguration)
        Create a configuration to trigger alert when anomalies are detected.

        Code sample

         String detectionConfigurationId1 = "9ol48er30-6e6e-4391-b78f-b00dfee1e6f5";
         String detectionConfigurationId2 = "3e58er30-6e6e-4391-b78f-b00dfee1e6f5";
         String hookId1 = "5f48er30-6e6e-4391-b78f-b00dfee1e6f5";
         String hookId2 = "8i48er30-6e6e-4391-b78f-b00dfee1e6f5";
        
         final AnomalyAlertConfiguration anomalyAlertConfiguration
             = metricsAdvisorAdminClient.createAlertConfig(
                 new AnomalyAlertConfiguration("My AnomalyAlert config name")
                 .setDescription("alert config description")
                 .setMetricAlertConfigurations(Arrays.asList(
                     new MetricAlertConfiguration(detectionConfigurationId1,
                         MetricAnomalyAlertScope.forWholeSeries()),
                     new MetricAlertConfiguration(detectionConfigurationId2,
                         MetricAnomalyAlertScope.forWholeSeries())
                         .setAlertConditions(new MetricAnomalyAlertConditions()
                             .setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.HIGH,
                                 AnomalySeverity.HIGH)))))
                 .setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND)
                 .setHookIdsToAlert(Arrays.asList(hookId1, hookId2)));
        
         System.out.printf("DataPoint Anomaly alert configuration Id: %s%n",
             anomalyAlertConfiguration.getId());
         System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
             anomalyAlertConfiguration.getDescription());
         System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
             anomalyAlertConfiguration.getHookIdsToAlert());
         System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
             anomalyAlertConfiguration.getCrossMetricsOperator().toString());
         
        Parameters:
        alertConfiguration - The anomaly alerting configuration.
        Returns:
        The AnomalyAlertConfiguration that was created.
      • createAlertConfigWithResponse

        public com.azure.core.http.rest.Response<AnomalyAlertConfiguration> createAlertConfigWithResponse​(AnomalyAlertConfiguration alertConfiguration,
                                                                                                          com.azure.core.util.Context context)
        Create a configuration to trigger alert when anomalies are detected.

        Code sample

        
         String detectionConfigurationId1 = "9ol48er30-6e6e-4391-b78f-b00dfee1e6f5";
         String detectionConfigurationId2 = "3e58er30-6e6e-4391-b78f-b00dfee1e6f5";
         String hookId1 = "5f48er30-6e6e-4391-b78f-b00dfee1e6f5";
         String hookId2 = "8i48er30-6e6e-4391-b78f-b00dfee1e6f5";
        
         final Response<AnomalyAlertConfiguration> alertConfigurationResponse
             = metricsAdvisorAdminClient.createAlertConfigWithResponse(
                 new AnomalyAlertConfiguration("My AnomalyAlert config name")
                 .setDescription("alert config description")
                 .setMetricAlertConfigurations(Arrays.asList(
                     new MetricAlertConfiguration(detectionConfigurationId1,
                         MetricAnomalyAlertScope.forWholeSeries()),
                     new MetricAlertConfiguration(detectionConfigurationId2,
                         MetricAnomalyAlertScope.forWholeSeries())
                         .setAlertConditions(new MetricAnomalyAlertConditions()
                             .setSeverityRangeCondition(new SeverityCondition(AnomalySeverity.HIGH,
                                 AnomalySeverity.HIGH)))))
                 .setCrossMetricsOperator(MetricAlertConfigurationsOperator.AND)
                 .setHookIdsToAlert(Arrays.asList(hookId1, hookId2)), Context.NONE);
        
         System.out.printf("DataPoint Anomaly alert creation operation status: %s%n",
             alertConfigurationResponse.getStatusCode());
         final AnomalyAlertConfiguration anomalyAlertConfiguration = alertConfigurationResponse.getValue();
         System.out.printf("DataPoint Anomaly alert configuration Id: %s%n", anomalyAlertConfiguration.getId());
         System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
             anomalyAlertConfiguration.getDescription());
         System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
             anomalyAlertConfiguration.getHookIdsToAlert());
         System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
             anomalyAlertConfiguration.getCrossMetricsOperator().toString());
         
        Parameters:
        alertConfiguration - The anomaly alerting configuration.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response containing the created AnomalyAlertConfiguration.
      • getAlertConfig

        public AnomalyAlertConfiguration getAlertConfig​(String alertConfigurationId)
        Get the anomaly alert configuration identified by alertConfigurationId.

        Code sample

         String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
        
         AnomalyAlertConfiguration anomalyAlertConfiguration
             = metricsAdvisorAdminClient.getAlertConfig(alertConfigId);
         System.out.printf("DataPoint Anomaly alert configuration Id: %s%n",
             anomalyAlertConfiguration.getId());
         System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
             anomalyAlertConfiguration.getDescription());
         System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
             anomalyAlertConfiguration.getHookIdsToAlert());
         System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
             anomalyAlertConfiguration.getCrossMetricsOperator().toString());
         
        Parameters:
        alertConfigurationId - The anomaly alert configuration id.
        Returns:
        The AnomalyAlertConfiguration identified by the given id.
        Throws:
        NullPointerException - thrown if the alertConfigurationId is null.
        IllegalArgumentException - If alertConfigurationId does not conform to the UUID format specification.
      • getAlertConfigWithResponse

        public com.azure.core.http.rest.Response<AnomalyAlertConfiguration> getAlertConfigWithResponse​(String alertConfigurationId,
                                                                                                       com.azure.core.util.Context context)
        Get the anomaly alert configuration identified by alertConfigurationId.

        Code sample

         String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
        
         Response<AnomalyAlertConfiguration> alertConfigurationResponse
             = metricsAdvisorAdminClient.getAlertConfigWithResponse(alertConfigId, Context.NONE);
        
         System.out.printf("DataPoint Anomaly alert creation operation status: %s%n",
             alertConfigurationResponse.getStatusCode());
         final AnomalyAlertConfiguration anomalyAlertConfiguration = alertConfigurationResponse.getValue();
         System.out.printf("DataPoint Anomaly alert configuration Id: %s%n", anomalyAlertConfiguration.getId());
         System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
             anomalyAlertConfiguration.getDescription());
         System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
             anomalyAlertConfiguration.getHookIdsToAlert());
         System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
             anomalyAlertConfiguration.getCrossMetricsOperator().toString());
         
        Parameters:
        alertConfigurationId - The anomaly alert configuration id.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response containing the AnomalyAlertConfiguration identified by the given id.
        Throws:
        IllegalArgumentException - If alertConfigurationId does not conform to the UUID format specification.
      • updateAlertConfig

        public AnomalyAlertConfiguration updateAlertConfig​(AnomalyAlertConfiguration alertConfiguration)
        Update anomaly alert configuration.

        Code sample

        
         String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
         String additionalHookId = "2gh8er30-6e6e-4391-b78f-bpfdfee1e6f5";
        
         AnomalyAlertConfiguration existingAnomalyConfig
             = metricsAdvisorAdminClient.getAlertConfig(alertConfigId);
         List<String> hookIds = new ArrayList<>(existingAnomalyConfig.getHookIdsToAlert());
         hookIds.add(additionalHookId);
         final AnomalyAlertConfiguration updatAnomalyAlertConfiguration
             = metricsAdvisorAdminClient.updateAlertConfig(
             existingAnomalyConfig
                 .setHookIdsToAlert(hookIds)
                 .setDescription("updated to add more hook ids")
         );
        
         System.out.printf("Updated anomaly alert configuration Id: %s%n", updatAnomalyAlertConfiguration.getId());
         System.out.printf("Updated anomaly alert configuration description: %s%n",
             updatAnomalyAlertConfiguration.getDescription());
         System.out.printf("Updated anomaly alert configuration hook ids: %s%n",
             updatAnomalyAlertConfiguration.getHookIdsToAlert());
         
        Parameters:
        alertConfiguration - The anomaly alert configuration to update.
        Returns:
        The AnomalyAlertConfiguration that was updated.
        Throws:
        NullPointerException - thrown if alertConfiguration or alertConfiguration.metricAnomalyAlertConfigurations is null or empty.
        IllegalArgumentException - If alertConfigurationId does not conform to the UUID format specification.
      • updateAlertConfigWithResponse

        public com.azure.core.http.rest.Response<AnomalyAlertConfiguration> updateAlertConfigWithResponse​(AnomalyAlertConfiguration alertConfiguration,
                                                                                                          com.azure.core.util.Context context)
        Update anomaly alert configuration.

        Code sample

        
         String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
         String additionalHookId = "2gh8er30-6e6e-4391-b78f-bpfdfee1e6f5";
        
         AnomalyAlertConfiguration existingAnomalyConfig
             = metricsAdvisorAdminClient.getAlertConfig(alertConfigId);
         List<String> hookIds = new ArrayList<>(existingAnomalyConfig.getHookIdsToAlert());
         hookIds.add(additionalHookId);
         final Response<AnomalyAlertConfiguration> alertConfigurationResponse
             = metricsAdvisorAdminClient.updateAlertConfigWithResponse(
             existingAnomalyConfig
                 .setHookIdsToAlert(hookIds)
                 .setDescription("updated to add more hook ids"), Context.NONE);
        
         System.out.printf("Update anomaly alert operation status: %s%n", alertConfigurationResponse.getStatusCode());
         final AnomalyAlertConfiguration updatAnomalyAlertConfiguration = alertConfigurationResponse.getValue();
         System.out.printf("Updated anomaly alert configuration Id: %s%n", updatAnomalyAlertConfiguration.getId());
         System.out.printf("Updated anomaly alert configuration description: %s%n",
             updatAnomalyAlertConfiguration.getDescription());
         System.out.printf("Updated anomaly alert configuration hook ids: %sf%n",
             updatAnomalyAlertConfiguration.getHookIdsToAlert());
         
        Parameters:
        alertConfiguration - The anomaly alert configuration to update.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A Response containing the AnomalyAlertConfiguration that was updated.
        Throws:
        NullPointerException - thrown if alertConfiguration or alertConfiguration.metricAnomalyAlertConfigurations is null or empty.
        IllegalArgumentException - If alertConfigurationId does not conform to the UUID format specification.
      • deleteAlertConfig

        public void deleteAlertConfig​(String alertConfigurationId)
        Deletes the anomaly alert configuration identified by alertConfigurationId.

        Code sample

         String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
         metricsAdvisorAdminClient.deleteAlertConfig(alertConfigId);
         
        Parameters:
        alertConfigurationId - The anomaly alert configuration id.
        Throws:
        NullPointerException - thrown if the alertConfigurationId is null.
        IllegalArgumentException - If alertConfigurationId does not conform to the UUID format specification.
      • deleteAlertConfigWithResponse

        public com.azure.core.http.rest.Response<Void> deleteAlertConfigWithResponse​(String alertConfigurationId,
                                                                                     com.azure.core.util.Context context)
        Deletes the anomaly alert configuration identified by alertConfigurationId.

        Code sample

         String alertConfigId = "1p0f8er30-6e6e-4391-b78f-bpfdfee1e6f5";
         final Response<Void> response =
             metricsAdvisorAdminClient.deleteAlertConfigWithResponse(alertConfigId, Context.NONE);
        
         System.out.printf("DataPoint Anomaly alert config delete operation status : %s%n", response.getStatusCode());
         
        Parameters:
        alertConfigurationId - The anomaly alert configuration id.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A response containing status code and headers returned after the operation.
        Throws:
        NullPointerException - thrown if the alertConfigurationId is null.
        IllegalArgumentException - If alertConfigurationId does not conform to the UUID format specification.
      • listAlertConfigs

        public com.azure.core.http.rest.PagedIterable<AnomalyAlertConfiguration> listAlertConfigs​(String detectionConfigurationId,
                                                                                                  ListAnomalyAlertConfigsOptions options)
        Fetch the anomaly alert configurations associated with a detection configuration.

        Code sample

         String detectionConfigId = "3rt98er30-6e6e-4391-b78f-bpfdfee1e6f5";
         metricsAdvisorAdminClient.listAlertConfigs(detectionConfigId, new ListAnomalyAlertConfigsOptions())
             .forEach(anomalyAlertConfiguration -> {
                 System.out.printf("DataPoint Anomaly alert configuration Id: %s%n", anomalyAlertConfiguration.getId());
                 System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
                     anomalyAlertConfiguration.getDescription());
                 System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
                     anomalyAlertConfiguration.getHookIdsToAlert());
                 System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
                     anomalyAlertConfiguration.getCrossMetricsOperator().toString());
             });
         
        Parameters:
        detectionConfigurationId - The id of the detection configuration.
        options - th e additional configurable options to specify when querying the result.
        Returns:
        A PagedIterable containing information of all the anomaly alert configurations for the specified detection configuration.
        Throws:
        NullPointerException - thrown if the detectionConfigurationId is null.
        IllegalArgumentException - If detectionConfigurationId does not conform to the UUID format specification.
      • listAlertConfigs

        public com.azure.core.http.rest.PagedIterable<AnomalyAlertConfiguration> listAlertConfigs​(String detectionConfigurationId,
                                                                                                  ListAnomalyAlertConfigsOptions options,
                                                                                                  com.azure.core.util.Context context)
        Fetch the anomaly alert configurations associated with a detection configuration.

        Code sample

         String detectionConfigId = "3rt98er30-6e6e-4391-b78f-bpfdfee1e6f5";
         metricsAdvisorAdminClient.listAlertConfigs(detectionConfigId,
             new ListAnomalyAlertConfigsOptions(), Context.NONE)
             .forEach(anomalyAlertConfiguration -> {
                 System.out.printf("DataPoint Anomaly alert configuration Id: %s%n", anomalyAlertConfiguration.getId());
                 System.out.printf("DataPoint Anomaly alert configuration description: %s%n",
                     anomalyAlertConfiguration.getDescription());
                 System.out.printf("DataPoint Anomaly alert configuration hook ids: %s%n",
                     anomalyAlertConfiguration.getHookIdsToAlert());
                 System.out.printf("DataPoint Anomaly alert configuration cross metrics operator: %s%n",
                     anomalyAlertConfiguration.getCrossMetricsOperator().toString());
             });
         
        Parameters:
        detectionConfigurationId - The id of the detection configuration.
        options - th e additional configurable options to specify when querying the result.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A PagedIterable containing information of all the anomaly alert configurations for the specified detection configuration.
        Throws:
        NullPointerException - thrown if the detectionConfigurationId is null.
        IllegalArgumentException - If detectionConfigurationId does not conform to the UUID format specification.
      • createDataSourceCredential

        public DataSourceCredentialEntity createDataSourceCredential​(DataSourceCredentialEntity dataSourceCredential)
        Create a data source credential entity.

        Code sample

         DataSourceCredentialEntity datasourceCredential;
         final String name = "sample_name" + UUID.randomUUID();
         final String cId = "f45668b2-bffa-11eb-8529-0246ac130003";
         final String tId = "67890ded-5e07-4e52-b225-4ae8f905afb5";
         final String mockSecr = "890hy69-5e07-4e52-b225-4ae8f905afb5";
        
         datasourceCredential = new DataSourceServicePrincipalInKeyVault()
             .setName(name)
             .setKeyVaultForDataSourceSecrets("kv", cId, mockSecr)
             .setTenantId(tId)
             .setSecretNameForDataSourceClientId("DSClientID_1")
             .setSecretNameForDataSourceClientSecret("DSClientSer_1");
        
         DataSourceCredentialEntity credentialEntity =
             metricsAdvisorAdminClient.createDataSourceCredential(datasourceCredential);
         if (credentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
             DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
                 = (DataSourceServicePrincipalInKeyVault) credentialEntity;
             System.out
                 .printf("Actual credential entity key vault endpoint: %s%n",
                     actualCredentialSPInKV.getKeyVaultEndpoint());
             System.out.printf("Actual credential entity key vault client Id: %s%n",
                 actualCredentialSPInKV.getKeyVaultClientId());
             System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
                 actualCredentialSPInKV.getSecretNameForDataSourceClientId());
             System.out.printf("Actual credential entity key vault secret for data source: %s%n",
                 actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
         }
         
        Parameters:
        dataSourceCredential - The credential entity.
        Returns:
        The created DataSourceCredentialEntity.
        Throws:
        NullPointerException - thrown if the credentialEntity is null
      • createDataSourceCredentialWithResponse

        public com.azure.core.http.rest.Response<DataSourceCredentialEntity> createDataSourceCredentialWithResponse​(DataSourceCredentialEntity dataSourceCredential,
                                                                                                                    com.azure.core.util.Context context)
        Create a data source credential entity with REST response.

        Code sample

         DataSourceCredentialEntity datasourceCredential;
         final String name = "sample_name" + UUID.randomUUID();
         final String cId = "f45668b2-bffa-11eb-8529-0246ac130003";
         final String tId = "67890ded-5e07-4e52-b225-4ae8f905afb5";
         final String mockSecr = "890hy69-5e07-4e52-b225-4ae8f905afb5";
        
         datasourceCredential = new DataSourceServicePrincipalInKeyVault()
             .setName(name)
             .setKeyVaultForDataSourceSecrets("kv", cId, mockSecr)
             .setTenantId(tId)
             .setSecretNameForDataSourceClientId("DSClientID_1")
             .setSecretNameForDataSourceClientSecret("DSClientSer_1");
        
         Response<DataSourceCredentialEntity> credentialEntityWithResponse =
             metricsAdvisorAdminClient.createDataSourceCredentialWithResponse(datasourceCredential, Context.NONE);
        
         System.out.printf("Credential Entity creation operation status: %s%n",
             credentialEntityWithResponse.getStatusCode());
         if (credentialEntityWithResponse.getValue() instanceof DataSourceServicePrincipalInKeyVault) {
             DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
                 = (DataSourceServicePrincipalInKeyVault) credentialEntityWithResponse.getValue();
             System.out
                 .printf("Actual credential entity key vault endpoint: %s%n",
                     actualCredentialSPInKV.getKeyVaultEndpoint());
             System.out.printf("Actual credential entity key vault client Id: %s%n",
                 actualCredentialSPInKV.getKeyVaultClientId());
             System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
                 actualCredentialSPInKV.getSecretNameForDataSourceClientId());
             System.out.printf("Actual credential entity key vault secret for data source: %s%n",
                 actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
         }
         
        Parameters:
        dataSourceCredential - The credential entity.
        context - Additional context that is passed through the HTTP pipeline during the service call.
        Returns:
        A Response containing the created DataSourceCredentialEntity.
        Throws:
        NullPointerException - thrown if the credentialEntity is null
      • getDataSourceCredential

        public DataSourceCredentialEntity getDataSourceCredential​(String credentialId)
        Get a data source credential entity by its id.

        Code sample

         final String datasourceCredentialId = "f45668b2-bffa-11eb-8529-0246ac130003";
        
         DataSourceCredentialEntity credentialEntity =
             metricsAdvisorAdminClient.getDataSourceCredential(datasourceCredentialId);
         if (credentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
             DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
                 = (DataSourceServicePrincipalInKeyVault) credentialEntity;
             System.out
                 .printf("Actual credential entity key vault endpoint: %s%n",
                     actualCredentialSPInKV.getKeyVaultEndpoint());
             System.out.printf("Actual credential entity key vault client Id: %s%n",
                 actualCredentialSPInKV.getKeyVaultClientId());
             System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
                 actualCredentialSPInKV.getSecretNameForDataSourceClientId());
             System.out.printf("Actual credential entity key vault secret for data source: %s%n",
                 actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
         }
         
        Parameters:
        credentialId - The data source credential entity unique id.
        Returns:
        The data source credential entity for the provided id.
        Throws:
        IllegalArgumentException - If credentialId does not conform to the UUID format specification.
        NullPointerException - thrown if the credentialId is null.
      • getDataSourceCredentialWithResponse

        public com.azure.core.http.rest.Response<DataSourceCredentialEntity> getDataSourceCredentialWithResponse​(String credentialId,
                                                                                                                 com.azure.core.util.Context context)
        Get a data source credential entity by its id with REST response.

        Code sample

         final String datasourceCredentialId = "f45668b2-bffa-11eb-8529-0246ac130003";
        
         Response<DataSourceCredentialEntity> credentialEntityWithResponse =
             metricsAdvisorAdminClient.getDataSourceCredentialWithResponse(datasourceCredentialId, Context.NONE);
         System.out.printf("Credential Entity creation operation status: %s%n",
             credentialEntityWithResponse.getStatusCode());
         if (credentialEntityWithResponse.getValue() instanceof DataSourceServicePrincipalInKeyVault) {
             DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
                 = (DataSourceServicePrincipalInKeyVault) credentialEntityWithResponse.getValue();
             System.out
                 .printf("Actual credential entity key vault endpoint: %s%n",
                     actualCredentialSPInKV.getKeyVaultEndpoint());
             System.out.printf("Actual credential entity key vault client Id: %s%n",
                 actualCredentialSPInKV.getKeyVaultClientId());
             System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
                 actualCredentialSPInKV.getSecretNameForDataSourceClientId());
             System.out.printf("Actual credential entity key vault secret for data source: %s%n",
                 actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
         }
         
        Parameters:
        credentialId - The data source credential entity unique id.
        context - Additional context that is passed through the HTTP pipeline during the service call.
        Returns:
        The data feed for the provided id.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - thrown if the dataFeedId is null.
      • updateDataSourceCredential

        public DataSourceCredentialEntity updateDataSourceCredential​(DataSourceCredentialEntity dataSourceCredential)
        Update a data source credential entity.

        Code sample

         final String datasourceCredentialId = "f45668b2-bffa-11eb-8529-0246ac130003";
         DataSourceCredentialEntity existingDatasourceCredential =
             metricsAdvisorAdminClient.getDataSourceCredential(datasourceCredentialId);
         DataSourceServicePrincipalInKeyVault actualCredentialSPInKV = null;
         if (existingDatasourceCredential instanceof DataSourceServicePrincipalInKeyVault) {
             actualCredentialSPInKV  = (DataSourceServicePrincipalInKeyVault) existingDatasourceCredential;
         }
        
         DataSourceCredentialEntity credentialEntity =
             metricsAdvisorAdminClient.updateDataSourceCredential(
                 actualCredentialSPInKV.setDescription("set updated description"));
        
         if (credentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
             DataSourceServicePrincipalInKeyVault updatedCredentialSPInKV
                 = (DataSourceServicePrincipalInKeyVault) credentialEntity;
             System.out.printf("Actual credential entity key vault endpoint: %s%n",
                 updatedCredentialSPInKV.getKeyVaultEndpoint());
             System.out.printf("Actual credential entity key vault updated description: %s%n",
                 updatedCredentialSPInKV.getDescription());
         }
         
        Parameters:
        dataSourceCredential - The credential entity.
        Returns:
        The updated DataSourceCredentialEntity.
        Throws:
        NullPointerException - thrown if the credentialEntity is null
      • updateDataSourceCredentialWithResponse

        public com.azure.core.http.rest.Response<DataSourceCredentialEntity> updateDataSourceCredentialWithResponse​(DataSourceCredentialEntity dataSourceCredential,
                                                                                                                    com.azure.core.util.Context context)
        Update a data source credential entity.

        Code sample

         final String datasourceCredentialId = "f45668b2-bffa-11eb-8529-0246ac130003";
         DataSourceCredentialEntity existingDatasourceCredential =
             metricsAdvisorAdminClient.getDataSourceCredential(datasourceCredentialId);
         DataSourceServicePrincipalInKeyVault actualCredentialSPInKV = null;
         if (existingDatasourceCredential instanceof DataSourceServicePrincipalInKeyVault) {
             actualCredentialSPInKV  = (DataSourceServicePrincipalInKeyVault) existingDatasourceCredential;
         }
         Response<DataSourceCredentialEntity> credentialEntityWithResponse =
             metricsAdvisorAdminClient.updateDataSourceCredentialWithResponse(
                 actualCredentialSPInKV.setDescription("set updated description"), Context.NONE);
        
         System.out.printf("Credential Entity creation operation status: %s%n",
             credentialEntityWithResponse.getStatusCode());
         if (credentialEntityWithResponse.getValue() instanceof DataSourceServicePrincipalInKeyVault) {
             DataSourceServicePrincipalInKeyVault updatedCredentialSPInKV
                 = (DataSourceServicePrincipalInKeyVault) credentialEntityWithResponse.getValue();
             System.out.printf("Actual credential entity key vault endpoint: %s%n",
                 updatedCredentialSPInKV.getKeyVaultEndpoint());
             System.out.printf("Actual credential entity key vault updated description: %s%n",
                 updatedCredentialSPInKV.getDescription());
         }
         
        Parameters:
        dataSourceCredential - The credential entity.
        context - Additional context that is passed through the HTTP pipeline during the service call.
        Returns:
        A Response containing the updated DataSourceCredentialEntity.
        Throws:
        NullPointerException - thrown if the credentialEntity is null
      • deleteDataSourceCredential

        public void deleteDataSourceCredential​(String credentialId)
        Delete a data source credential entity.

        Code sample

         final String datasourceCredentialId = "t00853f1-9080-447f-bacf-8dccf2e86f";
         metricsAdvisorAdminClient.deleteDataFeed(datasourceCredentialId);
         
        Parameters:
        credentialId - The data source credential entity unique id.
        Throws:
        IllegalArgumentException - If credentialId does not conform to the UUID format specification.
        NullPointerException - thrown if the credentialId is null.
      • deleteDataSourceCredentialWithResponse

        public com.azure.core.http.rest.Response<Void> deleteDataSourceCredentialWithResponse​(String credentialId,
                                                                                              com.azure.core.util.Context context)
        Delete a data source credential entity with REST response.

        Code sample

         final String datasourceCredentialId = "eh0854f1-8927-447f-bacf-8dccf2e86fwe";
         Response<Void> response =
             metricsAdvisorAdminClient.deleteDataSourceCredentialWithResponse(datasourceCredentialId, Context.NONE);
         System.out.printf("Datasource credential delete operation status : %s%n", response.getStatusCode());
         
        Parameters:
        credentialId - The data source credential entity unique id.
        context - Additional context that is passed through the HTTP pipeline during the service call.
        Returns:
        a REST Response.
        Throws:
        IllegalArgumentException - If dataFeedId does not conform to the UUID format specification.
        NullPointerException - thrown if the dataFeedId is null.
      • listDataSourceCredentials

        public com.azure.core.http.rest.PagedIterable<DataSourceCredentialEntity> listDataSourceCredentials()
        List information of all data source credential entities on the metrics advisor account.

        Code sample

         metricsAdvisorAdminClient.listDataSourceCredentials()
             .forEach(datasourceCredentialEntity -> {
                 if (datasourceCredentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
                     DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
                         = (DataSourceServicePrincipalInKeyVault) datasourceCredentialEntity;
                     System.out
                         .printf("Actual credential entity key vault endpoint: %s%n",
                             actualCredentialSPInKV.getKeyVaultEndpoint());
                     System.out.printf("Actual credential entity key vault client Id: %s%n",
                         actualCredentialSPInKV.getKeyVaultClientId());
                     System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
                         actualCredentialSPInKV.getSecretNameForDataSourceClientId());
                     System.out.printf("Actual credential entity key vault secret for data source: %s%n",
                         actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
                 }
             });
         
        Returns:
        A PagedIterable containing information of all the DataSourceCredentialEntity in the account.
      • listDataSourceCredentials

        public com.azure.core.http.rest.PagedIterable<DataSourceCredentialEntity> listDataSourceCredentials​(ListCredentialEntityOptions options,
                                                                                                            com.azure.core.util.Context context)
        List information of all data source credential entities on the metrics advisor account.

        Code sample

         metricsAdvisorAdminClient.listDataSourceCredentials(
                 new ListCredentialEntityOptions()
                     .setMaxPageSize(3),
                 Context.NONE)
             .forEach(datasourceCredentialEntity -> {
                 if (datasourceCredentialEntity instanceof DataSourceServicePrincipalInKeyVault) {
                     DataSourceServicePrincipalInKeyVault actualCredentialSPInKV
                         = (DataSourceServicePrincipalInKeyVault) datasourceCredentialEntity;
                     System.out
                         .printf("Actual credential entity key vault endpoint: %s%n",
                             actualCredentialSPInKV.getKeyVaultEndpoint());
                     System.out.printf("Actual credential entity key vault client Id: %s%n",
                         actualCredentialSPInKV.getKeyVaultClientId());
                     System.out.printf("Actual credential entity key vault secret name for data source: %s%n",
                         actualCredentialSPInKV.getSecretNameForDataSourceClientId());
                     System.out.printf("Actual credential entity key vault secret for data source: %s%n",
                         actualCredentialSPInKV.getSecretNameForDataSourceClientSecret());
                 }
             });
         
        Parameters:
        options - The configurable options to pass for filtering the output result.
        context - Additional context that is passed through the Http pipeline during the service call.
        Returns:
        A PagedIterable containing information of all the DataSourceCredentialEntity in the account.