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 interface
An action to be performed when thecondition
is TRUE.static interface
A structure that contains timestamp information.static interface
A structure that contains value information.static interface
A structure that contains an asset property value.static final class
A fluent builder forCfnDetectorModel
.static interface
Information needed to clear the timer.static interface
Information that defines how a detector operates.static interface
Defines an action to write to the Amazon DynamoDB table that you created.static interface
Defines an action to write to the Amazon DynamoDB table that you created.static interface
Specifies theactions
to be performed when thecondition
evaluates to TRUE.static interface
Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.static interface
Sends an AWS IoT Events input, passing in information about the detector model instance and the event that triggered the action.static interface
Sends information about the detector model instance and the event that triggered the action to a specified asset property in AWS IoT SiteWise .static interface
Information required to publish the MQTT message through the AWS IoT message broker.static interface
Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action.static interface
When entering this state, perform theseactions
if thecondition
is TRUE.static interface
When exiting this state, perform theseactions
if the specifiedcondition
isTRUE
.static interface
Specifies the actions performed when thecondition
evaluates to TRUE.static interface
Information needed to configure the payload.static interface
Information required to reset the timer.static interface
Information needed to set the timer.static interface
Information about the variable and its new value.static interface
Information required to publish the Amazon SNS message.static interface
Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.static interface
Information that defines a state of a detector.static interface
Specifies the actions performed and the next state entered when acondition
evaluates to TRUE.Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationMode
Nested classes/interfaces inherited from interface software.amazon.awscdk.core.IConstruct
IConstruct.Jsii$Default
Nested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$Default
Nested classes/interfaces inherited from interface software.amazon.awscdk.core.IInspectable
IInspectable.Jsii$Default, IInspectable.Jsii$Proxy
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
The CloudFormation resource type name for this resource class. -
Constructor Summary
ConstructorsModifierConstructorDescriptionCfnDetectorModel
(Construct scope, String id, CfnDetectorModelProps props) Create a newAWS::IoTEvents::DetectorModel
.protected
CfnDetectorModel
(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protected
CfnDetectorModel
(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.void
inspect
(TreeInspector inspector) Examines the CloudFormation resource and discloses attributes.renderProperties
(Map<String, Object> props) void
Information that defines how a detector operates.void
Information that defines how a detector operates.void
A brief description of the detector model.void
setDetectorModelName
(String value) The name of the detector model.void
setEvaluationMethod
(String value) Information about the order in which events are evaluated and how actions are executed.void
The value used to identify a detector instance.void
setRoleArn
(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, validateProperties
Methods inherited from class software.amazon.awscdk.core.CfnRefElement
getRef
Methods inherited from class software.amazon.awscdk.core.CfnElement
getCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalId
Methods inherited from class software.amazon.awscdk.core.Construct
getNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validate
Methods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods 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:
inspect
in 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:
renderProperties
in classCfnResource
- Parameters:
props
- This parameter is required.
-
getCfnProperties
- Overrides:
getCfnProperties
in 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.
-