package awseventstargets import ( _init_ "github.com/aws/aws-cdk-go/awscdk/v2/jsii" _jsii_ "github.com/aws/jsii-runtime-go/runtime" "github.com/aws/aws-cdk-go/awscdk/v2/awsevents" "github.com/aws/aws-cdk-go/awscdk/v2/awseventstargets/internal" "github.com/aws/aws-cdk-go/awscdk/v2/awslambda" ) // Use an AWS Lambda function as an event rule target. // // Example: // import "github.com/aws/aws-cdk-go/awscdk" // // // fn := lambda.NewFunction(this, jsii.String("MyFunc"), &FunctionProps{ // Runtime: lambda.Runtime_NODEJS_14_X(), // Handler: jsii.String("index.handler"), // Code: lambda.Code_FromInline(jsii.String("exports.handler = handler.toString()")), // }) // // rule := events.NewRule(this, jsii.String("rule"), &RuleProps{ // EventPattern: &EventPattern{ // Source: []*string{ // jsii.String("aws.ec2"), // }, // }, // }) // // queue := sqs.NewQueue(this, jsii.String("Queue")) // // rule.AddTarget(targets.NewLambdaFunction(fn, &LambdaFunctionProps{ // DeadLetterQueue: queue, // // Optional: add a dead letter queue // MaxEventAge: awscdk.Duration_Hours(jsii.Number(2)), // // Optional: set the maxEventAge retry policy // RetryAttempts: jsii.Number(2), // })) // type LambdaFunction interface { awsevents.IRuleTarget // Returns a RuleTarget that can be used to trigger this Lambda as a result from an EventBridge event. Bind(rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig } // The jsii proxy struct for LambdaFunction type jsiiProxy_LambdaFunction struct { internal.Type__awseventsIRuleTarget } func NewLambdaFunction(handler awslambda.IFunction, props *LambdaFunctionProps) LambdaFunction { _init_.Initialize() if err := validateNewLambdaFunctionParameters(handler, props); err != nil { panic(err) } j := jsiiProxy_LambdaFunction{} _jsii_.Create( "aws-cdk-lib.aws_events_targets.LambdaFunction", []interface{}{handler, props}, &j, ) return &j } func NewLambdaFunction_Override(l LambdaFunction, handler awslambda.IFunction, props *LambdaFunctionProps) { _init_.Initialize() _jsii_.Create( "aws-cdk-lib.aws_events_targets.LambdaFunction", []interface{}{handler, props}, l, ) } func (l *jsiiProxy_LambdaFunction) Bind(rule awsevents.IRule, _id *string) *awsevents.RuleTargetConfig { if err := l.validateBindParameters(rule); err != nil { panic(err) } var returns *awsevents.RuleTargetConfig _jsii_.Invoke( l, "bind", []interface{}{rule, _id}, &returns, ) return returns }