import { AlarmRuleProps } from './alarmmodel/AlarmRuleProps';
import { Value } from '../../cloudformation/Value';
import { AlarmCapabilitiesProps } from './alarmmodel/AlarmCapabilitiesProps';
import { AlarmEventActionsProps } from './alarmmodel/AlarmEventActionsProps';
import { Tag } from '../Tag';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  Represents an alarm model to monitor an AWS IoT Events input attribute. You can use the alarm to get notified when the value is outside a specified range. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/create-alarms.html">Create an alarm model</a> in the * AWS IoT Events Developer Guide*.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-alarmmodel.html">the AWS Docs</a>
*/
export type AlarmModel = AwsResource<'AWS::IoTEvents::AlarmModel', AlarmModelProperties>;
export declare function alarmModel(alarmModelProps: AlarmModelProperties): AlarmModel;
/**
  Represents an alarm model to monitor an AWS IoT Events input attribute. You can use the alarm to get notified when the value is outside a specified range. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/create-alarms.html">Create an alarm model</a> in the * AWS IoT Events Developer Guide*.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-alarmmodel.html">the AWS Docs</a>
*/
export interface AlarmModelProperties {
    /** <code>AlarmRule</code>  <a name="cfn-iotevents-alarmmodel-alarmrule"></a>
  Defines when your alarm is invoked.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    alarmRule: AlarmRuleProps;
    /** <code>AlarmModelName</code>  <a name="cfn-iotevents-alarmmodel-alarmmodelname"></a>
  The name of the alarm model.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>^[a-zA-Z0-9_-]+$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    alarmModelName?: Value<string>;
    /** <code>AlarmModelDescription</code>  <a name="cfn-iotevents-alarmmodel-alarmmodeldescription"></a>
  The description of the alarm model.<br />
  
  Required: No<br />
  
  Maximum: <code>128</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    alarmModelDescription?: Value<string>;
    /** <code>Severity</code>  <a name="cfn-iotevents-alarmmodel-severity"></a>
  A non-negative integer that reflects the severity level of the alarm.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    severity?: Value<number>;
    /** <code>AlarmCapabilities</code>  <a name="cfn-iotevents-alarmmodel-alarmcapabilities"></a>
  Contains the configuration information of alarm state changes.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    alarmCapabilities?: AlarmCapabilitiesProps;
    /** <code>RoleArn</code>  <a name="cfn-iotevents-alarmmodel-rolearn"></a>
  The ARN of the IAM role that allows the alarm to perform actions and access AWS resources. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names (ARNs)</a> in the * AWS General Reference*.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>2048</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    roleArn: Value<string>;
    /** <code>Key</code>  <a name="cfn-iotevents-alarmmodel-key"></a>
  An input attribute used as a key to create an alarm. AWS IoT Events routes <a href="https://docs.aws.amazon.com/iotevents/latest/apireference/API_Input.html">inputs</a> associated with this key to the alarm.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>^((</code>[\w- ]+<code>)|([\w\-]+))(\.((</code>[\w- ]+<code>)|([\w\-]+)))*$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    key?: Value<string>;
    /** <code>AlarmEventActions</code>  <a name="cfn-iotevents-alarmmodel-alarmeventactions"></a>
  Contains information about one or more alarm actions.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    alarmEventActions?: AlarmEventActionsProps;
    /** <code>Tags</code>  <a name="cfn-iotevents-alarmmodel-tags"></a>
  A list of key-value pairs that contain metadata for the alarm model. The tags help you manage the alarm model. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/tagging-iotevents.html">Tagging your AWS IoT Events resources</a> in the * AWS IoT Events Developer Guide*.<br />
  You can create up to 50 tags for one alarm model.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
}
