class CfnDetectorModelPropsMixin
| Language | Type name |
|---|---|
.NET | Amazon.CDK.Mixins.Preview.AWS.IoTEvents.Mixins.CfnDetectorModelPropsMixin |
Go | github.com/aws/aws-cdk-go/awscdkmixinspreview/v2/awsiotevents/mixins#CfnDetectorModelPropsMixin |
Java | software.amazon.awscdk.mixins.preview.services.iotevents.mixins.CfnDetectorModelPropsMixin |
Python | aws_cdk.mixins_preview.aws_iotevents.mixins.CfnDetectorModelPropsMixin |
TypeScript | @aws-cdk/mixins-preview » aws_iotevents » mixins » CfnDetectorModelPropsMixin |
Implements
IMixin
Extends
Mixin
The AWS::IoTEvents::DetectorModel resource creates a detector model.
You create a detector model (a model of your equipment or process) using states . 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 How to Use AWS IoT Events in the AWS IoT Events Developer Guide .
When you successfully update a detector model (using the AWS IoT Events console, AWS IoT Events API or CLI commands, or CloudFormation ) all detector instances created by the model are reset to their initial states. (The detector's
state, and the values of any variables and timers are reset.)When you successfully update a detector model (using the AWS IoT Events console, AWS IoT Events API or CLI commands, or CloudFormation ) the version number of the detector model is incremented. (A detector model with version number 1 before the update has version number 2 after the update succeeds.)
If you attempt to update a detector model using CloudFormation and the update does not succeed, the system may, in some cases, restore the original detector model. When this occurs, the detector model's version is incremented twice (for example, from version 1 to version 3) and the detector instances are reset.
Also, be aware that if you attempt to update several detector models at once using CloudFormation , some updates may succeed and others fail. In this case, the effects on each detector model's detector instances and version number depend on whether the update succeeded or failed, with the results as stated.
Example
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { mixins } from '@aws-cdk/mixins-preview';
import { mixins as iotevents_mixins } from '@aws-cdk/mixins-preview/aws-iotevents';
const cfnDetectorModelPropsMixin = new iotevents_mixins.CfnDetectorModelPropsMixin({
detectorModelDefinition: {
initialStateName: 'initialStateName',
states: [{
onEnter: {
events: [{
actions: [{
clearTimer: {
timerName: 'timerName',
},
dynamoDb: {
hashKeyField: 'hashKeyField',
hashKeyType: 'hashKeyType',
hashKeyValue: 'hashKeyValue',
operation: 'operation',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
payloadField: 'payloadField',
rangeKeyField: 'rangeKeyField',
rangeKeyType: 'rangeKeyType',
rangeKeyValue: 'rangeKeyValue',
tableName: 'tableName',
},
dynamoDBv2: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
tableName: 'tableName',
},
firehose: {
deliveryStreamName: 'deliveryStreamName',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
separator: 'separator',
},
iotEvents: {
inputName: 'inputName',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
iotSiteWise: {
assetId: 'assetId',
entryId: 'entryId',
propertyAlias: 'propertyAlias',
propertyId: 'propertyId',
propertyValue: {
quality: 'quality',
timestamp: {
offsetInNanos: 'offsetInNanos',
timeInSeconds: 'timeInSeconds',
},
value: {
booleanValue: 'booleanValue',
doubleValue: 'doubleValue',
integerValue: 'integerValue',
stringValue: 'stringValue',
},
},
},
iotTopicPublish: {
mqttTopic: 'mqttTopic',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
lambda: {
functionArn: 'functionArn',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
resetTimer: {
timerName: 'timerName',
},
setTimer: {
durationExpression: 'durationExpression',
seconds: 123,
timerName: 'timerName',
},
setVariable: {
value: 'value',
variableName: 'variableName',
},
sns: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
targetArn: 'targetArn',
},
sqs: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
queueUrl: 'queueUrl',
useBase64: false,
},
}],
condition: 'condition',
eventName: 'eventName',
}],
},
onExit: {
events: [{
actions: [{
clearTimer: {
timerName: 'timerName',
},
dynamoDb: {
hashKeyField: 'hashKeyField',
hashKeyType: 'hashKeyType',
hashKeyValue: 'hashKeyValue',
operation: 'operation',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
payloadField: 'payloadField',
rangeKeyField: 'rangeKeyField',
rangeKeyType: 'rangeKeyType',
rangeKeyValue: 'rangeKeyValue',
tableName: 'tableName',
},
dynamoDBv2: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
tableName: 'tableName',
},
firehose: {
deliveryStreamName: 'deliveryStreamName',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
separator: 'separator',
},
iotEvents: {
inputName: 'inputName',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
iotSiteWise: {
assetId: 'assetId',
entryId: 'entryId',
propertyAlias: 'propertyAlias',
propertyId: 'propertyId',
propertyValue: {
quality: 'quality',
timestamp: {
offsetInNanos: 'offsetInNanos',
timeInSeconds: 'timeInSeconds',
},
value: {
booleanValue: 'booleanValue',
doubleValue: 'doubleValue',
integerValue: 'integerValue',
stringValue: 'stringValue',
},
},
},
iotTopicPublish: {
mqttTopic: 'mqttTopic',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
lambda: {
functionArn: 'functionArn',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
resetTimer: {
timerName: 'timerName',
},
setTimer: {
durationExpression: 'durationExpression',
seconds: 123,
timerName: 'timerName',
},
setVariable: {
value: 'value',
variableName: 'variableName',
},
sns: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
targetArn: 'targetArn',
},
sqs: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
queueUrl: 'queueUrl',
useBase64: false,
},
}],
condition: 'condition',
eventName: 'eventName',
}],
},
onInput: {
events: [{
actions: [{
clearTimer: {
timerName: 'timerName',
},
dynamoDb: {
hashKeyField: 'hashKeyField',
hashKeyType: 'hashKeyType',
hashKeyValue: 'hashKeyValue',
operation: 'operation',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
payloadField: 'payloadField',
rangeKeyField: 'rangeKeyField',
rangeKeyType: 'rangeKeyType',
rangeKeyValue: 'rangeKeyValue',
tableName: 'tableName',
},
dynamoDBv2: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
tableName: 'tableName',
},
firehose: {
deliveryStreamName: 'deliveryStreamName',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
separator: 'separator',
},
iotEvents: {
inputName: 'inputName',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
iotSiteWise: {
assetId: 'assetId',
entryId: 'entryId',
propertyAlias: 'propertyAlias',
propertyId: 'propertyId',
propertyValue: {
quality: 'quality',
timestamp: {
offsetInNanos: 'offsetInNanos',
timeInSeconds: 'timeInSeconds',
},
value: {
booleanValue: 'booleanValue',
doubleValue: 'doubleValue',
integerValue: 'integerValue',
stringValue: 'stringValue',
},
},
},
iotTopicPublish: {
mqttTopic: 'mqttTopic',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
lambda: {
functionArn: 'functionArn',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
resetTimer: {
timerName: 'timerName',
},
setTimer: {
durationExpression: 'durationExpression',
seconds: 123,
timerName: 'timerName',
},
setVariable: {
value: 'value',
variableName: 'variableName',
},
sns: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
targetArn: 'targetArn',
},
sqs: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
queueUrl: 'queueUrl',
useBase64: false,
},
}],
condition: 'condition',
eventName: 'eventName',
}],
transitionEvents: [{
actions: [{
clearTimer: {
timerName: 'timerName',
},
dynamoDb: {
hashKeyField: 'hashKeyField',
hashKeyType: 'hashKeyType',
hashKeyValue: 'hashKeyValue',
operation: 'operation',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
payloadField: 'payloadField',
rangeKeyField: 'rangeKeyField',
rangeKeyType: 'rangeKeyType',
rangeKeyValue: 'rangeKeyValue',
tableName: 'tableName',
},
dynamoDBv2: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
tableName: 'tableName',
},
firehose: {
deliveryStreamName: 'deliveryStreamName',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
separator: 'separator',
},
iotEvents: {
inputName: 'inputName',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
iotSiteWise: {
assetId: 'assetId',
entryId: 'entryId',
propertyAlias: 'propertyAlias',
propertyId: 'propertyId',
propertyValue: {
quality: 'quality',
timestamp: {
offsetInNanos: 'offsetInNanos',
timeInSeconds: 'timeInSeconds',
},
value: {
booleanValue: 'booleanValue',
doubleValue: 'doubleValue',
integerValue: 'integerValue',
stringValue: 'stringValue',
},
},
},
iotTopicPublish: {
mqttTopic: 'mqttTopic',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
lambda: {
functionArn: 'functionArn',
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
},
resetTimer: {
timerName: 'timerName',
},
setTimer: {
durationExpression: 'durationExpression',
seconds: 123,
timerName: 'timerName',
},
setVariable: {
value: 'value',
variableName: 'variableName',
},
sns: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
targetArn: 'targetArn',
},
sqs: {
payload: {
contentExpression: 'contentExpression',
type: 'type',
},
queueUrl: 'queueUrl',
useBase64: false,
},
}],
condition: 'condition',
eventName: 'eventName',
nextState: 'nextState',
}],
},
stateName: 'stateName',
}],
},
detectorModelDescription: 'detectorModelDescription',
detectorModelName: 'detectorModelName',
evaluationMethod: 'evaluationMethod',
key: 'key',
roleArn: 'roleArn',
tags: [{
key: 'key',
value: 'value',
}],
}, /* all optional props */ {
strategy: mixins.PropertyMergeStrategy.OVERRIDE,
});
Initializer
new CfnDetectorModelPropsMixin(props: CfnDetectorModelMixinProps, options?: CfnPropertyMixinOptions)
Parameters
- props
Cfn— L1 properties to apply.Detector Model Mixin Props - options
Cfn— Mixin options.Property Mixin Options
Create a mixin to apply properties to AWS::IoTEvents::DetectorModel.
Properties
| Name | Type | Description |
|---|---|---|
| props | Cfn | |
| strategy | Property | |
| static CFN_PROPERTY_KEYS | string[] |
props
Type:
Cfn
strategy
Type:
Property
static CFN_PROPERTY_KEYS
Type:
string[]
Methods
| Name | Description |
|---|---|
| apply | Apply the mixin properties to the construct. |
| supports(construct) | Check if this mixin supports the given construct. |
applyTo(construct)
public applyTo(construct: IConstruct): IConstruct
Parameters
- construct
IConstruct
Returns
Apply the mixin properties to the construct.
supports(construct)
public supports(construct: IConstruct): boolean
Parameters
- construct
IConstruct
Returns
boolean
Check if this mixin supports the given construct.

.NET
Go
Java
Python
TypeScript