Metadata-Version: 2.1
Name: aws-cdk.aws-pipes-enrichments-alpha
Version: 2.251.0a0
Summary: The CDK Construct Library for Amazon EventBridge Pipes Enrichments
Home-page: https://github.com/aws/aws-cdk
Author: Amazon Web Services
License: Apache-2.0
Project-URL: Source, https://github.com/aws/aws-cdk.git
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: JavaScript
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Typing :: Typed
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved
Classifier: Framework :: AWS CDK
Classifier: Framework :: AWS CDK :: 2
Requires-Python: ~=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: aws-cdk-lib<3.0.0,>=2.251.0
Requires-Dist: aws-cdk.aws-pipes-alpha==2.251.0.a0
Requires-Dist: constructs<11.0.0,>=10.5.0
Requires-Dist: jsii<2.0.0,>=1.127.0
Requires-Dist: publication>=0.0.3
Requires-Dist: typeguard==2.13.3

# Amazon EventBridge Pipes Enrichments Construct Library

<!--BEGIN STABILITY BANNER-->---


![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)

> The APIs of higher level constructs in this module are experimental and under active development.
> They are subject to non-backward compatible changes or removal in any future version. These are
> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be
> announced in the release notes. This means that while you may use them, you may need to update
> your source code when upgrading to a newer version of this package.

---
<!--END STABILITY BANNER-->

EventBridge Pipes Enrichments let you create enrichments for an EventBridge Pipe.

For more details see the service documentation:

[Documentation](https://docs.aws.amazon.com/eventbridge/latest/userguide/pipes-enrichment.html)

## Pipe sources

Pipe enrichments are invoked prior to sending the events to a target of a EventBridge Pipe.

### Lambda function

A Lambda function can be used to enrich events of a pipe.

```python
# source_queue: sqs.Queue
# target_queue: sqs.Queue

# enrichment_function: lambda.Function


enrichment = enrichments.LambdaEnrichment(enrichment_function)

pipe = pipes.Pipe(self, "Pipe",
    source=SomeSource(source_queue),
    enrichment=enrichment,
    target=SomeTarget(target_queue)
)
```

### Step Functions state machine

Step Functions state machine can be used to enrich events of a pipe.

**Note:** EventBridge Pipes only supports Express workflows invoked synchronously.

> Visit [Amazon EventBridge Pipes event enrichment](https://docs.aws.amazon.com/eventbridge/latest/userguide/pipes-enrichment.html) for more details.

```python
# source_queue: sqs.Queue
# target_queue: sqs.Queue

# enrichment_state_machine: stepfunctions.StateMachine


enrichment = enrichments.StepFunctionsEnrichment(enrichment_state_machine)

pipe = pipes.Pipe(self, "Pipe",
    source=SomeSource(source_queue),
    enrichment=enrichment,
    target=SomeTarget(target_queue)
)
```

### API destination

API destination can be used to enrich events of a pipe.

```python
# source_queue: sqs.Queue
# target_queue: sqs.Queue

# api_destination: events.ApiDestination


enrichment = enrichments.ApiDestinationEnrichment(api_destination)

pipe = pipes.Pipe(self, "Pipe",
    source=SomeSource(source_queue),
    enrichment=enrichment,
    target=SomeTarget(target_queue)
)
```

### API Gateway (REST API)

API Gateway can be used to enrich events of a pipe.
Pipes only supports API Gateway REST APIs. HTTP APIs are not supported.

```python
# source_queue: sqs.Queue
# target_queue: sqs.Queue

# rest_api: apigateway.RestApi


enrichment = enrichments.ApiGatewayEnrichment(rest_api)

pipe = pipes.Pipe(self, "Pipe",
    source=SomeSource(source_queue),
    enrichment=enrichment,
    target=SomeTarget(target_queue)
)
```
