diff --git a/sdk/metricsadvisor/ai-metrics-advisor/review/ai-metrics-advisor.api.md b/sdk/metricsadvisor/ai-metrics-advisor/review/ai-metrics-advisor.api.md index 0168a72d9191..e3b31016f665 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/review/ai-metrics-advisor.api.md +++ b/sdk/metricsadvisor/ai-metrics-advisor/review/ai-metrics-advisor.api.md @@ -211,6 +211,9 @@ export interface DataFeed { // @public export type DataFeedAccessMode = "Private" | "Public"; +// @public +export type DataFeedDescriptor = Omit; + // @public export type DataFeedDetailStatus = "Active" | "Paused"; @@ -803,7 +806,7 @@ export type MetricPeriodFeedback = { export class MetricsAdvisorAdministrationClient { constructor(endpointUrl: string, credential: MetricsAdvisorKeyCredential, options?: MetricsAdvisorAdministrationClientOptions); createAlertConfig(config: Omit, options?: OperationOptions): Promise; - createDataFeed(feed: Omit, operationOptions?: OperationOptions): Promise; + createDataFeed(feed: DataFeedDescriptor, operationOptions?: OperationOptions): Promise; createDetectionConfig(config: Omit, options?: OperationOptions): Promise; createHook(hookInfo: EmailNotificationHook | WebNotificationHook, options?: OperationOptions): Promise; deleteAlertConfig(id: string, options?: OperationOptions): Promise; diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/javascript/quickstart.js b/sdk/metricsadvisor/ai-metrics-advisor/samples/javascript/quickstart.js index 1d022a3fce8e..92f9d574ae1d 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/javascript/quickstart.js +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/javascript/quickstart.js @@ -218,12 +218,7 @@ async function queryAlerts(client, alertConfigId, startTime, endTime) { // This shows how to use `for-await-of` syntax to list alerts console.log(" using for-await-of syntax"); let alerts = []; - for await (const alert of client.listAlerts( - alertConfigId, - startTime, - endTime, - "AnomalyTime" - )) { + for await (const alert of client.listAlerts(alertConfigId, startTime, endTime, "AnomalyTime")) { alerts.push(alert); console.log(" Alert"); console.log(` id: ${alert.id}`); diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/alertingConfig.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/alertingConfig.ts index d324aad16871..a18b32d5f4c4 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/alertingConfig.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/alertingConfig.ts @@ -11,7 +11,6 @@ dotenv.config(); import { MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient, - MetricAlertConfiguration, AnomalyAlertConfiguration } from "@azure/ai-metrics-advisor"; @@ -51,7 +50,7 @@ async function createAlertConfig( detectionConfigId: string ) { console.log("Creating a new alerting configuration..."); - const alertConfig = { + const alertConfig: Omit = { name: "js alerting config name " + new Date().getTime().toString(), crossMetricsOperator: "AND", metricAlertConfigurations: [ @@ -100,7 +99,10 @@ async function updateAlertConfig( detectionConfigurationId: detectionConfigId, alertScope: { scopeType: "Dimension", - dimensionAnomalyScope: { city: "Kolkata", category: "Shoes Handbags & Sunglasses" } + dimensionAnomalyScope: { + city: "Kolkata", + category: "Shoes Handbags & Sunglasses" + } } } ] diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/dataFeed.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/dataFeed.ts index c6192fe65033..279c81e10754 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/dataFeed.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/dataFeed.ts @@ -10,15 +10,9 @@ dotenv.config(); import { MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient, - DataFeedSchema, - DataFeedMetric, - DataFeedDimension, - DataFeedIngestionSettings, - DataFeedGranularity, - DataFeedSource, - DataFeedOptions, GetDataFeedResponse, - DataFeedPatch + DataFeedPatch, + DataFeedDescriptor } from "@azure/ai-metrics-advisor"; export async function main() { @@ -77,7 +71,7 @@ async function createDataFeed( client: MetricsAdvisorAdministrationClient ): Promise { console.log("Creating Datafeed..."); - const feed = { + const feed: DataFeedDescriptor = { name: "test-datafeed-" + new Date().getTime().toString(), source: { dataSourceType: "AzureBlob", diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/quickstart.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/quickstart.ts index 64291a2f7229..cb5ce836d011 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/quickstart.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/quickstart.ts @@ -14,7 +14,10 @@ import { AnomalyAlert, GetDataFeedResponse, MetricsAdvisorClient, - WebNotificationHook + WebNotificationHook, + DataFeedDescriptor, + AnomalyAlertConfiguration, + AnomalyDetectionConfiguration } from "@azure/ai-metrics-advisor"; export async function main() { @@ -87,7 +90,7 @@ async function createDataFeed( sqlServerQuery: string ): Promise { console.log("Creating Datafeed..."); - const dataFeed = { + const dataFeed: DataFeedDescriptor = { name: "test_datafeed_" + new Date().getTime().toString(), source: { dataSourceType: "SqlServer", @@ -165,7 +168,7 @@ async function configureAnomalyDetectionConfiguration( metricId: string ) { console.log(`Creating an anomaly detection configuration on metric '${metricId}'...`); - const anomalyConfig = { + const anomalyConfig: Omit = { name: "test_detection_configuration" + new Date().getTime().toString(), metricId, wholeSeriesDetectionCondition: { @@ -207,7 +210,7 @@ async function configureAlertConfiguration( hookIds: string[] ) { console.log("Creating a new alerting configuration..."); - const anomalyAlert = { + const anomalyAlert: Omit = { name: "test_alert_config_" + new Date().getTime().toString(), crossMetricsOperator: "AND", metricAlertConfigurations: [ @@ -245,12 +248,7 @@ async function queryAlerts( // This shows how to use `for-await-of` syntax to list alerts console.log(" using for-await-of syntax"); let alerts: AnomalyAlert[] = []; - for await (const alert of client.listAlerts( - alertConfigId, - startTime, - endTime, - "AnomalyTime" - )) { + for await (const alert of client.listAlerts(alertConfigId, startTime, endTime, "AnomalyTime")) { alerts.push(alert); console.log(" Alert"); console.log(` id: ${alert.id}`); diff --git a/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorAdministrationClient.ts b/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorAdministrationClient.ts index fff289d7db00..db901bbdfcda 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorAdministrationClient.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorAdministrationClient.ts @@ -111,6 +111,14 @@ export type ListDataFeedsOptions = { }; } & OperationOptions; +/** + * describes the input to Create Data Feed operation + */ +export type DataFeedDescriptor = Omit< + DataFeed, + "id" | "metricIds" | "isAdmin" | "status" | "creator" | "createdTime" +>; + /** * Options for creating data feed */ @@ -172,7 +180,7 @@ export class MetricsAdvisorAdministrationClient { */ public async createDataFeed( - feed: Omit, + feed: DataFeedDescriptor, operationOptions: OperationOptions = {} ): Promise { const { span, updatedOptions: finalOptions } = createSpan(