From 5b70c19efa0d78c8b4ee2ef598f9bb0b26783759 Mon Sep 17 00:00:00 2001 From: Azure SDK for Python bot Date: Thu, 27 Sep 2018 07:00:49 +0000 Subject: [PATCH 1/2] Generated from 09c5415be341f2a6816dafb7a504818a3c536b7e Multi Resource Alert changes --- .../monitorManagement/lib/models/index.d.ts | 52 +++++++++- .../monitorManagement/lib/models/index.js | 5 + ...tMultipleResourceMultipleMetricCriteria.js | 96 +++++++++++++++++++ .../lib/models/metricAlertResource.js | 20 ++++ .../lib/models/metricAlertResourcePatch.js | 20 ++++ ...ertSingleResourceMultipleMetricCriteria.js | 5 + .../lib/models/metricCriteria.js | 21 +++- .../lib/models/metricDimension.js | 3 +- .../lib/models/multiMetricCriteria.js | 70 ++++++++++++++ .../lib/operations/index.d.ts | 32 +++++++ .../lib/operations/metricAlerts.js | 48 ++++++++++ 11 files changed, 367 insertions(+), 5 deletions(-) create mode 100644 lib/services/monitorManagement/lib/models/metricAlertMultipleResourceMultipleMetricCriteria.js create mode 100644 lib/services/monitorManagement/lib/models/multiMetricCriteria.js diff --git a/lib/services/monitorManagement/lib/models/index.d.ts b/lib/services/monitorManagement/lib/models/index.d.ts index b77dd1d7aa..c9f737562f 100644 --- a/lib/services/monitorManagement/lib/models/index.d.ts +++ b/lib/services/monitorManagement/lib/models/index.d.ts @@ -2033,6 +2033,12 @@ export interface MetricAlertCriteria { * @member {moment.duration} windowSize the period of time (in ISO 8601 * duration format) that is used to monitor alert activity based on the * threshold. + * @member {string} [targetResourceType] the resource type of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * @member {string} [targetResourceRegion] the region of the target resource(s) + * on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. * @member {object} criteria defines the specific alert criteria information. * @member {string} [criteria.odatatype] Polymorphic Discriminator * @member {boolean} [autoMitigate] the flag that indicates whether the alert @@ -2049,6 +2055,8 @@ export interface MetricAlertResource extends Resource { scopes?: string[]; evaluationFrequency: moment.Duration; windowSize: moment.Duration; + targetResourceType?: string; + targetResourceRegion?: string; criteria: MetricAlertCriteria; autoMitigate?: boolean; actions?: MetricAlertAction[]; @@ -2074,6 +2082,12 @@ export interface MetricAlertResource extends Resource { * @member {moment.duration} windowSize the period of time (in ISO 8601 * duration format) that is used to monitor alert activity based on the * threshold. + * @member {string} [targetResourceType] the resource type of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * @member {string} [targetResourceRegion] the region of the target resource(s) + * on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. * @member {object} criteria defines the specific alert criteria information. * @member {string} [criteria.odatatype] Polymorphic Discriminator * @member {boolean} [autoMitigate] the flag that indicates whether the alert @@ -2091,6 +2105,8 @@ export interface MetricAlertResourcePatch { scopes?: string[]; evaluationFrequency: moment.Duration; windowSize: moment.Duration; + targetResourceType?: string; + targetResourceRegion?: string; criteria: MetricAlertCriteria; autoMitigate?: boolean; actions?: MetricAlertAction[]; @@ -2156,7 +2172,8 @@ export interface MetricAlertStatusCollection { * Specifies a metric dimension. * * @member {string} name Name of the dimension. - * @member {string} operator the dimension operator. + * @member {string} operator the dimension operator. Only 'Include' and + * 'Exclude' are supported * @member {array} values list of dimension values. */ export interface MetricDimension { @@ -2165,6 +2182,23 @@ export interface MetricDimension { values: string[]; } +/** + * @class + * Initializes a new instance of the MultiMetricCriteria class. + * @constructor + * The types of conditions for a multi resource alert + * + * @member {string} criterionType Polymorphic Discriminator + */ +export interface MultiMetricCriteria { + criterionType: string; + /** + * @property Describes unknown properties. The value of an unknown property + * can be of "any" type. + */ + [property: string]: any; +} + /** * @class * Initializes a new instance of the MetricCriteria class. @@ -2180,7 +2214,7 @@ export interface MetricDimension { * alert. * @member {array} [dimensions] List of dimension conditions. */ -export interface MetricCriteria { +export interface MetricCriteria extends MultiMetricCriteria { name: string; metricName: string; metricNamespace?: string; @@ -2204,6 +2238,20 @@ export interface MetricAlertSingleResourceMultipleMetricCriteria extends MetricA allOf?: MetricCriteria[]; } +/** + * @class + * Initializes a new instance of the MetricAlertMultipleResourceMultipleMetricCriteria class. + * @constructor + * Speficies the metric alert criteria for multiple resource that has multiple + * metric criteria. + * + * @member {array} [allOf] the list of multiple metric criteria for this 'all + * of' operation. + */ +export interface MetricAlertMultipleResourceMultipleMetricCriteria extends MetricAlertCriteria { + allOf?: MultiMetricCriteria[]; +} + /** * @class * Initializes a new instance of the Source class. diff --git a/lib/services/monitorManagement/lib/models/index.js b/lib/services/monitorManagement/lib/models/index.js index 542841f1c7..57c01cd971 100644 --- a/lib/services/monitorManagement/lib/models/index.js +++ b/lib/services/monitorManagement/lib/models/index.js @@ -103,8 +103,10 @@ exports.MetricAlertStatusProperties = require('./metricAlertStatusProperties'); exports.MetricAlertStatus = require('./metricAlertStatus'); exports.MetricAlertStatusCollection = require('./metricAlertStatusCollection'); exports.MetricDimension = require('./metricDimension'); +exports.MultiMetricCriteria = require('./multiMetricCriteria'); exports.MetricCriteria = require('./metricCriteria'); exports.MetricAlertSingleResourceMultipleMetricCriteria = require('./metricAlertSingleResourceMultipleMetricCriteria'); +exports.MetricAlertMultipleResourceMultipleMetricCriteria = require('./metricAlertMultipleResourceMultipleMetricCriteria'); exports.Source = require('./source'); exports.Schedule = require('./schedule'); exports.Action = require('./action'); @@ -140,7 +142,10 @@ exports.discriminators = { 'RuleAction.Microsoft.Azure.Management.Insights.Models.RuleEmailAction' : exports.RuleEmailAction, 'RuleAction.Microsoft.Azure.Management.Insights.Models.RuleWebhookAction' : exports.RuleWebhookAction, 'MetricAlertCriteria' : exports.MetricAlertCriteria, + 'MultiMetricCriteria.StaticThresholdCriterion' : exports.MetricCriteria, 'MetricAlertCriteria.Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria' : exports.MetricAlertSingleResourceMultipleMetricCriteria, + 'MultiMetricCriteria' : exports.MultiMetricCriteria, + 'MetricAlertCriteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria' : exports.MetricAlertMultipleResourceMultipleMetricCriteria, 'Action' : exports.Action, 'Action.Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.AlertingAction' : exports.AlertingAction }; diff --git a/lib/services/monitorManagement/lib/models/metricAlertMultipleResourceMultipleMetricCriteria.js b/lib/services/monitorManagement/lib/models/metricAlertMultipleResourceMultipleMetricCriteria.js new file mode 100644 index 0000000000..39bd70583a --- /dev/null +++ b/lib/services/monitorManagement/lib/models/metricAlertMultipleResourceMultipleMetricCriteria.js @@ -0,0 +1,96 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Speficies the metric alert criteria for multiple resource that has multiple + * metric criteria. + * + * @extends models['MetricAlertCriteria'] + */ +class MetricAlertMultipleResourceMultipleMetricCriteria extends models['MetricAlertCriteria'] { + /** + * Create a MetricAlertMultipleResourceMultipleMetricCriteria. + * @member {array} [allOf] the list of multiple metric criteria for this 'all + * of' operation. + */ + constructor() { + super(); + } + + /** + * Defines the metadata of MetricAlertMultipleResourceMultipleMetricCriteria + * + * @returns {object} metadata of MetricAlertMultipleResourceMultipleMetricCriteria + * + */ + mapper() { + return { + required: false, + serializedName: 'Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: 'odata.type', + clientName: 'odatatype' + }, + uberParent: 'MetricAlertCriteria', + className: 'MetricAlertMultipleResourceMultipleMetricCriteria', + modelProperties: { + odatatype: { + required: true, + serializedName: 'odata\\.type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + allOf: { + required: false, + serializedName: 'allOf', + type: { + name: 'Sequence', + element: { + required: false, + serializedName: 'MultiMetricCriteriaElementType', + type: { + name: 'Composite', + additionalProperties: { + type: { + name: 'Dictionary', + value: { + required: false, + serializedName: 'ObjectElementType', + type: { + name: 'Object' + } + } + } + }, + polymorphicDiscriminator: { + serializedName: 'criterionType', + clientName: 'criterionType' + }, + uberParent: 'MultiMetricCriteria', + className: 'MultiMetricCriteria' + } + } + } + } + } + } + }; + } +} + +module.exports = MetricAlertMultipleResourceMultipleMetricCriteria; diff --git a/lib/services/monitorManagement/lib/models/metricAlertResource.js b/lib/services/monitorManagement/lib/models/metricAlertResource.js index 867cdcff89..60515bae62 100644 --- a/lib/services/monitorManagement/lib/models/metricAlertResource.js +++ b/lib/services/monitorManagement/lib/models/metricAlertResource.js @@ -32,6 +32,12 @@ class MetricAlertResource extends models['Resource'] { * @member {moment.duration} windowSize the period of time (in ISO 8601 * duration format) that is used to monitor alert activity based on the * threshold. + * @member {string} [targetResourceType] the resource type of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * @member {string} [targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. * @member {object} criteria defines the specific alert criteria information. * @member {string} [criteria.odatatype] Polymorphic Discriminator * @member {boolean} [autoMitigate] the flag that indicates whether the alert @@ -153,6 +159,20 @@ class MetricAlertResource extends models['Resource'] { name: 'TimeSpan' } }, + targetResourceType: { + required: false, + serializedName: 'properties.targetResourceType', + type: { + name: 'String' + } + }, + targetResourceRegion: { + required: false, + serializedName: 'properties.targetResourceRegion', + type: { + name: 'String' + } + }, criteria: { required: true, serializedName: 'properties.criteria', diff --git a/lib/services/monitorManagement/lib/models/metricAlertResourcePatch.js b/lib/services/monitorManagement/lib/models/metricAlertResourcePatch.js index aac4cc1abd..d8742ae18d 100644 --- a/lib/services/monitorManagement/lib/models/metricAlertResourcePatch.js +++ b/lib/services/monitorManagement/lib/models/metricAlertResourcePatch.js @@ -30,6 +30,12 @@ class MetricAlertResourcePatch { * @member {moment.duration} windowSize the period of time (in ISO 8601 * duration format) that is used to monitor alert activity based on the * threshold. + * @member {string} [targetResourceType] the resource type of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * @member {string} [targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. * @member {object} criteria defines the specific alert criteria information. * @member {string} [criteria.odatatype] Polymorphic Discriminator * @member {boolean} [autoMitigate] the flag that indicates whether the alert @@ -119,6 +125,20 @@ class MetricAlertResourcePatch { name: 'TimeSpan' } }, + targetResourceType: { + required: false, + serializedName: 'properties.targetResourceType', + type: { + name: 'String' + } + }, + targetResourceRegion: { + required: false, + serializedName: 'properties.targetResourceRegion', + type: { + name: 'String' + } + }, criteria: { required: true, serializedName: 'properties.criteria', diff --git a/lib/services/monitorManagement/lib/models/metricAlertSingleResourceMultipleMetricCriteria.js b/lib/services/monitorManagement/lib/models/metricAlertSingleResourceMultipleMetricCriteria.js index 99a72bf055..df17b56e25 100644 --- a/lib/services/monitorManagement/lib/models/metricAlertSingleResourceMultipleMetricCriteria.js +++ b/lib/services/monitorManagement/lib/models/metricAlertSingleResourceMultipleMetricCriteria.js @@ -65,6 +65,11 @@ class MetricAlertSingleResourceMultipleMetricCriteria extends models['MetricAler serializedName: 'MetricCriteriaElementType', type: { name: 'Composite', + polymorphicDiscriminator: { + serializedName: 'criterionType', + clientName: 'criterionType' + }, + uberParent: 'MultiMetricCriteria', className: 'MetricCriteria' } } diff --git a/lib/services/monitorManagement/lib/models/metricCriteria.js b/lib/services/monitorManagement/lib/models/metricCriteria.js index b94e6ef1bd..603220b2fe 100644 --- a/lib/services/monitorManagement/lib/models/metricCriteria.js +++ b/lib/services/monitorManagement/lib/models/metricCriteria.js @@ -10,11 +10,14 @@ 'use strict'; +const models = require('./index'); + /** * Criterion to filter metrics. * + * @extends models['MultiMetricCriteria'] */ -class MetricCriteria { +class MetricCriteria extends models['MultiMetricCriteria'] { /** * Create a MetricCriteria. * @member {string} name Name of the criteria. @@ -27,6 +30,7 @@ class MetricCriteria { * @member {array} [dimensions] List of dimension conditions. */ constructor() { + super(); } /** @@ -38,11 +42,24 @@ class MetricCriteria { mapper() { return { required: false, - serializedName: 'MetricCriteria', + serializedName: 'StaticThresholdCriterion', type: { name: 'Composite', + polymorphicDiscriminator: { + serializedName: 'criterionType', + clientName: 'criterionType' + }, + uberParent: 'MultiMetricCriteria', className: 'MetricCriteria', modelProperties: { + criterionType: { + required: true, + serializedName: 'criterionType', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, name: { required: true, serializedName: 'name', diff --git a/lib/services/monitorManagement/lib/models/metricDimension.js b/lib/services/monitorManagement/lib/models/metricDimension.js index 70b761f9e4..baff5d604d 100644 --- a/lib/services/monitorManagement/lib/models/metricDimension.js +++ b/lib/services/monitorManagement/lib/models/metricDimension.js @@ -18,7 +18,8 @@ class MetricDimension { /** * Create a MetricDimension. * @member {string} name Name of the dimension. - * @member {string} operator the dimension operator. + * @member {string} operator the dimension operator. Only 'Include' and + * 'Exclude' are supported * @member {array} values list of dimension values. */ constructor() { diff --git a/lib/services/monitorManagement/lib/models/multiMetricCriteria.js b/lib/services/monitorManagement/lib/models/multiMetricCriteria.js new file mode 100644 index 0000000000..f07c53684e --- /dev/null +++ b/lib/services/monitorManagement/lib/models/multiMetricCriteria.js @@ -0,0 +1,70 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +/** + * The types of conditions for a multi resource alert + * + */ +class MultiMetricCriteria { + /** + * Create a MultiMetricCriteria. + * @member {string} criterionType Polymorphic Discriminator + */ + constructor() { + } + + /** + * Defines the metadata of MultiMetricCriteria + * + * @returns {object} metadata of MultiMetricCriteria + * + */ + mapper() { + return { + required: false, + serializedName: 'MultiMetricCriteria', + type: { + name: 'Composite', + additionalProperties: { + type: { + name: 'Dictionary', + value: { + required: false, + serializedName: 'ObjectElementType', + type: { + name: 'Object' + } + } + } + }, + polymorphicDiscriminator: { + serializedName: 'criterionType', + clientName: 'criterionType' + }, + uberParent: 'MultiMetricCriteria', + className: 'MultiMetricCriteria', + modelProperties: { + criterionType: { + required: true, + serializedName: 'criterionType', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + } + } + } + }; + } +} + +module.exports = MultiMetricCriteria; diff --git a/lib/services/monitorManagement/lib/operations/index.d.ts b/lib/services/monitorManagement/lib/operations/index.d.ts index 9e1034411e..05cf4aec76 100644 --- a/lib/services/monitorManagement/lib/operations/index.d.ts +++ b/lib/services/monitorManagement/lib/operations/index.d.ts @@ -4047,6 +4047,14 @@ export interface MetricAlerts { * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * @@ -4102,6 +4110,14 @@ export interface MetricAlerts { * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * @@ -4178,6 +4194,14 @@ export interface MetricAlerts { * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * @@ -4231,6 +4255,14 @@ export interface MetricAlerts { * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * diff --git a/lib/services/monitorManagement/lib/operations/metricAlerts.js b/lib/services/monitorManagement/lib/operations/metricAlerts.js index ed52e2172a..db26b97be7 100644 --- a/lib/services/monitorManagement/lib/operations/metricAlerts.js +++ b/lib/services/monitorManagement/lib/operations/metricAlerts.js @@ -458,6 +458,14 @@ function _get(resourceGroupName, ruleName, options, callback) { * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * @@ -656,6 +664,14 @@ function _createOrUpdate(resourceGroupName, ruleName, parameters, options, callb * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * @@ -1237,6 +1253,14 @@ class MetricAlerts { * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * @@ -1304,6 +1328,14 @@ class MetricAlerts { * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * @@ -1395,6 +1427,14 @@ class MetricAlerts { * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * @@ -1460,6 +1500,14 @@ class MetricAlerts { * 8601 duration format) that is used to monitor alert activity based on the * threshold. * + * @param {string} [parameters.targetResourceType] the resource type of the + * target resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * + * @param {string} [parameters.targetResourceRegion] the region of the target + * resource(s) on which the alert is created/updated. Mandatory for + * MultipleResourceMultipleMetricCriteria. + * * @param {object} parameters.criteria defines the specific alert criteria * information. * From d198cc36a7873eb5dcf40aaf9fcfec39c327db32 Mon Sep 17 00:00:00 2001 From: Azure SDK for Python bot Date: Wed, 3 Oct 2018 09:16:08 +0000 Subject: [PATCH 2/2] Generated from a88d7f44fc48e9ea0c1203b6bf10bac1b65111e4 Merge remote-tracking branch 'upstream/master' --- .../monitorManagement/lib/models/criteria.js | 68 +++++++++++++++++ .../monitorManagement/lib/models/dimension.js | 76 +++++++++++++++++++ .../monitorManagement/lib/models/index.d.ts | 55 ++++++++++++-- .../monitorManagement/lib/models/index.js | 6 +- .../lib/models/logSearchRuleResource.js | 8 +- .../lib/models/logToMetricAction.js | 73 ++++++++++++++++++ .../monitorManagement/lib/models/source.js | 5 +- .../lib/operations/index.d.ts | 14 ++-- .../lib/operations/scheduledQueryRules.js | 21 ++--- 9 files changed, 300 insertions(+), 26 deletions(-) create mode 100644 lib/services/monitorManagement/lib/models/criteria.js create mode 100644 lib/services/monitorManagement/lib/models/dimension.js create mode 100644 lib/services/monitorManagement/lib/models/logToMetricAction.js diff --git a/lib/services/monitorManagement/lib/models/criteria.js b/lib/services/monitorManagement/lib/models/criteria.js new file mode 100644 index 0000000000..00c198d834 --- /dev/null +++ b/lib/services/monitorManagement/lib/models/criteria.js @@ -0,0 +1,68 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +/** + * Specifies the criteria for converting log to metric. + * + */ +class Criteria { + /** + * Create a Criteria. + * @member {string} metricName Name of the metric + * @member {array} [dimensions] List of Dimensions for creating metric + */ + constructor() { + } + + /** + * Defines the metadata of Criteria + * + * @returns {object} metadata of Criteria + * + */ + mapper() { + return { + required: false, + serializedName: 'Criteria', + type: { + name: 'Composite', + className: 'Criteria', + modelProperties: { + metricName: { + required: true, + serializedName: 'metricName', + type: { + name: 'String' + } + }, + dimensions: { + required: false, + serializedName: 'dimensions', + type: { + name: 'Sequence', + element: { + required: false, + serializedName: 'DimensionElementType', + type: { + name: 'Composite', + className: 'Dimension' + } + } + } + } + } + } + }; + } +} + +module.exports = Criteria; diff --git a/lib/services/monitorManagement/lib/models/dimension.js b/lib/services/monitorManagement/lib/models/dimension.js new file mode 100644 index 0000000000..f5d573c594 --- /dev/null +++ b/lib/services/monitorManagement/lib/models/dimension.js @@ -0,0 +1,76 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +/** + * Specifies the criteria for converting log to metric. + * + */ +class Dimension { + /** + * Create a Dimension. + * @member {string} name Name of the dimension + * @member {array} values List of dimension values + */ + constructor() { + } + + /** + * Defines the metadata of Dimension + * + * @returns {object} metadata of Dimension + * + */ + mapper() { + return { + required: false, + serializedName: 'Dimension', + type: { + name: 'Composite', + className: 'Dimension', + modelProperties: { + name: { + required: true, + serializedName: 'name', + type: { + name: 'String' + } + }, + operator: { + required: true, + isConstant: true, + serializedName: 'operator', + defaultValue: 'Include', + type: { + name: 'String' + } + }, + values: { + required: true, + serializedName: 'values', + type: { + name: 'Sequence', + element: { + required: false, + serializedName: 'StringElementType', + type: { + name: 'String' + } + } + } + } + } + } + }; + } +} + +module.exports = Dimension; diff --git a/lib/services/monitorManagement/lib/models/index.d.ts b/lib/services/monitorManagement/lib/models/index.d.ts index c9f737562f..9565da155c 100644 --- a/lib/services/monitorManagement/lib/models/index.d.ts +++ b/lib/services/monitorManagement/lib/models/index.d.ts @@ -2258,7 +2258,8 @@ export interface MetricAlertMultipleResourceMultipleMetricCriteria extends Metri * @constructor * Specifies the log search query. * - * @member {string} query Log search query. + * @member {string} [query] Log search query. Required for action type - + * AlertingAction * @member {array} [authorizedResources] List of Resource referred into query * @member {string} dataSourceId The resource uri over which log search query * is to be run. @@ -2266,7 +2267,7 @@ export interface MetricAlertMultipleResourceMultipleMetricCriteria extends Metri * include: 'ResultCount' */ export interface Source { - query: string; + query?: string; authorizedResources?: string[]; dataSourceId: string; queryType?: string; @@ -2316,14 +2317,16 @@ export interface Action { * scheduledquery rule. Possible values include: 'Succeeded', 'Deploying', * 'Canceled', 'Failed' * @member {object} source Data Source against which rule will Query Data - * @member {string} [source.query] Log search query. + * @member {string} [source.query] Log search query. Required for action type - + * AlertingAction * @member {array} [source.authorizedResources] List of Resource referred into * query * @member {string} [source.dataSourceId] The resource uri over which log * search query is to be run. * @member {string} [source.queryType] Set value to 'ResultCount'. Possible * values include: 'ResultCount' - * @member {object} schedule Schedule (Frequnecy, Time Window) for rule. + * @member {object} [schedule] Schedule (Frequnecy, Time Window) for rule. + * Required for action type - AlertingAction * @member {number} [schedule.frequencyInMinutes] frequency (in minutes) at * which rule condition should be evaluated. * @member {number} [schedule.timeWindowInMinutes] Time window for which data @@ -2338,7 +2341,7 @@ export interface LogSearchRuleResource extends Resource { readonly lastUpdatedTime?: Date; readonly provisioningState?: string; source: Source; - schedule: Schedule; + schedule?: Schedule; action: Action; } @@ -2468,6 +2471,48 @@ export interface AlertingAction extends Action { trigger: TriggerCondition; } +/** + * @class + * Initializes a new instance of the Dimension class. + * @constructor + * Specifies the criteria for converting log to metric. + * + * @member {string} name Name of the dimension + * @member {array} values List of dimension values + */ +export interface Dimension { + name: string; + values: string[]; +} + +/** + * @class + * Initializes a new instance of the Criteria class. + * @constructor + * Specifies the criteria for converting log to metric. + * + * @member {string} metricName Name of the metric + * @member {array} [dimensions] List of Dimensions for creating metric + */ +export interface Criteria { + metricName: string; + dimensions?: Dimension[]; +} + +/** + * @class + * Initializes a new instance of the LogToMetricAction class. + * @constructor + * Specifiy action need to be taken when rule type is converting log to metric + * + * @member {object} criteria Severity of the alert + * @member {string} [criteria.metricName] Name of the metric + * @member {array} [criteria.dimensions] List of Dimensions for creating metric + */ +export interface LogToMetricAction extends Action { + criteria: Criteria; +} + /** * @class * Initializes a new instance of the MetricNamespaceName class. diff --git a/lib/services/monitorManagement/lib/models/index.js b/lib/services/monitorManagement/lib/models/index.js index 57c01cd971..6db8520ba1 100644 --- a/lib/services/monitorManagement/lib/models/index.js +++ b/lib/services/monitorManagement/lib/models/index.js @@ -116,6 +116,9 @@ exports.LogMetricTrigger = require('./logMetricTrigger'); exports.TriggerCondition = require('./triggerCondition'); exports.AzNsActionGroup = require('./azNsActionGroup'); exports.AlertingAction = require('./alertingAction'); +exports.Dimension = require('./dimension'); +exports.Criteria = require('./criteria'); +exports.LogToMetricAction = require('./logToMetricAction'); exports.MetricNamespaceName = require('./metricNamespaceName'); exports.MetricNamespace = require('./metricNamespace'); exports.AutoscaleSettingResourceCollection = require('./autoscaleSettingResourceCollection'); @@ -147,5 +150,6 @@ exports.discriminators = { 'MultiMetricCriteria' : exports.MultiMetricCriteria, 'MetricAlertCriteria.Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria' : exports.MetricAlertMultipleResourceMultipleMetricCriteria, 'Action' : exports.Action, - 'Action.Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.AlertingAction' : exports.AlertingAction + 'Action.Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.AlertingAction' : exports.AlertingAction, + 'Action.Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.LogToMetricAction' : exports.LogToMetricAction }; diff --git a/lib/services/monitorManagement/lib/models/logSearchRuleResource.js b/lib/services/monitorManagement/lib/models/logSearchRuleResource.js index 138f18b726..10804b4040 100644 --- a/lib/services/monitorManagement/lib/models/logSearchRuleResource.js +++ b/lib/services/monitorManagement/lib/models/logSearchRuleResource.js @@ -30,14 +30,16 @@ class LogSearchRuleResource extends models['Resource'] { * scheduledquery rule. Possible values include: 'Succeeded', 'Deploying', * 'Canceled', 'Failed' * @member {object} source Data Source against which rule will Query Data - * @member {string} [source.query] Log search query. + * @member {string} [source.query] Log search query. Required for action type + * - AlertingAction * @member {array} [source.authorizedResources] List of Resource referred * into query * @member {string} [source.dataSourceId] The resource uri over which log * search query is to be run. * @member {string} [source.queryType] Set value to 'ResultCount'. Possible * values include: 'ResultCount' - * @member {object} schedule Schedule (Frequnecy, Time Window) for rule. + * @member {object} [schedule] Schedule (Frequnecy, Time Window) for rule. + * Required for action type - AlertingAction * @member {number} [schedule.frequencyInMinutes] frequency (in minutes) at * which rule condition should be evaluated. * @member {number} [schedule.timeWindowInMinutes] Time window for which data @@ -148,7 +150,7 @@ class LogSearchRuleResource extends models['Resource'] { } }, schedule: { - required: true, + required: false, serializedName: 'properties.schedule', type: { name: 'Composite', diff --git a/lib/services/monitorManagement/lib/models/logToMetricAction.js b/lib/services/monitorManagement/lib/models/logToMetricAction.js new file mode 100644 index 0000000000..78a9d15d4d --- /dev/null +++ b/lib/services/monitorManagement/lib/models/logToMetricAction.js @@ -0,0 +1,73 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +const models = require('./index'); + +/** + * Specifiy action need to be taken when rule type is converting log to metric + * + * @extends models['Action'] + */ +class LogToMetricAction extends models['Action'] { + /** + * Create a LogToMetricAction. + * @member {object} criteria Severity of the alert + * @member {string} [criteria.metricName] Name of the metric + * @member {array} [criteria.dimensions] List of Dimensions for creating + * metric + */ + constructor() { + super(); + } + + /** + * Defines the metadata of LogToMetricAction + * + * @returns {object} metadata of LogToMetricAction + * + */ + mapper() { + return { + required: false, + serializedName: 'Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.LogToMetricAction', + type: { + name: 'Composite', + polymorphicDiscriminator: { + serializedName: 'odata.type', + clientName: 'odatatype' + }, + uberParent: 'Action', + className: 'LogToMetricAction', + modelProperties: { + odatatype: { + required: true, + serializedName: 'odata\\.type', + isPolymorphicDiscriminator: true, + type: { + name: 'String' + } + }, + criteria: { + required: true, + serializedName: 'criteria', + type: { + name: 'Composite', + className: 'Criteria' + } + } + } + } + }; + } +} + +module.exports = LogToMetricAction; diff --git a/lib/services/monitorManagement/lib/models/source.js b/lib/services/monitorManagement/lib/models/source.js index d576129d8a..016c655ca5 100644 --- a/lib/services/monitorManagement/lib/models/source.js +++ b/lib/services/monitorManagement/lib/models/source.js @@ -17,7 +17,8 @@ class Source { /** * Create a Source. - * @member {string} query Log search query. + * @member {string} [query] Log search query. Required for action type - + * AlertingAction * @member {array} [authorizedResources] List of Resource referred into * query * @member {string} dataSourceId The resource uri over which log search query @@ -43,7 +44,7 @@ class Source { className: 'Source', modelProperties: { query: { - required: true, + required: false, serializedName: 'query', type: { name: 'String' diff --git a/lib/services/monitorManagement/lib/operations/index.d.ts b/lib/services/monitorManagement/lib/operations/index.d.ts index 05cf4aec76..20b19079de 100644 --- a/lib/services/monitorManagement/lib/operations/index.d.ts +++ b/lib/services/monitorManagement/lib/operations/index.d.ts @@ -4525,7 +4525,8 @@ export interface ScheduledQueryRules { * @param {object} parameters.source Data Source against which rule will Query * Data * - * @param {string} parameters.source.query Log search query. + * @param {string} [parameters.source.query] Log search query. Required for + * action type - AlertingAction * * @param {array} [parameters.source.authorizedResources] List of Resource * referred into query @@ -4536,8 +4537,8 @@ export interface ScheduledQueryRules { * @param {string} [parameters.source.queryType] Set value to 'ResultCount'. * Possible values include: 'ResultCount' * - * @param {object} parameters.schedule Schedule (Frequnecy, Time Window) for - * rule. + * @param {object} [parameters.schedule] Schedule (Frequnecy, Time Window) for + * rule. Required for action type - AlertingAction * * @param {number} parameters.schedule.frequencyInMinutes frequency (in * minutes) at which rule condition should be evaluated. @@ -4587,7 +4588,8 @@ export interface ScheduledQueryRules { * @param {object} parameters.source Data Source against which rule will Query * Data * - * @param {string} parameters.source.query Log search query. + * @param {string} [parameters.source.query] Log search query. Required for + * action type - AlertingAction * * @param {array} [parameters.source.authorizedResources] List of Resource * referred into query @@ -4598,8 +4600,8 @@ export interface ScheduledQueryRules { * @param {string} [parameters.source.queryType] Set value to 'ResultCount'. * Possible values include: 'ResultCount' * - * @param {object} parameters.schedule Schedule (Frequnecy, Time Window) for - * rule. + * @param {object} [parameters.schedule] Schedule (Frequnecy, Time Window) for + * rule. Required for action type - AlertingAction * * @param {number} parameters.schedule.frequencyInMinutes frequency (in * minutes) at which rule condition should be evaluated. diff --git a/lib/services/monitorManagement/lib/operations/scheduledQueryRules.js b/lib/services/monitorManagement/lib/operations/scheduledQueryRules.js index 40352ff697..316fa33aa8 100644 --- a/lib/services/monitorManagement/lib/operations/scheduledQueryRules.js +++ b/lib/services/monitorManagement/lib/operations/scheduledQueryRules.js @@ -33,7 +33,8 @@ const WebResource = msRest.WebResource; * @param {object} parameters.source Data Source against which rule will Query * Data * - * @param {string} parameters.source.query Log search query. + * @param {string} [parameters.source.query] Log search query. Required for + * action type - AlertingAction * * @param {array} [parameters.source.authorizedResources] List of Resource * referred into query @@ -44,8 +45,8 @@ const WebResource = msRest.WebResource; * @param {string} [parameters.source.queryType] Set value to 'ResultCount'. * Possible values include: 'ResultCount' * - * @param {object} parameters.schedule Schedule (Frequnecy, Time Window) for - * rule. + * @param {object} [parameters.schedule] Schedule (Frequnecy, Time Window) for + * rule. Required for action type - AlertingAction * * @param {number} parameters.schedule.frequencyInMinutes frequency (in * minutes) at which rule condition should be evaluated. @@ -1002,7 +1003,8 @@ class ScheduledQueryRules { * @param {object} parameters.source Data Source against which rule will Query * Data * - * @param {string} parameters.source.query Log search query. + * @param {string} [parameters.source.query] Log search query. Required for + * action type - AlertingAction * * @param {array} [parameters.source.authorizedResources] List of Resource * referred into query @@ -1013,8 +1015,8 @@ class ScheduledQueryRules { * @param {string} [parameters.source.queryType] Set value to 'ResultCount'. * Possible values include: 'ResultCount' * - * @param {object} parameters.schedule Schedule (Frequnecy, Time Window) for - * rule. + * @param {object} [parameters.schedule] Schedule (Frequnecy, Time Window) for + * rule. Required for action type - AlertingAction * * @param {number} parameters.schedule.frequencyInMinutes frequency (in * minutes) at which rule condition should be evaluated. @@ -1076,7 +1078,8 @@ class ScheduledQueryRules { * @param {object} parameters.source Data Source against which rule will Query * Data * - * @param {string} parameters.source.query Log search query. + * @param {string} [parameters.source.query] Log search query. Required for + * action type - AlertingAction * * @param {array} [parameters.source.authorizedResources] List of Resource * referred into query @@ -1087,8 +1090,8 @@ class ScheduledQueryRules { * @param {string} [parameters.source.queryType] Set value to 'ResultCount'. * Possible values include: 'ResultCount' * - * @param {object} parameters.schedule Schedule (Frequnecy, Time Window) for - * rule. + * @param {object} [parameters.schedule] Schedule (Frequnecy, Time Window) for + * rule. Required for action type - AlertingAction * * @param {number} parameters.schedule.frequencyInMinutes frequency (in * minutes) at which rule condition should be evaluated.