Class CfnDetectorModel
- All Implemented Interfaces:
IConstruct,IDependable,IInspectable,software.amazon.jsii.JsiiSerializable,software.constructs.IConstruct
AWS::IoTEvents::DetectorModel.
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 AWS 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 AWS 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 AWS 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 AWS 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 software.amazon.awscdk.services.iotevents.*;
CfnDetectorModel cfnDetectorModel = CfnDetectorModel.Builder.create(this, "MyCfnDetectorModel")
.detectorModelDefinition(DetectorModelDefinitionProperty.builder()
.initialStateName("initialStateName")
.states(List.of(StateProperty.builder()
.stateName("stateName")
// the properties below are optional
.onEnter(OnEnterProperty.builder()
.events(List.of(EventProperty.builder()
.eventName("eventName")
// the properties below are optional
.actions(List.of(ActionProperty.builder()
.clearTimer(ClearTimerProperty.builder()
.timerName("timerName")
.build())
.dynamoDb(DynamoDBProperty.builder()
.hashKeyField("hashKeyField")
.hashKeyValue("hashKeyValue")
.tableName("tableName")
// the properties below are optional
.hashKeyType("hashKeyType")
.operation("operation")
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.payloadField("payloadField")
.rangeKeyField("rangeKeyField")
.rangeKeyType("rangeKeyType")
.rangeKeyValue("rangeKeyValue")
.build())
.dynamoDBv2(DynamoDBv2Property.builder()
.tableName("tableName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.firehose(FirehoseProperty.builder()
.deliveryStreamName("deliveryStreamName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.separator("separator")
.build())
.iotEvents(IotEventsProperty.builder()
.inputName("inputName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.iotSiteWise(IotSiteWiseProperty.builder()
.propertyValue(AssetPropertyValueProperty.builder()
.value(AssetPropertyVariantProperty.builder()
.booleanValue("booleanValue")
.doubleValue("doubleValue")
.integerValue("integerValue")
.stringValue("stringValue")
.build())
// the properties below are optional
.quality("quality")
.timestamp(AssetPropertyTimestampProperty.builder()
.timeInSeconds("timeInSeconds")
// the properties below are optional
.offsetInNanos("offsetInNanos")
.build())
.build())
// the properties below are optional
.assetId("assetId")
.entryId("entryId")
.propertyAlias("propertyAlias")
.propertyId("propertyId")
.build())
.iotTopicPublish(IotTopicPublishProperty.builder()
.mqttTopic("mqttTopic")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.lambda(LambdaProperty.builder()
.functionArn("functionArn")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.resetTimer(ResetTimerProperty.builder()
.timerName("timerName")
.build())
.setTimer(SetTimerProperty.builder()
.timerName("timerName")
// the properties below are optional
.durationExpression("durationExpression")
.seconds(123)
.build())
.setVariable(SetVariableProperty.builder()
.value("value")
.variableName("variableName")
.build())
.sns(SnsProperty.builder()
.targetArn("targetArn")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.sqs(SqsProperty.builder()
.queueUrl("queueUrl")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.useBase64(false)
.build())
.build()))
.condition("condition")
.build()))
.build())
.onExit(OnExitProperty.builder()
.events(List.of(EventProperty.builder()
.eventName("eventName")
// the properties below are optional
.actions(List.of(ActionProperty.builder()
.clearTimer(ClearTimerProperty.builder()
.timerName("timerName")
.build())
.dynamoDb(DynamoDBProperty.builder()
.hashKeyField("hashKeyField")
.hashKeyValue("hashKeyValue")
.tableName("tableName")
// the properties below are optional
.hashKeyType("hashKeyType")
.operation("operation")
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.payloadField("payloadField")
.rangeKeyField("rangeKeyField")
.rangeKeyType("rangeKeyType")
.rangeKeyValue("rangeKeyValue")
.build())
.dynamoDBv2(DynamoDBv2Property.builder()
.tableName("tableName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.firehose(FirehoseProperty.builder()
.deliveryStreamName("deliveryStreamName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.separator("separator")
.build())
.iotEvents(IotEventsProperty.builder()
.inputName("inputName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.iotSiteWise(IotSiteWiseProperty.builder()
.propertyValue(AssetPropertyValueProperty.builder()
.value(AssetPropertyVariantProperty.builder()
.booleanValue("booleanValue")
.doubleValue("doubleValue")
.integerValue("integerValue")
.stringValue("stringValue")
.build())
// the properties below are optional
.quality("quality")
.timestamp(AssetPropertyTimestampProperty.builder()
.timeInSeconds("timeInSeconds")
// the properties below are optional
.offsetInNanos("offsetInNanos")
.build())
.build())
// the properties below are optional
.assetId("assetId")
.entryId("entryId")
.propertyAlias("propertyAlias")
.propertyId("propertyId")
.build())
.iotTopicPublish(IotTopicPublishProperty.builder()
.mqttTopic("mqttTopic")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.lambda(LambdaProperty.builder()
.functionArn("functionArn")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.resetTimer(ResetTimerProperty.builder()
.timerName("timerName")
.build())
.setTimer(SetTimerProperty.builder()
.timerName("timerName")
// the properties below are optional
.durationExpression("durationExpression")
.seconds(123)
.build())
.setVariable(SetVariableProperty.builder()
.value("value")
.variableName("variableName")
.build())
.sns(SnsProperty.builder()
.targetArn("targetArn")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.sqs(SqsProperty.builder()
.queueUrl("queueUrl")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.useBase64(false)
.build())
.build()))
.condition("condition")
.build()))
.build())
.onInput(OnInputProperty.builder()
.events(List.of(EventProperty.builder()
.eventName("eventName")
// the properties below are optional
.actions(List.of(ActionProperty.builder()
.clearTimer(ClearTimerProperty.builder()
.timerName("timerName")
.build())
.dynamoDb(DynamoDBProperty.builder()
.hashKeyField("hashKeyField")
.hashKeyValue("hashKeyValue")
.tableName("tableName")
// the properties below are optional
.hashKeyType("hashKeyType")
.operation("operation")
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.payloadField("payloadField")
.rangeKeyField("rangeKeyField")
.rangeKeyType("rangeKeyType")
.rangeKeyValue("rangeKeyValue")
.build())
.dynamoDBv2(DynamoDBv2Property.builder()
.tableName("tableName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.firehose(FirehoseProperty.builder()
.deliveryStreamName("deliveryStreamName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.separator("separator")
.build())
.iotEvents(IotEventsProperty.builder()
.inputName("inputName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.iotSiteWise(IotSiteWiseProperty.builder()
.propertyValue(AssetPropertyValueProperty.builder()
.value(AssetPropertyVariantProperty.builder()
.booleanValue("booleanValue")
.doubleValue("doubleValue")
.integerValue("integerValue")
.stringValue("stringValue")
.build())
// the properties below are optional
.quality("quality")
.timestamp(AssetPropertyTimestampProperty.builder()
.timeInSeconds("timeInSeconds")
// the properties below are optional
.offsetInNanos("offsetInNanos")
.build())
.build())
// the properties below are optional
.assetId("assetId")
.entryId("entryId")
.propertyAlias("propertyAlias")
.propertyId("propertyId")
.build())
.iotTopicPublish(IotTopicPublishProperty.builder()
.mqttTopic("mqttTopic")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.lambda(LambdaProperty.builder()
.functionArn("functionArn")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.resetTimer(ResetTimerProperty.builder()
.timerName("timerName")
.build())
.setTimer(SetTimerProperty.builder()
.timerName("timerName")
// the properties below are optional
.durationExpression("durationExpression")
.seconds(123)
.build())
.setVariable(SetVariableProperty.builder()
.value("value")
.variableName("variableName")
.build())
.sns(SnsProperty.builder()
.targetArn("targetArn")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.sqs(SqsProperty.builder()
.queueUrl("queueUrl")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.useBase64(false)
.build())
.build()))
.condition("condition")
.build()))
.transitionEvents(List.of(TransitionEventProperty.builder()
.condition("condition")
.eventName("eventName")
.nextState("nextState")
// the properties below are optional
.actions(List.of(ActionProperty.builder()
.clearTimer(ClearTimerProperty.builder()
.timerName("timerName")
.build())
.dynamoDb(DynamoDBProperty.builder()
.hashKeyField("hashKeyField")
.hashKeyValue("hashKeyValue")
.tableName("tableName")
// the properties below are optional
.hashKeyType("hashKeyType")
.operation("operation")
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.payloadField("payloadField")
.rangeKeyField("rangeKeyField")
.rangeKeyType("rangeKeyType")
.rangeKeyValue("rangeKeyValue")
.build())
.dynamoDBv2(DynamoDBv2Property.builder()
.tableName("tableName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.firehose(FirehoseProperty.builder()
.deliveryStreamName("deliveryStreamName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.separator("separator")
.build())
.iotEvents(IotEventsProperty.builder()
.inputName("inputName")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.iotSiteWise(IotSiteWiseProperty.builder()
.propertyValue(AssetPropertyValueProperty.builder()
.value(AssetPropertyVariantProperty.builder()
.booleanValue("booleanValue")
.doubleValue("doubleValue")
.integerValue("integerValue")
.stringValue("stringValue")
.build())
// the properties below are optional
.quality("quality")
.timestamp(AssetPropertyTimestampProperty.builder()
.timeInSeconds("timeInSeconds")
// the properties below are optional
.offsetInNanos("offsetInNanos")
.build())
.build())
// the properties below are optional
.assetId("assetId")
.entryId("entryId")
.propertyAlias("propertyAlias")
.propertyId("propertyId")
.build())
.iotTopicPublish(IotTopicPublishProperty.builder()
.mqttTopic("mqttTopic")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.lambda(LambdaProperty.builder()
.functionArn("functionArn")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.resetTimer(ResetTimerProperty.builder()
.timerName("timerName")
.build())
.setTimer(SetTimerProperty.builder()
.timerName("timerName")
// the properties below are optional
.durationExpression("durationExpression")
.seconds(123)
.build())
.setVariable(SetVariableProperty.builder()
.value("value")
.variableName("variableName")
.build())
.sns(SnsProperty.builder()
.targetArn("targetArn")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.build())
.sqs(SqsProperty.builder()
.queueUrl("queueUrl")
// the properties below are optional
.payload(PayloadProperty.builder()
.contentExpression("contentExpression")
.type("type")
.build())
.useBase64(false)
.build())
.build()))
.build()))
.build())
.build()))
.build())
.roleArn("roleArn")
// the properties below are optional
.detectorModelDescription("detectorModelDescription")
.detectorModelName("detectorModelName")
.evaluationMethod("evaluationMethod")
.key("key")
.tags(List.of(CfnTag.builder()
.key("key")
.value("value")
.build()))
.build();
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceAn action to be performed when theconditionis TRUE.static interfaceA structure that contains timestamp information.static interfaceA structure that contains value information.static interfaceA structure that contains an asset property value.static final classA fluent builder forCfnDetectorModel.static interfaceInformation needed to clear the timer.static interfaceInformation that defines how a detector operates.static interfaceDefines an action to write to the Amazon DynamoDB table that you created.static interfaceDefines an action to write to the Amazon DynamoDB table that you created.static interfaceSpecifies theactionsto be performed when theconditionevaluates to TRUE.static interfaceSends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.static interfaceSends an AWS IoT Events input, passing in information about the detector model instance and the event that triggered the action.static interfaceSends information about the detector model instance and the event that triggered the action to a specified asset property in AWS IoT SiteWise .static interfaceInformation required to publish the MQTT message through the AWS IoT message broker.static interfaceCalls a Lambda function, passing in information about the detector model instance and the event that triggered the action.static interfaceWhen entering this state, perform theseactionsif theconditionis TRUE.static interfaceWhen exiting this state, perform theseactionsif the specifiedconditionisTRUE.static interfaceSpecifies the actions performed when theconditionevaluates to TRUE.static interfaceInformation needed to configure the payload.static interfaceInformation required to reset the timer.static interfaceInformation needed to set the timer.static interfaceInformation about the variable and its new value.static interfaceInformation required to publish the Amazon SNS message.static interfaceSends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.static interfaceInformation that defines a state of a detector.static interfaceSpecifies the actions performed and the next state entered when aconditionevaluates to TRUE.Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationModeNested classes/interfaces inherited from interface software.amazon.awscdk.core.IConstruct
IConstruct.Jsii$DefaultNested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$DefaultNested classes/interfaces inherited from interface software.amazon.awscdk.core.IInspectable
IInspectable.Jsii$Default, IInspectable.Jsii$Proxy -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe CloudFormation resource type name for this resource class. -
Constructor Summary
ConstructorsModifierConstructorDescriptionCfnDetectorModel(Construct scope, String id, CfnDetectorModelProps props) Create a newAWS::IoTEvents::DetectorModel.protectedCfnDetectorModel(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protectedCfnDetectorModel(software.amazon.jsii.JsiiObjectRef objRef) -
Method Summary
Modifier and TypeMethodDescriptionInformation that defines how a detector operates.A brief description of the detector model.The name of the detector model.Information about the order in which events are evaluated and how actions are executed.getKey()The value used to identify a detector instance.The ARN of the role that grants permission to AWS IoT Events to perform its operations.getTags()An array of key-value pairs to apply to this resource.voidinspect(TreeInspector inspector) Examines the CloudFormation resource and discloses attributes.renderProperties(Map<String, Object> props) voidInformation that defines how a detector operates.voidInformation that defines how a detector operates.voidA brief description of the detector model.voidsetDetectorModelName(String value) The name of the detector model.voidsetEvaluationMethod(String value) Information about the order in which events are evaluated and how actions are executed.voidThe value used to identify a detector instance.voidsetRoleArn(String value) The ARN of the role that grants permission to AWS IoT Events to perform its operations.Methods inherited from class software.amazon.awscdk.core.CfnResource
addDeletionOverride, addDependsOn, addMetadata, addOverride, addPropertyDeletionOverride, addPropertyOverride, applyRemovalPolicy, applyRemovalPolicy, applyRemovalPolicy, getAtt, getCfnOptions, getCfnResourceType, getMetadata, getUpdatedProperites, isCfnResource, shouldSynthesize, toString, validatePropertiesMethods inherited from class software.amazon.awscdk.core.CfnRefElement
getRefMethods inherited from class software.amazon.awscdk.core.CfnElement
getCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalIdMethods inherited from class software.amazon.awscdk.core.Construct
getNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validateMethods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSetMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Field Details
-
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
-
-
Constructor Details
-
CfnDetectorModel
protected CfnDetectorModel(software.amazon.jsii.JsiiObjectRef objRef) -
CfnDetectorModel
protected CfnDetectorModel(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) -
CfnDetectorModel
@Stability(Stable) public CfnDetectorModel(@NotNull Construct scope, @NotNull String id, @NotNull CfnDetectorModelProps props) Create a newAWS::IoTEvents::DetectorModel.- Parameters:
scope-- scope in which this resource is defined.
id-- scoped id of the resource.
props-- resource properties.
-
-
Method Details
-
inspect
Examines the CloudFormation resource and discloses attributes.- Specified by:
inspectin interfaceIInspectable- Parameters:
inspector-- tree inspector to collect and process attributes.
-
renderProperties
@Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String, Object> props) - Overrides:
renderPropertiesin classCfnResource- Parameters:
props- This parameter is required.
-
getCfnProperties
- Overrides:
getCfnPropertiesin classCfnResource
-
getTags
An array of key-value pairs to apply to this resource.For more information, see Tag .
-
getDetectorModelDefinition
Information that defines how a detector operates. -
setDetectorModelDefinition
Information that defines how a detector operates. -
setDetectorModelDefinition
@Stability(Stable) public void setDetectorModelDefinition(@NotNull CfnDetectorModel.DetectorModelDefinitionProperty value) Information that defines how a detector operates. -
getRoleArn
The ARN of the role that grants permission to AWS IoT Events to perform its operations. -
setRoleArn
The ARN of the role that grants permission to AWS IoT Events to perform its operations. -
getDetectorModelDescription
A brief description of the detector model. -
setDetectorModelDescription
A brief description of the detector model. -
getDetectorModelName
The name of the detector model. -
setDetectorModelName
The name of the detector model. -
getEvaluationMethod
Information about the order in which events are evaluated and how actions are executed. -
setEvaluationMethod
Information about the order in which events are evaluated and how actions are executed. -
getKey
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.
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.
-
setKey
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.
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.
-