import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface ActionGroup { automationRunbookReceivers?: Expressionable; azureAppPushReceivers?: Expressionable; azureFunctionReceivers?: Expressionable; emailReceivers?: Expressionable; enabled: Expressionable; groupShortName: Expressionable; itsmReceivers?: Expressionable; logicAppReceivers?: Expressionable; smsReceivers?: Expressionable; voiceReceivers?: Expressionable; webhookReceivers?: Expressionable; } export interface AutomationRunbookReceiver { automationAccountId: Expressionable; isGlobalRunbook: Expressionable; name?: Expressionable; runbookName: Expressionable; serviceUri?: Expressionable; webhookResourceId: Expressionable; } export interface AzureAppPushReceiver { emailAddress: Expressionable; name: Expressionable; } export interface AzureFunctionReceiver { functionAppResourceId: Expressionable; functionName: Expressionable; httpTriggerUrl: Expressionable; name: Expressionable; } export interface DynamicMetricCriteria { alertSensitivity: Expressionable<('Low' | 'Medium' | 'High')>; criterionType: Expressionable<('DynamicThresholdCriterion')>; failingPeriods: Expressionable; ignoreDataBefore?: Expressionable; operator: Expressionable<('GreaterThan' | 'LessThan' | 'GreaterOrLessThan')>; } export interface DynamicThresholdFailingPeriods { minFailingPeriodsToAlert: Expressionable; numberOfEvaluationPeriods: Expressionable; } export interface EmailReceiver { emailAddress: Expressionable; name: Expressionable; } export interface ItsmReceiver { connectionId: Expressionable; name: Expressionable; region: Expressionable; ticketConfiguration: Expressionable; workspaceId: Expressionable; } export interface LogicAppReceiver { callbackUrl: Expressionable; name: Expressionable; resourceId: Expressionable; } export interface MetricAlertAction { actionGroupId?: Expressionable; webhookProperties?: Expressionable; } export interface MetricAlertCriteria { additionalProperties?: Expressionable; } export interface MetricAlertMultipleResourceMultipleMetricCriteria { allOf?: Expressionable; 'odata.type': Expressionable<('Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria')>; } export interface MetricAlertProperties { actions?: Expressionable; autoMitigate?: Expressionable; criteria: Expressionable; description: Expressionable; enabled: Expressionable; evaluationFrequency: Expressionable; scopes?: Expressionable; severity: Expressionable; targetResourceRegion?: Expressionable; targetResourceType?: Expressionable; windowSize: Expressionable; } export interface MetricAlertSingleResourceMultipleMetricCriteria { allOf?: Expressionable; 'odata.type': Expressionable<('Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria')>; } export interface MetricCriteria { additionalProperties?: Expressionable; criterionType: Expressionable<('StaticThresholdCriterion')>; dimensions?: Expressionable; metricName: Expressionable; metricNamespace?: Expressionable; name: Expressionable; operator: Expressionable<('Equals' | 'NotEquals' | 'GreaterThan' | 'GreaterThanOrEqual' | 'LessThan' | 'LessThanOrEqual')>; threshold: Expressionable; timeAggregation: Expressionable<('Average' | 'Minimum' | 'Maximum' | 'Total')>; } export interface MetricDimension { name: Expressionable; operator: Expressionable; values: Expressionable; } export interface MultiMetricCriteria { additionalProperties?: Expressionable; dimensions?: Expressionable; metricName: Expressionable; metricNamespace?: Expressionable; name: Expressionable; timeAggregation: Expressionable<('Average' | 'Minimum' | 'Maximum' | 'Total')>; } export interface SmsReceiver { countryCode: Expressionable; name: Expressionable; phoneNumber: Expressionable; } export interface VoiceReceiver { countryCode: Expressionable; name: Expressionable; phoneNumber: Expressionable; } export interface WebhookReceiver { name: Expressionable; serviceUri: Expressionable; } export declare namespace actionGroups { interface AdditionalProps { tags?: Expressionable; } type ActionGroupsResource = ResourceDefinition; function create(name: Expressionable, properties: ActionGroup, location: Expressionable, tags?: Expressionable): ActionGroupsResource; } export declare namespace metricAlerts { interface AdditionalProps { tags?: Expressionable; } type MetricAlertsResource = ResourceDefinition; function create(name: Expressionable, properties: MetricAlertProperties, location: Expressionable, tags?: Expressionable): MetricAlertsResource; }