@aws-cdk_aws-iotevents-alpha.DetectorModel

class DetectorModel (construct) ๐Ÿ”น

LanguageType name
.NETAmazon.CDK.AWS.IoTEvents.Alpha.DetectorModel
Gogithub.com/aws/aws-cdk-go/awscdkioteventsalpha/v2#DetectorModel
Javasoftware.amazon.awscdk.services.iotevents.alpha.DetectorModel
Pythonaws_cdk.aws_iotevents_alpha.DetectorModel
TypeScript (source)@aws-cdk/aws-iotevents-alpha ยป DetectorModel

Implements IConstruct, IDependable, IResource, IDetectorModel

Defines an AWS IoT Events detector model in this stack.

Example

import * as iotevents from '@aws-cdk/aws-iotevents-alpha';
import * as actions from '@aws-cdk/aws-iotevents-actions-alpha';
import * as lambda from 'aws-cdk-lib/aws-lambda';

declare const func: lambda.IFunction;

const input = new iotevents.Input(this, 'MyInput', {
  inputName: 'my_input', // optional
  attributeJsonPaths: ['payload.deviceId', 'payload.temperature'],
});

const warmState = new iotevents.State({
  stateName: 'warm',
  onEnter: [{
    eventName: 'test-enter-event',
    condition: iotevents.Expression.currentInput(input),
    actions: [new actions.LambdaInvokeAction(func)], // optional
  }],
  onInput: [{ // optional
    eventName: 'test-input-event',
    actions: [new actions.LambdaInvokeAction(func)],
  }],
  onExit: [{ // optional
    eventName: 'test-exit-event',
    actions: [new actions.LambdaInvokeAction(func)],
  }],
});
const coldState = new iotevents.State({
  stateName: 'cold',
});

// transit to coldState when temperature is less than 15
warmState.transitionTo(coldState, {
  eventName: 'to_coldState', // optional property, default by combining the names of the States
  when: iotevents.Expression.lt(
    iotevents.Expression.inputAttribute(input, 'payload.temperature'),
    iotevents.Expression.fromString('15'),
  ),
  executing: [new actions.LambdaInvokeAction(func)], // optional
});
// transit to warmState when temperature is greater than or equal to 15
coldState.transitionTo(warmState, {
  when: iotevents.Expression.gte(
    iotevents.Expression.inputAttribute(input, 'payload.temperature'),
    iotevents.Expression.fromString('15'),
  ),
});

new iotevents.DetectorModel(this, 'MyDetectorModel', {
  detectorModelName: 'test-detector-model', // optional
  description: 'test-detector-model-description', // optional property, default is none
  evaluationMethod: iotevents.EventEvaluation.SERIAL, // optional property, default is iotevents.EventEvaluation.BATCH
  detectorKey: 'payload.deviceId', // optional property, default is none and single detector instance will be created and all inputs will be routed to it
  initialState: warmState,
});

Initializer

new DetectorModel(scope: Construct, id: string, props: DetectorModelProps)

Parameters

  • scope Construct
  • id string
  • props DetectorModelProps

Construct Props

NameTypeDescription
initialState๐Ÿ”นStateThe state that is entered at the creation of each detector.
description?๐Ÿ”นstringA brief description of the detector model.
detectorKey?๐Ÿ”นstringThe value used to identify a detector instance.
detectorModelName?๐Ÿ”นstringThe name of the detector model.
evaluationMethod?๐Ÿ”นEventEvaluationInformation about the order in which events are evaluated and how actions are executed.
role?๐Ÿ”นIRoleThe role that grants permission to AWS IoT Events to perform its operations.

initialState๐Ÿ”น

Type: State

The state that is entered at the creation of each detector.


description?๐Ÿ”น

Type: string (optional, default: none)

A brief description of the detector model.


detectorKey?๐Ÿ”น

Type: string (optional, default: none (single detector instance will be created and all inputs will be routed to it))

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.


detectorModelName?๐Ÿ”น

Type: string (optional, default: CloudFormation will generate a unique name of the detector model)

The name of the detector model.


evaluationMethod?๐Ÿ”น

Type: EventEvaluation (optional, default: EventEvaluation.BATCH)

Information about the order in which events are evaluated and how actions are executed.

When setting to SERIAL, variables are updated and event conditions are evaluated in the order that the events are defined. When setting to BATCH, variables within a state are updated and events within a state are performed only after all event conditions are evaluated.


role?๐Ÿ”น

Type: IRole (optional, default: a role will be created with default permissions)

The role that grants permission to AWS IoT Events to perform its operations.

Properties

NameTypeDescription
detectorModelName๐Ÿ”นstringThe name of the detector model.
env๐Ÿ”นResourceEnvironmentThe environment this resource belongs to.
node๐Ÿ”นNodeThe tree node.
stack๐Ÿ”นStackThe stack in which this resource is defined.

detectorModelName๐Ÿ”น

Type: string

The name of the detector model.


env๐Ÿ”น

Type: ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.


node๐Ÿ”น

Type: Node

The tree node.


stack๐Ÿ”น

Type: Stack

The stack in which this resource is defined.

Methods

NameDescription
applyRemovalPolicy(policy)๐Ÿ”นApply the given removal policy to this resource.
toString()๐Ÿ”นReturns a string representation of this construct.
static fromDetectorModelName(scope, id, detectorModelName)๐Ÿ”นImport an existing detector model.

applyRemovalPolicy(policy)๐Ÿ”น

public applyRemovalPolicy(policy: RemovalPolicy): void

Parameters

  • policy RemovalPolicy

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).


toString()๐Ÿ”น

public toString(): string

Returns

  • string

Returns a string representation of this construct.


static fromDetectorModelName(scope, id, detectorModelName)๐Ÿ”น

public static fromDetectorModelName(scope: Construct, id: string, detectorModelName: string): IDetectorModel

Parameters

  • scope Construct
  • id string
  • detectorModelName string

Returns

  • IDetectorModel

Import an existing detector model.