import { DetectorModelDefinitionProps } from './detectormodel/DetectorModelDefinitionProps';
import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  The AWS::IoTEvents::DetectorModel resource creates a detector model. You create a <em>detector model</em> (a model of your equipment or process) using <em>states</em>. For each state, you define conditional (Boolean) logic that evaluates the incoming inputs to detect significant events. When an event is detected, it can change the state or trigger custom-built or predefined actions using other AWS services. You can define additional events that trigger actions when entering or exiting a state and, optionally, when a condition is met. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html"> How to Use AWS IoT Events</a> in the <em>AWS IoT Events Developer Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html">the AWS Docs</a>
*/
export type DetectorModel = AwsResource<'AWS::IoTEvents::DetectorModel', DetectorModelProperties>;
export declare function detectorModel(detectorModelProps: DetectorModelProperties): DetectorModel;
/**
  The AWS::IoTEvents::DetectorModel resource creates a detector model. You create a <em>detector model</em> (a model of your equipment or process) using <em>states</em>. For each state, you define conditional (Boolean) logic that evaluates the incoming inputs to detect significant events. When an event is detected, it can change the state or trigger custom-built or predefined actions using other AWS services. You can define additional events that trigger actions when entering or exiting a state and, optionally, when a condition is met. For more information, see <a href="https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html"> How to Use AWS IoT Events</a> in the <em>AWS IoT Events Developer Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html">the AWS Docs</a>
*/
export interface DetectorModelProperties {
    /** <code>DetectorModelDefinition</code>  <a name="cfn-iotevents-detectormodel-detectormodeldefinition"></a>
  Information that defines how a detector operates.<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> */
    detectorModelDefinition: DetectorModelDefinitionProps;
    /** <code>EvaluationMethod</code>  <a name="cfn-iotevents-detectormodel-evaluationmethod"></a>
  Information about the order in which events are evaluated and how actions are executed.<br />
  
  Required: No<br />
  
  Allowed values: <code>BATCH | SERIAL</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> */
    evaluationMethod?: Value<'BATCH' | 'SERIAL'>;
    /** <code>DetectorModelName</code>  <a name="cfn-iotevents-detectormodel-detectormodelname"></a>
  The name of the detector 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> */
    detectorModelName?: Value<string>;
    /** <code>DetectorModelDescription</code>  <a name="cfn-iotevents-detectormodel-detectormodeldescription"></a>
  A brief description of the detector 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> */
    detectorModelDescription?: Value<string>;
    /** <code>Key</code>  <a name="cfn-iotevents-detectormodel-key"></a>
  The value used to identify a detector instance. When a device or system sends input, a new detector instance with a unique key value is created. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information.<br />
  This parameter uses a JSON-path expression to select the attribute-value pair in the message payload that is used for identification. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute-value.<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>RoleArn</code>  <a name="cfn-iotevents-detectormodel-rolearn"></a>
  The ARN of the role that grants permission to AWS IoT Events to perform its operations.<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>Tags</code>  <a name="cfn-iotevents-detectormodel-tags"></a>
  An array of key-value pairs to apply to this resource.<br />
  For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html">Tag</a>.<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[];
}
