/*
 * 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.
 */

/* jshint latedef:false */
/* jshint forin:false */
/* jshint noempty:false */

'use strict';

var msRestAzure = require('ms-rest-azure');

exports.BaseResource = msRestAzure.BaseResource;
exports.CloudError = msRestAzure.CloudError;
exports.Resource = require('./resource');
exports.ScaleCapacity = require('./scaleCapacity');
exports.MetricTrigger = require('./metricTrigger');
exports.ScaleAction = require('./scaleAction');
exports.ScaleRule = require('./scaleRule');
exports.TimeWindow = require('./timeWindow');
exports.RecurrentSchedule = require('./recurrentSchedule');
exports.Recurrence = require('./recurrence');
exports.AutoscaleProfile = require('./autoscaleProfile');
exports.EmailNotification = require('./emailNotification');
exports.WebhookNotification = require('./webhookNotification');
exports.AutoscaleNotification = require('./autoscaleNotification');
exports.AutoscaleSettingResource = require('./autoscaleSettingResource');
exports.AutoscaleSettingResourcePatch = require('./autoscaleSettingResourcePatch');
exports.ErrorResponse = require('./errorResponse');
exports.OperationDisplay = require('./operationDisplay');
exports.Operation = require('./operation');
exports.OperationListResult = require('./operationListResult');
exports.Incident = require('./incident');
exports.RuleDataSource = require('./ruleDataSource');
exports.RuleCondition = require('./ruleCondition');
exports.RuleMetricDataSource = require('./ruleMetricDataSource');
exports.RuleManagementEventClaimsDataSource = require('./ruleManagementEventClaimsDataSource');
exports.RuleManagementEventDataSource = require('./ruleManagementEventDataSource');
exports.ThresholdRuleCondition = require('./thresholdRuleCondition');
exports.LocationThresholdRuleCondition = require('./locationThresholdRuleCondition');
exports.ManagementEventAggregationCondition = require('./managementEventAggregationCondition');
exports.ManagementEventRuleCondition = require('./managementEventRuleCondition');
exports.RuleAction = require('./ruleAction');
exports.RuleEmailAction = require('./ruleEmailAction');
exports.RuleWebhookAction = require('./ruleWebhookAction');
exports.AlertRuleResource = require('./alertRuleResource');
exports.AlertRuleResourcePatch = require('./alertRuleResourcePatch');
exports.RetentionPolicy = require('./retentionPolicy');
exports.LogProfileResource = require('./logProfileResource');
exports.LogProfileResourcePatch = require('./logProfileResourcePatch');
exports.ProxyOnlyResource = require('./proxyOnlyResource');
exports.MetricSettings = require('./metricSettings');
exports.LogSettings = require('./logSettings');
exports.DiagnosticSettingsResource = require('./diagnosticSettingsResource');
exports.DiagnosticSettingsResourceCollection = require('./diagnosticSettingsResourceCollection');
exports.DiagnosticSettingsCategoryResource = require('./diagnosticSettingsCategoryResource');
exports.DiagnosticSettingsCategoryResourceCollection = require('./diagnosticSettingsCategoryResourceCollection');
exports.EmailReceiver = require('./emailReceiver');
exports.SmsReceiver = require('./smsReceiver');
exports.WebhookReceiver = require('./webhookReceiver');
exports.ItsmReceiver = require('./itsmReceiver');
exports.AzureAppPushReceiver = require('./azureAppPushReceiver');
exports.AutomationRunbookReceiver = require('./automationRunbookReceiver');
exports.VoiceReceiver = require('./voiceReceiver');
exports.LogicAppReceiver = require('./logicAppReceiver');
exports.AzureFunctionReceiver = require('./azureFunctionReceiver');
exports.ArmRoleReceiver = require('./armRoleReceiver');
exports.ActionGroupResource = require('./actionGroupResource');
exports.EnableRequest = require('./enableRequest');
exports.ActionGroupPatchBody = require('./actionGroupPatchBody');
exports.ActivityLogAlertLeafCondition = require('./activityLogAlertLeafCondition');
exports.ActivityLogAlertAllOfCondition = require('./activityLogAlertAllOfCondition');
exports.ActivityLogAlertActionGroup = require('./activityLogAlertActionGroup');
exports.ActivityLogAlertActionList = require('./activityLogAlertActionList');
exports.ActivityLogAlertResource = require('./activityLogAlertResource');
exports.ActivityLogAlertPatchBody = require('./activityLogAlertPatchBody');
exports.LocalizableString = require('./localizableString');
exports.SenderAuthorization = require('./senderAuthorization');
exports.HttpRequestInfo = require('./httpRequestInfo');
exports.EventData = require('./eventData');
exports.MetricAvailability = require('./metricAvailability');
exports.MetricDefinition = require('./metricDefinition');
exports.MetricValue = require('./metricValue');
exports.MetadataValue = require('./metadataValue');
exports.TimeSeriesElement = require('./timeSeriesElement');
exports.Metric = require('./metric');
exports.Response = require('./response');
exports.BaselineMetadataValue = require('./baselineMetadataValue');
exports.Baseline = require('./baseline');
exports.BaselineResponse = require('./baselineResponse');
exports.TimeSeriesInformation = require('./timeSeriesInformation');
exports.CalculateBaselineResponse = require('./calculateBaselineResponse');
exports.MetricAlertAction = require('./metricAlertAction');
exports.MetricAlertCriteria = require('./metricAlertCriteria');
exports.MetricAlertResource = require('./metricAlertResource');
exports.MetricAlertResourcePatch = require('./metricAlertResourcePatch');
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');
exports.LogSearchRuleResource = require('./logSearchRuleResource');
exports.LogSearchRuleResourcePatch = require('./logSearchRuleResourcePatch');
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.ProxyResource = require('./proxyResource');
exports.ErrorModel = require('./errorModel');
exports.ResponseWithError = require('./responseWithError');
exports.WorkspaceInfo = require('./workspaceInfo');
exports.DataContainer = require('./dataContainer');
exports.VMInsightsOnboardingStatus = require('./vMInsightsOnboardingStatus');
exports.AutoscaleSettingResourceCollection = require('./autoscaleSettingResourceCollection');
exports.IncidentListResult = require('./incidentListResult');
exports.AlertRuleResourceCollection = require('./alertRuleResourceCollection');
exports.LogProfileCollection = require('./logProfileCollection');
exports.ActionGroupList = require('./actionGroupList');
exports.ActivityLogAlertList = require('./activityLogAlertList');
exports.EventDataCollection = require('./eventDataCollection');
exports.EventCategoryCollection = require('./eventCategoryCollection');
exports.MetricDefinitionCollection = require('./metricDefinitionCollection');
exports.MetricAlertResourceCollection = require('./metricAlertResourceCollection');
exports.LogSearchRuleResourceCollection = require('./logSearchRuleResourceCollection');
exports.MetricNamespaceCollection = require('./metricNamespaceCollection');
exports.discriminators = {
  'RuleDataSource' : exports.RuleDataSource,
  'RuleCondition' : exports.RuleCondition,
  'RuleDataSource.Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource' : exports.RuleMetricDataSource,
  'RuleDataSource.Microsoft.Azure.Management.Insights.Models.RuleManagementEventDataSource' : exports.RuleManagementEventDataSource,
  'RuleCondition.Microsoft.Azure.Management.Insights.Models.ThresholdRuleCondition' : exports.ThresholdRuleCondition,
  'RuleCondition.Microsoft.Azure.Management.Insights.Models.LocationThresholdRuleCondition' : exports.LocationThresholdRuleCondition,
  'RuleCondition.Microsoft.Azure.Management.Insights.Models.ManagementEventRuleCondition' : exports.ManagementEventRuleCondition,
  'RuleAction' : exports.RuleAction,
  '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,
  'Action.Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.LogToMetricAction' : exports.LogToMetricAction
};
