import type { IAlarmAction } from './alarm-action'; import type { AlarmMuteRuleOptions } from './alarm-mute-rule'; import { AlarmMuteRule } from './alarm-mute-rule'; import type { IResource } from '../../core'; import { Resource } from '../../core'; import type { IArrayBox } from '../../core/lib/helpers-internal'; import type { IAlarmRef, AlarmReference } from '../../interfaces/generated/aws-cloudwatch-interfaces.generated'; /** * Interface for Alarm Rule. */ export interface IAlarmRule { /** * serialized representation of Alarm Rule to be used when building the Composite Alarm resource. */ renderAlarmRule(): string; } /** * Represents a CloudWatch Alarm */ export interface IAlarm extends IAlarmRule, IResource, IAlarmRef { /** * Alarm ARN (i.e. arn:aws:cloudwatch:::alarm:Foo) * * @attribute */ readonly alarmArn: string; /** * Name of the alarm * * @attribute */ readonly alarmName: string; } /** * The base class for Alarm and CompositeAlarm resources. */ export declare abstract class AlarmBase extends Resource implements IAlarm { /** * @attribute */ abstract readonly alarmArn: string; abstract readonly alarmName: string; /** @internal */ protected readonly _alarmActionArns: IArrayBox; /** @internal */ protected readonly _insufficientDataActionArns: IArrayBox; /** @internal */ protected readonly _okActionArns: IArrayBox; protected get alarmActionArns(): string[] | undefined; protected set alarmActionArns(value: string[] | undefined); protected get insufficientDataActionArns(): string[] | undefined; protected set insufficientDataActionArns(value: string[] | undefined); protected get okActionArns(): string[] | undefined; protected set okActionArns(value: string[] | undefined); get alarmRef(): AlarmReference; /** * AlarmRule indicating ALARM state for Alarm. */ renderAlarmRule(): string; /** * Trigger this action if the alarm fires * * Typically SnsAction or AutoScalingAction. */ addAlarmAction(...actions: IAlarmAction[]): void; /** * Trigger this action if there is insufficient data to evaluate the alarm * * Typically SnsAction or AutoScalingAction. */ addInsufficientDataAction(...actions: IAlarmAction[]): void; /** * Trigger this action if the alarm returns from breaching state into ok state * * Typically SnsAction or AutoScalingAction. */ addOkAction(...actions: IAlarmAction[]): void; /** * Add an alarm mute rule. */ addAlarmMuteRule(id: string, options: AlarmMuteRuleOptions): AlarmMuteRule; }