package awscdkioteventsalpha // Properties for defining an AWS IoT Events input. // // Example: // import "github.com/aws/aws-cdk-go/awscdkioteventsalpha" // import "github.com/aws/aws-cdk-go/awscdkioteventsactionsalpha" // import lambda "github.com/aws/aws-cdk-go/awscdk" // // var func iFunction // // // input := iotevents.NewInput(this, jsii.String("MyInput"), &InputProps{ // InputName: jsii.String("my_input"), // // optional // AttributeJsonPaths: []*string{ // jsii.String("payload.deviceId"), // jsii.String("payload.temperature"), // }, // }) // // warmState := iotevents.NewState(&StateProps{ // StateName: jsii.String("warm"), // OnEnter: []event{ // &event{ // EventName: jsii.String("test-enter-event"), // Condition: iotevents.Expression_CurrentInput(input), // Actions: []iAction{ // actions.NewLambdaInvokeAction(func), // }, // }, // }, // OnInput: []*event{ // &event{ // // optional // EventName: jsii.String("test-input-event"), // Actions: []*iAction{ // actions.NewLambdaInvokeAction(func), // }, // }, // }, // OnExit: []*event{ // &event{ // // optional // EventName: jsii.String("test-exit-event"), // Actions: []*iAction{ // actions.NewLambdaInvokeAction(func), // }, // }, // }, // }) // coldState := iotevents.NewState(&StateProps{ // StateName: jsii.String("cold"), // }) // // // transit to coldState when temperature is less than 15 // warmState.TransitionTo(coldState, &TransitionOptions{ // EventName: jsii.String("to_coldState"), // // optional property, default by combining the names of the States // When: iotevents.Expression_Lt(iotevents.Expression_InputAttribute(input, jsii.String("payload.temperature")), iotevents.Expression_FromString(jsii.String("15"))), // Executing: []*iAction{ // actions.NewLambdaInvokeAction(func), // }, // }) // // transit to warmState when temperature is greater than or equal to 15 // coldState.TransitionTo(warmState, &TransitionOptions{ // When: iotevents.Expression_Gte(iotevents.Expression_*InputAttribute(input, jsii.String("payload.temperature")), iotevents.Expression_*FromString(jsii.String("15"))), // }) // // iotevents.NewDetectorModel(this, jsii.String("MyDetectorModel"), &DetectorModelProps{ // DetectorModelName: jsii.String("test-detector-model"), // // optional // Description: jsii.String("test-detector-model-description"), // // optional property, default is none // EvaluationMethod: iotevents.EventEvaluation_SERIAL, // // optional property, default is iotevents.EventEvaluation.BATCH // DetectorKey: jsii.String("payload.deviceId"), // // optional property, default is none and single detector instance will be created and all inputs will be routed to it // InitialState: warmState, // }) // // Experimental. type InputProps struct { // An expression that specifies an attribute-value pair in a JSON structure. // // Use this to specify an attribute from the JSON payload that is made available // by the input. Inputs are derived from messages sent to AWS IoT Events (BatchPutMessage). // Each such message contains a JSON payload. The attribute (and its paired value) // specified here are available for use in the condition expressions used by detectors. // Experimental. AttributeJsonPaths *[]*string `field:"required" json:"attributeJsonPaths" yaml:"attributeJsonPaths"` // The name of the input. // Experimental. InputName *string `field:"optional" json:"inputName" yaml:"inputName"` }