package awslambdaeventsources 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/awsdynamodb" "github.com/aws/aws-cdk-go/awscdk/v2/awslambda" ) // Use an Amazon DynamoDB stream as an event source for AWS Lambda. // // Example: // import eventsources "github.com/aws/aws-cdk-go/awscdk" // import "github.com/aws/aws-cdk-go/awscdk" // // var fn function // // table := dynamodb.NewTable(this, jsii.String("Table"), &TableProps{ // PartitionKey: &Attribute{ // Name: jsii.String("id"), // Type: dynamodb.AttributeType_STRING, // }, // Stream: dynamodb.StreamViewType_NEW_IMAGE, // }) // fn.AddEventSource(eventsources.NewDynamoEventSource(table, &DynamoEventSourceProps{ // StartingPosition: lambda.StartingPosition_LATEST, // Filters: []map[string]interface{}{ // lambda.FilterCriteria_Filter(map[string]interface{}{ // "eventName": lambda.FilterRule_isEqual(jsii.String("INSERT")), // }), // }, // })) // type DynamoEventSource interface { StreamEventSource // The ARN for this EventSourceMapping. EventSourceMappingArn() *string // The identifier for this EventSourceMapping. EventSourceMappingId() *string Props() *StreamEventSourceProps // Called by `lambda.addEventSource` to allow the event source to bind to this function. Bind(target awslambda.IFunction) EnrichMappingOptions(options *awslambda.EventSourceMappingOptions) *awslambda.EventSourceMappingOptions } // The jsii proxy struct for DynamoEventSource type jsiiProxy_DynamoEventSource struct { jsiiProxy_StreamEventSource } func (j *jsiiProxy_DynamoEventSource) EventSourceMappingArn() *string { var returns *string _jsii_.Get( j, "eventSourceMappingArn", &returns, ) return returns } func (j *jsiiProxy_DynamoEventSource) EventSourceMappingId() *string { var returns *string _jsii_.Get( j, "eventSourceMappingId", &returns, ) return returns } func (j *jsiiProxy_DynamoEventSource) Props() *StreamEventSourceProps { var returns *StreamEventSourceProps _jsii_.Get( j, "props", &returns, ) return returns } func NewDynamoEventSource(table awsdynamodb.ITable, props *DynamoEventSourceProps) DynamoEventSource { _init_.Initialize() if err := validateNewDynamoEventSourceParameters(table, props); err != nil { panic(err) } j := jsiiProxy_DynamoEventSource{} _jsii_.Create( "aws-cdk-lib.aws_lambda_event_sources.DynamoEventSource", []interface{}{table, props}, &j, ) return &j } func NewDynamoEventSource_Override(d DynamoEventSource, table awsdynamodb.ITable, props *DynamoEventSourceProps) { _init_.Initialize() _jsii_.Create( "aws-cdk-lib.aws_lambda_event_sources.DynamoEventSource", []interface{}{table, props}, d, ) } func (d *jsiiProxy_DynamoEventSource) Bind(target awslambda.IFunction) { if err := d.validateBindParameters(target); err != nil { panic(err) } _jsii_.InvokeVoid( d, "bind", []interface{}{target}, ) } func (d *jsiiProxy_DynamoEventSource) EnrichMappingOptions(options *awslambda.EventSourceMappingOptions) *awslambda.EventSourceMappingOptions { if err := d.validateEnrichMappingOptionsParameters(options); err != nil { panic(err) } var returns *awslambda.EventSourceMappingOptions _jsii_.Invoke( d, "enrichMappingOptions", []interface{}{options}, &returns, ) return returns }