@aws-cdk_aws-iotevents-alpha.TransitionOptions

interface TransitionOptions ๐Ÿ”น

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

Properties for options of state transition.

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,
});

Properties

NameTypeDescription
when๐Ÿ”นExpressionThe condition that is used to determine to cause the state transition and the actions.
eventName?๐Ÿ”นstringThe name of the event.
executing?๐Ÿ”นIAction[]The actions to be performed with the transition.

when๐Ÿ”น

Type: Expression

The condition that is used to determine to cause the state transition and the actions.

When this was evaluated to true, the state transition and the actions are triggered.


eventName?๐Ÿ”น

Type: string (optional, default: string combining the names of the States as ${originStateName}_to_${targetStateName})

The name of the event.


executing?๐Ÿ”น

Type: IAction[] (optional, default: no actions will be performed)

The actions to be performed with the transition.