appmod-catalog-blueprints 1.0.1__py3-none-any.whl → 1.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- appmod_catalog_blueprints/__init__.py +1150 -566
- appmod_catalog_blueprints/_jsii/__init__.py +2 -2
- appmod_catalog_blueprints/_jsii/cdk-appmod-catalog-blueprints@1.2.0.jsii.tgz +0 -0
- appmod_catalog_blueprints-1.2.0.dist-info/METADATA +191 -0
- appmod_catalog_blueprints-1.2.0.dist-info/RECORD +9 -0
- appmod_catalog_blueprints/_jsii/cdk-appmod-catalog-blueprints@1.0.1.jsii.tgz +0 -0
- appmod_catalog_blueprints-1.0.1.dist-info/METADATA +0 -258
- appmod_catalog_blueprints-1.0.1.dist-info/RECORD +0 -9
- {appmod_catalog_blueprints-1.0.1.dist-info → appmod_catalog_blueprints-1.2.0.dist-info}/LICENSE +0 -0
- {appmod_catalog_blueprints-1.0.1.dist-info → appmod_catalog_blueprints-1.2.0.dist-info}/WHEEL +0 -0
- {appmod_catalog_blueprints-1.0.1.dist-info → appmod_catalog_blueprints-1.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,226 +1,159 @@
|
|
|
1
1
|
r'''
|
|
2
|
-
|
|
2
|
+
---
|
|
3
3
|
|
|
4
|
-
Serverless infrastructure components for modern application development. This catalog provides composable building blocks organized by business use cases, enabling rapid deployment of secure, scalable solutions.
|
|
5
4
|
|
|
6
|
-
##
|
|
5
|
+
## title: Introduction
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
# AppMod Catalog Blueprints
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
Application Modernization (AppMod) Catalog Blueprints is a comprehensive library of production-ready, use case-driven infrastructure blueprints in the form of composable multi-layered building blocks built using [AWS Cloud Development Kit](https://aws.amazon.com/cdk/) (CDK) [L3 constructs](https://docs.aws.amazon.com/cdk/v2/guide/constructs.html). These blueprints offer use case-driven solutions with multiple implementation pathways and industry-specific implementations that are designed to accelerate serverless development and modernization on AWS.
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
### 1. 📄 Document Processing
|
|
15
|
-
|
|
16
|
-
Serverless document processing pipeline with AI-powered classification, extraction, and workflow orchestration.
|
|
17
|
-
|
|
18
|
-
**Architecture:**
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
S3 Upload → SQS → Step Functions → Bedrock Models → DynamoDB
|
|
22
|
-
↓ ↓ ↓ ↓ ↓
|
|
23
|
-
[Storage] [Buffer] [Workflow] [AI Processing] [Results]
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
**Key Features:**
|
|
27
|
-
|
|
28
|
-
* **Event-Driven Pipeline**: S3 upload triggers SQS → Step Functions workflow
|
|
29
|
-
* **AI-Powered Processing**: Amazon Bedrock for document classification and extraction
|
|
30
|
-
* **Multi-format Support**: PDF, JPG, PNG document processing
|
|
31
|
-
* **Flexible Workflows**: Base construct with extensible processing steps
|
|
32
|
-
* **State Management**: DynamoDB for workflow state and document metadata
|
|
33
|
-
* **Error Handling**: Dead letter queues and retry mechanisms with observability
|
|
34
|
-
|
|
35
|
-
**Available Constructs:**
|
|
36
|
-
|
|
37
|
-
**BaseDocumentProcessing** - Foundation construct providing:
|
|
38
|
-
|
|
39
|
-
* S3 bucket with organized prefixes (raw/, processed/, failed/)
|
|
40
|
-
* SQS queue with configurable visibility timeout and DLQ
|
|
41
|
-
* DynamoDB table for document metadata and workflow state
|
|
42
|
-
* Step Functions workflow with customizable processing steps
|
|
43
|
-
* Built-in observability and monitoring
|
|
44
|
-
|
|
45
|
-
**BedrockDocumentProcessing** - AI-powered document analysis:
|
|
46
|
-
|
|
47
|
-
* Document classification using Claude 3.5 Sonnet
|
|
48
|
-
* Entity extraction and content analysis
|
|
49
|
-
* Configurable prompts for classification and extraction
|
|
50
|
-
* Optional enrichment Lambda function integration
|
|
51
|
-
* Automatic workflow state management
|
|
52
|
-
|
|
53
|
-
**AgenticDocumentProcessing** - Multi-agent document workflows:
|
|
54
|
-
|
|
55
|
-
* Advanced multi-step processing with agent coordination
|
|
56
|
-
* Complex document understanding and analysis
|
|
57
|
-
* Configurable agent behaviors and processing flows
|
|
11
|
+
Built with [JSII](https://aws.github.io/jsii/), these constructs are available in TypeScript, Python, Java, and .NET, enabling teams to use their preferred programming language while leveraging the same proven infrastructure patterns.
|
|
58
12
|
|
|
59
|
-
|
|
13
|
+
Get started by exploring the [use case constructs](use-cases) and deployable [examples](examples). Learn more from [documentation](https://cdklabs.github.io/cdk-appmod-catalog-blueprints/) and [Construct Hub](https://constructs.dev/packages/@cdklabs/cdk-appmod-catalog-blueprints).
|
|
60
14
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
**Architecture:**
|
|
15
|
+
## Core Use Cases
|
|
64
16
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
[
|
|
69
|
-
```
|
|
17
|
+
| Use Case | Description | Quick Deploy Examples |
|
|
18
|
+
|----------|-------------|----------------------|
|
|
19
|
+
| **[Document Processing](./use-cases/document-processing/)** | AI-powered document processing workflows with classification, extraction, and agentic capabilities | • [Bedrock Document Processing](./examples/document-processing/bedrock-document-processing/)<br/>• [Agentic Document Processing](./examples/document-processing/agentic-document-processing/)<br/>• [Full-Stack Insurance Claims Processing Web Application](./examples/document-processing/doc-processing-fullstack-webapp/) |
|
|
20
|
+
| **[Web Application](./use-cases/webapp/)** | Static web application hosting with global CDN, security headers, and SPA support | • [Full-Stack Insurance Claims Processing Web Application](./examples/document-processing/doc-processing-fullstack-webapp/) |
|
|
70
21
|
|
|
71
|
-
|
|
22
|
+
## Foundation and Utilities
|
|
72
23
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
* **Access Logging**: CloudFront access logs for analytics
|
|
24
|
+
| Component | Description |
|
|
25
|
+
|-----------|-------------|
|
|
26
|
+
| **[Observability & Monitoring](./use-cases/utilities/observability/)** | Comprehensive monitoring, logging, and alerting with automatic property injection and Lambda Powertools integration |
|
|
27
|
+
| **[Data Masking](./use-cases/utilities/lambda_layers/data-masking/)** | Lambda layer for data masking and PII protection in serverless applications |
|
|
28
|
+
| **[Infrastructure Foundation](./use-cases/framework/)** | Core infrastructure components and utilities for building scalable applications |
|
|
79
29
|
|
|
80
|
-
|
|
30
|
+
## Key Design Principles
|
|
81
31
|
|
|
82
|
-
|
|
32
|
+
AppMod Catalog Blueprints is built on Object-Oriented Programming (OOP) principles, providing a structured approach to infrastructure development through core design concepts:
|
|
83
33
|
|
|
84
|
-
|
|
85
|
-
* CloudFront distribution with optimized caching
|
|
86
|
-
* Security headers function for OWASP compliance
|
|
87
|
-
* Optional custom domain and SSL certificate
|
|
88
|
-
* Access logging and monitoring integration
|
|
34
|
+
### Composable Architecture
|
|
89
35
|
|
|
90
|
-
|
|
36
|
+
Build complex enterprise systems by combining independent, reusable components with standardized interfaces.
|
|
91
37
|
|
|
92
|
-
|
|
38
|
+
* **Independent components** with clear interfaces and loose coupling for maximum flexibility
|
|
39
|
+
* **Mix and match building blocks** to create custom solutions across different contexts and use cases
|
|
40
|
+
* **Scalable composition** that maintains consistency while enabling incremental adoption and gradual modernization
|
|
93
41
|
|
|
94
|
-
|
|
42
|
+
### Multi-Layered Building Blocks Architecture
|
|
95
43
|
|
|
96
|
-
|
|
97
|
-
* **Lambda Powertools**: Structured logging, metrics, and tracing for Python/Node.js
|
|
98
|
-
* **CloudWatch Integration**: Dashboards, alarms, and custom metrics
|
|
99
|
-
* **X-Ray Tracing**: End-to-end request flow visualization
|
|
100
|
-
* **Bedrock Monitoring**: Specialized observability for Amazon Bedrock workloads
|
|
101
|
-
* **Cost Optimization**: Intelligent log retention and metric filtering
|
|
44
|
+
Our blueprints use a multi-layered architecture that bridges the gap between business requirements and technical implementation:
|
|
102
45
|
|
|
103
|
-
|
|
46
|
+
| Layer | Implementation Type | Purpose | Key Features |
|
|
47
|
+
|-------|-------------------|---------|--------------|
|
|
48
|
+
| **Infrastructure Foundation** | Abstract base classes | Shared infrastructure components and common services | • Standardized interfaces and contracts<br/>• Extensible foundation for custom implementations |
|
|
49
|
+
| **General Use Case Implementation** | Concrete implementation classes | Production-ready implementations for common patterns across industries | • Configurable parameters for different environments<br/>• Abstract method implementations with general-purpose solutions |
|
|
50
|
+
| **Industry-Aligned Implementation** | Configured implementation examples | Pre-configured solutions for specific business domains | • Industry-specific validation rules and workflows<br/>• Built-in compliance requirements and domain expertise |
|
|
104
51
|
|
|
105
|
-
|
|
52
|
+
### Production-Ready with Smart Defaults
|
|
106
53
|
|
|
107
|
-
|
|
108
|
-
* `StateMachineObservabilityPropertyInjector` - Enables logging for Step Functions
|
|
109
|
-
* `CloudfrontDistributionObservabilityPropertyInjector` - CDN monitoring and logging
|
|
54
|
+
AppMod Catalog Blueprints serves both **rapid deployment** needs (for teams wanting immediate solutions) and **custom development** requirements (for teams needing tailored implementations), providing flexibility without compromising on production readiness.
|
|
110
55
|
|
|
111
|
-
|
|
56
|
+
| Approach | Best For | Capabilities |
|
|
57
|
+
|----------|----------|--------------|
|
|
58
|
+
| **Out-of-the-Box Deployment** | Rapid deployment and evaluation | • Deploy complete solutions in minutes using examples for immediate value<br/>• Pre-configured security, monitoring, and best practices for production readiness<br/>• Sensible defaults with production-ready configurations that work immediately<br/>• No infrastructure boilerplate required with minimal learning curve |
|
|
59
|
+
| **Intelligent Customization** | Custom development and integration | • Override defaults to modify behavior without changing core implementation<br/>• Enable/disable optional features to meet specific requirements<br/>• Inject custom logic at predefined extension points while maintaining production readiness<br/>• Configure parameters for different environments and use cases |
|
|
112
60
|
|
|
113
|
-
|
|
114
|
-
* `PowertoolsConfig` - Lambda Powertools configuration for structured logging and metrics
|
|
115
|
-
* `Observable` interface - Standardized observability contract for constructs
|
|
61
|
+
### Security & Compliance
|
|
116
62
|
|
|
117
|
-
|
|
63
|
+
All components include enterprise-grade security by default:
|
|
118
64
|
|
|
119
|
-
*
|
|
65
|
+
* **CDK Nag Integration**: Automated security compliance checking
|
|
66
|
+
* **AWS Well-Architected**: Security, reliability, and performance best practices
|
|
67
|
+
* **Encryption & IAM**: At-rest/in-transit encryption with least-privilege access
|
|
68
|
+
* **Compliance Reports**: Generate reports with `npm test -- --testPathPattern="nag.test.ts"`
|
|
120
69
|
|
|
121
|
-
|
|
70
|
+
## Essential Commands
|
|
122
71
|
|
|
123
|
-
|
|
72
|
+
### Environment Setup
|
|
124
73
|
|
|
125
|
-
|
|
74
|
+
```bash
|
|
75
|
+
# Clone the repository
|
|
76
|
+
git clone https://github.com/cdklabs/cdk-appmod-catalog-blueprints.git
|
|
126
77
|
|
|
127
|
-
|
|
78
|
+
# Configure AWS credentials and region
|
|
79
|
+
aws configure
|
|
80
|
+
# OR set AWS profile: export AWS_PROFILE=your-profile-name
|
|
128
81
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
82
|
+
# Bootstrap your AWS environment (one-time setup)
|
|
83
|
+
npx cdk bootstrap
|
|
84
|
+
```
|
|
132
85
|
|
|
133
|
-
|
|
86
|
+
### Quick Start
|
|
134
87
|
|
|
135
|
-
|
|
136
|
-
* `LambdaIamUtils` - Utility functions for Lambda IAM role and policy management
|
|
137
|
-
* `DefaultRuntimes` - Standardized Lambda runtime configurations
|
|
88
|
+
Deploy a working example in **5 minutes**:
|
|
138
89
|
|
|
139
|
-
|
|
90
|
+
```bash
|
|
91
|
+
# Navigate to any example and deploy
|
|
92
|
+
cd examples/document-processing/agentic-document-processing
|
|
93
|
+
npm install
|
|
94
|
+
npm run deploy
|
|
95
|
+
```
|
|
140
96
|
|
|
141
|
-
|
|
97
|
+
### Build & Deploy Project
|
|
142
98
|
|
|
143
|
-
|
|
99
|
+
```bash
|
|
100
|
+
# Build entire project
|
|
101
|
+
npx projen build
|
|
144
102
|
|
|
145
|
-
|
|
103
|
+
# Deploy with specific profile/region
|
|
104
|
+
npx cdk deploy --require-approval never
|
|
146
105
|
|
|
147
|
-
|
|
106
|
+
# Update CDK CLI if needed
|
|
107
|
+
npm install aws-cdk@latest
|
|
108
|
+
```
|
|
148
109
|
|
|
149
|
-
|
|
110
|
+
### Development
|
|
150
111
|
|
|
151
|
-
|
|
112
|
+
```bash
|
|
113
|
+
# Run all tests
|
|
114
|
+
npm test
|
|
152
115
|
|
|
153
|
-
|
|
116
|
+
# Run specific test pattern
|
|
117
|
+
npm test -- --testPathPattern="document-processing"
|
|
154
118
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
├── use-cases/
|
|
158
|
-
│ ├── document-processing/ # Document processing components
|
|
159
|
-
│ │ ├── base-document-processing.ts
|
|
160
|
-
│ │ ├── bedrock-document-processing.ts
|
|
161
|
-
│ │ ├── agentic-document-processing.ts
|
|
162
|
-
│ │ ├── resources/ # Lambda functions
|
|
163
|
-
│ │ └── tests/ # Unit and CDK Nag tests
|
|
164
|
-
│ ├── webapp/ # Web application components
|
|
165
|
-
│ │ ├── frontend-construct.ts
|
|
166
|
-
│ │ └── tests/ # Unit and CDK Nag tests
|
|
167
|
-
│ ├── framework/ # Core infrastructure
|
|
168
|
-
│ │ ├── foundation/ # Network, access logs, EventBridge
|
|
169
|
-
│ │ ├── quickstart/ # Base quickstart patterns
|
|
170
|
-
│ │ └── custom-resource/ # Default runtimes
|
|
171
|
-
│ └── utilities/
|
|
172
|
-
│ ├── observability/ # Monitoring components
|
|
173
|
-
│ ├── lambda_layers/ # Shared Lambda layers
|
|
174
|
-
│ ├── data-loader.ts # Custom resource for data loading
|
|
175
|
-
│ └── lambda-iam-utils.ts # IAM utilities
|
|
176
|
-
├── examples/ # Ready-to-deploy examples
|
|
177
|
-
│ └── document-processing/
|
|
178
|
-
│ ├── bedrock-document-processing/
|
|
179
|
-
│ ├── agentic-document-processing/
|
|
180
|
-
│ └── doc-processing-fullstack-webapp/
|
|
181
|
-
└── README.md
|
|
119
|
+
# Generate CDK Nag compliance reports
|
|
120
|
+
npm test -- --testPathPattern="nag.test.ts"
|
|
182
121
|
```
|
|
183
122
|
|
|
184
|
-
##
|
|
123
|
+
## How to Use This Library
|
|
185
124
|
|
|
186
|
-
|
|
125
|
+
### Quick Start (Deploy Examples)
|
|
187
126
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
* **IAM Least Privilege**: Minimal required permissions
|
|
192
|
-
* **VPC Isolation**: Private subnets and security groups
|
|
127
|
+
1. **Browse Examples**: Start with the [examples](./examples/) folder to see working implementations
|
|
128
|
+
2. **Deploy & Test**: Use `npm run deploy` in any example to get a working system in minutes
|
|
129
|
+
3. **Customize**: Modify example parameters to fit your specific requirements
|
|
193
130
|
|
|
194
|
-
|
|
131
|
+
### Using Individual Constructs
|
|
195
132
|
|
|
196
|
-
|
|
133
|
+
1. **Import Constructs**: Add `@cdklabs/appmod-catalog-blueprints` to your CDK project
|
|
134
|
+
2. **Choose Your Layer**: Pick the right abstraction level for your needs
|
|
135
|
+
3. **Configure**: Use the configuration options documented in each construct
|
|
197
136
|
|
|
198
|
-
|
|
137
|
+
### Understanding the Layers
|
|
199
138
|
|
|
200
|
-
|
|
139
|
+
**Foundation Layer** (`use-cases/framework/`, `use-cases/utilities/`)
|
|
201
140
|
|
|
202
|
-
* **
|
|
203
|
-
* **
|
|
204
|
-
* **Full-Stack Document Processing Webapp**: Complete document processing application with frontend interface
|
|
141
|
+
* **When to use**: Building custom solutions or need specific infrastructure components
|
|
142
|
+
* **Components**: VPC networking, observability utilities, data management tools, etc.
|
|
205
143
|
|
|
206
|
-
|
|
144
|
+
**Use Case Layer** (`use-cases/document-processing/`, `use-cases/webapp/`)
|
|
207
145
|
|
|
208
|
-
|
|
146
|
+
* **When to use**: Need proven patterns for common business problems
|
|
147
|
+
* **Components**: Document processing workflows, web application hosting, data transformation patterns, etc.
|
|
209
148
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
* **
|
|
213
|
-
* **
|
|
214
|
-
* **AI/ML**: Amazon Bedrock, Textract
|
|
215
|
-
* **Monitoring**: CloudWatch, X-Ray
|
|
216
|
-
* **Security**: KMS, Secrets Manager, IAM
|
|
149
|
+
**Example Layer** (`examples/`)
|
|
150
|
+
|
|
151
|
+
* **When to use**: Want complete, deployable solutions
|
|
152
|
+
* **Components**: Industry-specific configurations, end-to-end applications, reference implementations, etc.
|
|
217
153
|
|
|
218
154
|
## Contributing
|
|
219
155
|
|
|
220
|
-
|
|
221
|
-
2. **Follow Structure**: Include constructs, tests, and documentation
|
|
222
|
-
3. **Security First**: All components must pass CDK Nag checks
|
|
223
|
-
4. **Include Monitoring**: Include monitoring, error handling, and cost optimization
|
|
156
|
+
See [CONTRIBUTING.md](https://github.com/cdklabs/cdk-appmod-catalog-blueprints/blob/main/CONTRIBUTING.md) for detailed guidelines on how to contribute to this project.
|
|
224
157
|
|
|
225
158
|
## Disclaimer
|
|
226
159
|
|
|
@@ -228,7 +161,7 @@ These application solutions are not supported products in their own right, but e
|
|
|
228
161
|
|
|
229
162
|
## License
|
|
230
163
|
|
|
231
|
-
Apache License 2.0 - see [LICENSE](
|
|
164
|
+
Apache License 2.0 - see [LICENSE](https://github.com/cdklabs/cdk-appmod-catalog-blueprints/blob/main/LICENSE) file for details.
|
|
232
165
|
'''
|
|
233
166
|
from pkgutil import extend_path
|
|
234
167
|
__path__ = extend_path(__path__, __name__)
|
|
@@ -281,7 +214,6 @@ import aws_cdk.aws_s3 as _aws_cdk_aws_s3_ceddda9d
|
|
|
281
214
|
import aws_cdk.aws_s3_assets as _aws_cdk_aws_s3_assets_ceddda9d
|
|
282
215
|
import aws_cdk.aws_s3_deployment as _aws_cdk_aws_s3_deployment_ceddda9d
|
|
283
216
|
import aws_cdk.aws_secretsmanager as _aws_cdk_aws_secretsmanager_ceddda9d
|
|
284
|
-
import aws_cdk.aws_sqs as _aws_cdk_aws_sqs_ceddda9d
|
|
285
217
|
import aws_cdk.aws_stepfunctions as _aws_cdk_aws_stepfunctions_ceddda9d
|
|
286
218
|
import aws_cdk.aws_stepfunctions_tasks as _aws_cdk_aws_stepfunctions_tasks_ceddda9d
|
|
287
219
|
import aws_cdk.custom_resources as _aws_cdk_custom_resources_ceddda9d
|
|
@@ -612,6 +544,7 @@ class AdditionalDistributionProps:
|
|
|
612
544
|
name_mapping={
|
|
613
545
|
"agent_system_prompt": "agentSystemPrompt",
|
|
614
546
|
"lambda_layers": "lambdaLayers",
|
|
547
|
+
"tools_bucket": "toolsBucket",
|
|
615
548
|
"tools_location": "toolsLocation",
|
|
616
549
|
},
|
|
617
550
|
)
|
|
@@ -621,12 +554,14 @@ class AgentProps:
|
|
|
621
554
|
*,
|
|
622
555
|
agent_system_prompt: typing.Optional[builtins.str] = None,
|
|
623
556
|
lambda_layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.LayerVersion]] = None,
|
|
557
|
+
tools_bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
624
558
|
tools_location: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
625
559
|
) -> None:
|
|
626
560
|
'''
|
|
627
|
-
:param agent_system_prompt:
|
|
628
|
-
:param lambda_layers:
|
|
629
|
-
:param
|
|
561
|
+
:param agent_system_prompt: (experimental) System prompt for the agent.
|
|
562
|
+
:param lambda_layers: (experimental) If there are python dependencies that are needed by the provided tools, provide the Lambda Layers with the dependencies.
|
|
563
|
+
:param tools_bucket: (experimental) Bucket where the tools are located in Primarily use to grant read permission to the processing agent to access the tools. Default: No extra IAM permissions would be automatically assigned to the processing agent.
|
|
564
|
+
:param tools_location: (experimental) S3 path where the tools are located. The agent would dynamically load the tools
|
|
630
565
|
|
|
631
566
|
:stability: experimental
|
|
632
567
|
'''
|
|
@@ -634,18 +569,22 @@ class AgentProps:
|
|
|
634
569
|
type_hints = typing.get_type_hints(_typecheckingstub__e1a82500ee072f393cd9a2ada2f9a3434219c7a51186f26fbba3061bd896d11e)
|
|
635
570
|
check_type(argname="argument agent_system_prompt", value=agent_system_prompt, expected_type=type_hints["agent_system_prompt"])
|
|
636
571
|
check_type(argname="argument lambda_layers", value=lambda_layers, expected_type=type_hints["lambda_layers"])
|
|
572
|
+
check_type(argname="argument tools_bucket", value=tools_bucket, expected_type=type_hints["tools_bucket"])
|
|
637
573
|
check_type(argname="argument tools_location", value=tools_location, expected_type=type_hints["tools_location"])
|
|
638
574
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
639
575
|
if agent_system_prompt is not None:
|
|
640
576
|
self._values["agent_system_prompt"] = agent_system_prompt
|
|
641
577
|
if lambda_layers is not None:
|
|
642
578
|
self._values["lambda_layers"] = lambda_layers
|
|
579
|
+
if tools_bucket is not None:
|
|
580
|
+
self._values["tools_bucket"] = tools_bucket
|
|
643
581
|
if tools_location is not None:
|
|
644
582
|
self._values["tools_location"] = tools_location
|
|
645
583
|
|
|
646
584
|
@builtins.property
|
|
647
585
|
def agent_system_prompt(self) -> typing.Optional[builtins.str]:
|
|
648
|
-
'''
|
|
586
|
+
'''(experimental) System prompt for the agent.
|
|
587
|
+
|
|
649
588
|
:stability: experimental
|
|
650
589
|
'''
|
|
651
590
|
result = self._values.get("agent_system_prompt")
|
|
@@ -655,15 +594,33 @@ class AgentProps:
|
|
|
655
594
|
def lambda_layers(
|
|
656
595
|
self,
|
|
657
596
|
) -> typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.LayerVersion]]:
|
|
658
|
-
'''
|
|
597
|
+
'''(experimental) If there are python dependencies that are needed by the provided tools, provide the Lambda Layers with the dependencies.
|
|
598
|
+
|
|
659
599
|
:stability: experimental
|
|
660
600
|
'''
|
|
661
601
|
result = self._values.get("lambda_layers")
|
|
662
602
|
return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_lambda_ceddda9d.LayerVersion]], result)
|
|
663
603
|
|
|
664
604
|
@builtins.property
|
|
665
|
-
def
|
|
605
|
+
def tools_bucket(self) -> typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket]:
|
|
606
|
+
'''(experimental) Bucket where the tools are located in Primarily use to grant read permission to the processing agent to access the tools.
|
|
607
|
+
|
|
608
|
+
:default:
|
|
609
|
+
|
|
610
|
+
No extra IAM permissions would be automatically
|
|
611
|
+
assigned to the processing agent.
|
|
612
|
+
|
|
613
|
+
:stability: experimental
|
|
666
614
|
'''
|
|
615
|
+
result = self._values.get("tools_bucket")
|
|
616
|
+
return typing.cast(typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket], result)
|
|
617
|
+
|
|
618
|
+
@builtins.property
|
|
619
|
+
def tools_location(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
620
|
+
'''(experimental) S3 path where the tools are located.
|
|
621
|
+
|
|
622
|
+
The agent would dynamically load the tools
|
|
623
|
+
|
|
667
624
|
:stability: experimental
|
|
668
625
|
'''
|
|
669
626
|
result = self._values.get("tools_location")
|
|
@@ -1240,6 +1197,54 @@ class DatabaseEngine(enum.Enum):
|
|
|
1240
1197
|
'''
|
|
1241
1198
|
|
|
1242
1199
|
|
|
1200
|
+
class DefaultDocumentProcessingConfig(
|
|
1201
|
+
metaclass=jsii.JSIIMeta,
|
|
1202
|
+
jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.DefaultDocumentProcessingConfig",
|
|
1203
|
+
):
|
|
1204
|
+
'''
|
|
1205
|
+
:stability: experimental
|
|
1206
|
+
'''
|
|
1207
|
+
|
|
1208
|
+
def __init__(self) -> None:
|
|
1209
|
+
'''
|
|
1210
|
+
:stability: experimental
|
|
1211
|
+
'''
|
|
1212
|
+
jsii.create(self.__class__, self, [])
|
|
1213
|
+
|
|
1214
|
+
@jsii.python.classproperty
|
|
1215
|
+
@jsii.member(jsii_name="DEFAULT_OBSERVABILITY_METRIC_SVC_NAME")
|
|
1216
|
+
def DEFAULT_OBSERVABILITY_METRIC_SVC_NAME(cls) -> builtins.str:
|
|
1217
|
+
'''
|
|
1218
|
+
:stability: experimental
|
|
1219
|
+
'''
|
|
1220
|
+
return typing.cast(builtins.str, jsii.sget(cls, "DEFAULT_OBSERVABILITY_METRIC_SVC_NAME"))
|
|
1221
|
+
|
|
1222
|
+
|
|
1223
|
+
class DefaultObservabilityConfig(
|
|
1224
|
+
metaclass=jsii.JSIIMeta,
|
|
1225
|
+
jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.DefaultObservabilityConfig",
|
|
1226
|
+
):
|
|
1227
|
+
'''(experimental) Contains default constants for Observability related configuration.
|
|
1228
|
+
|
|
1229
|
+
:stability: experimental
|
|
1230
|
+
'''
|
|
1231
|
+
|
|
1232
|
+
def __init__(self) -> None:
|
|
1233
|
+
'''
|
|
1234
|
+
:stability: experimental
|
|
1235
|
+
'''
|
|
1236
|
+
jsii.create(self.__class__, self, [])
|
|
1237
|
+
|
|
1238
|
+
@jsii.python.classproperty
|
|
1239
|
+
@jsii.member(jsii_name="DEFAULT_METRIC_NAMESPACE")
|
|
1240
|
+
def DEFAULT_METRIC_NAMESPACE(cls) -> builtins.str:
|
|
1241
|
+
'''(experimental) Default namespace for powertools.
|
|
1242
|
+
|
|
1243
|
+
:stability: experimental
|
|
1244
|
+
'''
|
|
1245
|
+
return typing.cast(builtins.str, jsii.sget(cls, "DEFAULT_METRIC_NAMESPACE"))
|
|
1246
|
+
|
|
1247
|
+
|
|
1243
1248
|
class DefaultRuntimes(
|
|
1244
1249
|
metaclass=jsii.JSIIMeta,
|
|
1245
1250
|
jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.DefaultRuntimes",
|
|
@@ -1296,36 +1301,6 @@ class DefaultRuntimes(
|
|
|
1296
1301
|
return typing.cast(_aws_cdk_aws_lambda_python_alpha_49328424.BundlingOptions, jsii.sget(cls, "PYTHON_FUNCTION_BUNDLING"))
|
|
1297
1302
|
|
|
1298
1303
|
|
|
1299
|
-
@jsii.enum(jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.DocumentProcessingPrefix")
|
|
1300
|
-
class DocumentProcessingPrefix(enum.Enum):
|
|
1301
|
-
'''(experimental) S3 prefix constants for organizing documents throughout the processing lifecycle.
|
|
1302
|
-
|
|
1303
|
-
Documents flow through these prefixes based on processing outcomes:
|
|
1304
|
-
|
|
1305
|
-
- Upload → raw/ (triggers processing)
|
|
1306
|
-
- Success → processed/ (workflow completed successfully)
|
|
1307
|
-
- Failure → failed/ (workflow encountered errors)
|
|
1308
|
-
|
|
1309
|
-
:stability: experimental
|
|
1310
|
-
'''
|
|
1311
|
-
|
|
1312
|
-
RAW = "RAW"
|
|
1313
|
-
'''(experimental) Prefix for newly uploaded documents awaiting processing.
|
|
1314
|
-
|
|
1315
|
-
:stability: experimental
|
|
1316
|
-
'''
|
|
1317
|
-
FAILED = "FAILED"
|
|
1318
|
-
'''(experimental) Prefix for documents that failed processing.
|
|
1319
|
-
|
|
1320
|
-
:stability: experimental
|
|
1321
|
-
'''
|
|
1322
|
-
PROCESSED = "PROCESSED"
|
|
1323
|
-
'''(experimental) Prefix for successfully processed documents.
|
|
1324
|
-
|
|
1325
|
-
:stability: experimental
|
|
1326
|
-
'''
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
1304
|
class EventbridgeBroker(
|
|
1330
1305
|
_constructs_77d1e7e8.Construct,
|
|
1331
1306
|
metaclass=jsii.JSIIMeta,
|
|
@@ -1929,142 +1904,461 @@ class FrontendProps:
|
|
|
1929
1904
|
)
|
|
1930
1905
|
|
|
1931
1906
|
|
|
1932
|
-
@jsii.interface(jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.
|
|
1933
|
-
class
|
|
1934
|
-
'''(experimental)
|
|
1907
|
+
@jsii.interface(jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.IAdapter")
|
|
1908
|
+
class IAdapter(typing_extensions.Protocol):
|
|
1909
|
+
'''(experimental) Abstraction to enable different types of source triggers for the intelligent document processing workflow.
|
|
1935
1910
|
|
|
1936
1911
|
:stability: experimental
|
|
1937
1912
|
'''
|
|
1938
1913
|
|
|
1939
|
-
@
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
'''
|
|
1945
|
-
|
|
1914
|
+
@jsii.member(jsii_name="createFailedChain")
|
|
1915
|
+
def create_failed_chain(
|
|
1916
|
+
self,
|
|
1917
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
1918
|
+
) -> _aws_cdk_aws_stepfunctions_ceddda9d.Chain:
|
|
1919
|
+
'''(experimental) Create the adapter specific handler for failed processing.
|
|
1920
|
+
|
|
1921
|
+
:param scope: Scope to use in relation to the CDK hierarchy.
|
|
1922
|
+
|
|
1923
|
+
:return: Chain to be added to the state machine to handle failure scenarios
|
|
1946
1924
|
|
|
1947
|
-
@builtins.property
|
|
1948
|
-
@jsii.member(jsii_name="metricNamespace")
|
|
1949
|
-
def metric_namespace(self) -> builtins.str:
|
|
1950
|
-
'''
|
|
1951
1925
|
:stability: experimental
|
|
1952
1926
|
'''
|
|
1953
1927
|
...
|
|
1954
1928
|
|
|
1955
|
-
@
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1929
|
+
@jsii.member(jsii_name="createIngressTrigger")
|
|
1930
|
+
def create_ingress_trigger(
|
|
1931
|
+
self,
|
|
1932
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
1933
|
+
state_machine: _aws_cdk_aws_stepfunctions_ceddda9d.StateMachine,
|
|
1934
|
+
*,
|
|
1935
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
1936
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
1937
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
1938
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
1939
|
+
ingress_adapter: typing.Optional["IAdapter"] = None,
|
|
1940
|
+
network: typing.Optional["Network"] = None,
|
|
1941
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
1942
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
1943
|
+
log_group_data_protection: typing.Optional[typing.Union["LogGroupDataProtectionProps", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1944
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
1945
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
1946
|
+
) -> typing.Mapping[builtins.str, typing.Any]:
|
|
1947
|
+
'''(experimental) Create resources that would receive the data and trigger the workflow.
|
|
1948
|
+
|
|
1949
|
+
Important: resource created should trigger the state machine
|
|
1950
|
+
|
|
1951
|
+
:param scope: Scope to use in relation to the CDK hierarchy.
|
|
1952
|
+
:param state_machine: The workflow of the document processor.
|
|
1953
|
+
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
1954
|
+
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
1955
|
+
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
1956
|
+
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
1957
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
1958
|
+
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
1959
|
+
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
1960
|
+
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
1961
|
+
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
1962
|
+
:param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
|
|
1963
|
+
:param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
|
|
1964
|
+
|
|
1965
|
+
:return: Resources that are created
|
|
1966
|
+
|
|
1959
1967
|
:stability: experimental
|
|
1960
1968
|
'''
|
|
1961
1969
|
...
|
|
1962
1970
|
|
|
1963
|
-
@jsii.member(jsii_name="
|
|
1964
|
-
def
|
|
1965
|
-
|
|
1971
|
+
@jsii.member(jsii_name="createSuccessChain")
|
|
1972
|
+
def create_success_chain(
|
|
1973
|
+
self,
|
|
1974
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
1975
|
+
) -> _aws_cdk_aws_stepfunctions_ceddda9d.Chain:
|
|
1976
|
+
'''(experimental) Create the adapter specific handler for successful processing.
|
|
1977
|
+
|
|
1978
|
+
:param scope: Scope to use in relation to the CDK hierarchy.
|
|
1979
|
+
|
|
1980
|
+
:return: Chain to be added to the state machine to handle successful scenarios
|
|
1981
|
+
|
|
1966
1982
|
:stability: experimental
|
|
1967
1983
|
'''
|
|
1968
1984
|
...
|
|
1969
1985
|
|
|
1986
|
+
@jsii.member(jsii_name="generateAdapterIAMPolicies")
|
|
1987
|
+
def generate_adapter_iam_policies(
|
|
1988
|
+
self,
|
|
1989
|
+
additional_iam_actions: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1990
|
+
narrow_actions: typing.Optional[builtins.bool] = None,
|
|
1991
|
+
) -> typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]:
|
|
1992
|
+
'''(experimental) Generate IAM statements that can be used by other resources to access the storage.
|
|
1970
1993
|
|
|
1971
|
-
|
|
1972
|
-
|
|
1994
|
+
:param additional_iam_actions: (Optional) list of additional actions in relation to the underlying storage for the adapter.
|
|
1995
|
+
:param narrow_actions: (Optional) whether the resulting permissions would only be the IAM actions indicated in the ``additionalIAMActions`` parameter.
|
|
1973
1996
|
|
|
1974
|
-
|
|
1975
|
-
'''
|
|
1997
|
+
:default: false
|
|
1976
1998
|
|
|
1977
|
-
|
|
1999
|
+
:return: PolicyStatement[] IAM policy statements that would included in the state machine IAM role
|
|
1978
2000
|
|
|
1979
|
-
@builtins.property
|
|
1980
|
-
@jsii.member(jsii_name="logGroupDataProtection")
|
|
1981
|
-
def log_group_data_protection(self) -> "LogGroupDataProtectionProps":
|
|
1982
|
-
'''
|
|
1983
2001
|
:stability: experimental
|
|
1984
2002
|
'''
|
|
1985
|
-
|
|
2003
|
+
...
|
|
1986
2004
|
|
|
1987
|
-
@
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
2005
|
+
@jsii.member(jsii_name="init")
|
|
2006
|
+
def init(
|
|
2007
|
+
self,
|
|
2008
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
2009
|
+
*,
|
|
2010
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
2011
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
2012
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
2013
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
2014
|
+
ingress_adapter: typing.Optional["IAdapter"] = None,
|
|
2015
|
+
network: typing.Optional["Network"] = None,
|
|
2016
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
2017
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
2018
|
+
log_group_data_protection: typing.Optional[typing.Union["LogGroupDataProtectionProps", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
2019
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
2020
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
2021
|
+
) -> None:
|
|
2022
|
+
'''(experimental) Initializes the adapter.
|
|
1994
2023
|
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
:
|
|
2000
|
-
|
|
2001
|
-
|
|
2024
|
+
:param scope: Scope to use in relation to the CDK hierarchy.
|
|
2025
|
+
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
2026
|
+
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
2027
|
+
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
2028
|
+
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
2029
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
2030
|
+
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
2031
|
+
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
2032
|
+
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
2033
|
+
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
2034
|
+
:param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
|
|
2035
|
+
:param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
|
|
2002
2036
|
|
|
2003
|
-
@jsii.member(jsii_name="metrics")
|
|
2004
|
-
def metrics(self) -> typing.List[_aws_cdk_aws_cloudwatch_ceddda9d.IMetric]:
|
|
2005
|
-
'''
|
|
2006
2037
|
:stability: experimental
|
|
2007
2038
|
'''
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
|
|
2011
|
-
typing.cast(typing.Any, IObservable).__jsii_proxy_class__ = lambda : _IObservableProxy
|
|
2039
|
+
...
|
|
2012
2040
|
|
|
2013
2041
|
|
|
2014
|
-
class
|
|
2015
|
-
|
|
2016
|
-
jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.LambdaIamUtils",
|
|
2017
|
-
):
|
|
2018
|
-
'''(experimental) Utility class for creating secure Lambda IAM policy statements with minimal permissions.
|
|
2042
|
+
class _IAdapterProxy:
|
|
2043
|
+
'''(experimental) Abstraction to enable different types of source triggers for the intelligent document processing workflow.
|
|
2019
2044
|
|
|
2020
2045
|
:stability: experimental
|
|
2021
2046
|
'''
|
|
2022
2047
|
|
|
2023
|
-
|
|
2024
|
-
'''
|
|
2025
|
-
:stability: experimental
|
|
2026
|
-
'''
|
|
2027
|
-
jsii.create(self.__class__, self, [])
|
|
2048
|
+
__jsii_type__: typing.ClassVar[str] = "@cdklabs/cdk-appmod-catalog-blueprints.IAdapter"
|
|
2028
2049
|
|
|
2029
|
-
@jsii.member(jsii_name="
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
) -> _aws_cdk_aws_iam_ceddda9d.PolicyStatement:
|
|
2036
|
-
'''(experimental) Creates a policy statement for DynamoDB table access.
|
|
2050
|
+
@jsii.member(jsii_name="createFailedChain")
|
|
2051
|
+
def create_failed_chain(
|
|
2052
|
+
self,
|
|
2053
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
2054
|
+
) -> _aws_cdk_aws_stepfunctions_ceddda9d.Chain:
|
|
2055
|
+
'''(experimental) Create the adapter specific handler for failed processing.
|
|
2037
2056
|
|
|
2038
|
-
:param
|
|
2039
|
-
:param actions: The DynamoDB actions to allow.
|
|
2057
|
+
:param scope: Scope to use in relation to the CDK hierarchy.
|
|
2040
2058
|
|
|
2041
|
-
:return:
|
|
2059
|
+
:return: Chain to be added to the state machine to handle failure scenarios
|
|
2042
2060
|
|
|
2043
2061
|
:stability: experimental
|
|
2044
2062
|
'''
|
|
2045
2063
|
if __debug__:
|
|
2046
|
-
type_hints = typing.get_type_hints(
|
|
2047
|
-
check_type(argname="argument
|
|
2048
|
-
|
|
2049
|
-
return typing.cast(_aws_cdk_aws_iam_ceddda9d.PolicyStatement, jsii.sinvoke(cls, "createDynamoDbPolicyStatement", [table_arn, actions]))
|
|
2050
|
-
|
|
2051
|
-
@jsii.member(jsii_name="createKmsPolicyStatement")
|
|
2052
|
-
@builtins.classmethod
|
|
2053
|
-
def create_kms_policy_statement(
|
|
2054
|
-
cls,
|
|
2055
|
-
key_arn: builtins.str,
|
|
2056
|
-
actions: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
2057
|
-
) -> _aws_cdk_aws_iam_ceddda9d.PolicyStatement:
|
|
2058
|
-
'''(experimental) Creates a policy statement for KMS key access.
|
|
2059
|
-
|
|
2060
|
-
:param key_arn: The ARN of the KMS key.
|
|
2061
|
-
:param actions: The KMS actions to allow.
|
|
2062
|
-
|
|
2063
|
-
:return: PolicyStatement for KMS access
|
|
2064
|
+
type_hints = typing.get_type_hints(_typecheckingstub__5998f6c7e16512d92cd00097e77d737333304685208eb36a522c156f8378a9e7)
|
|
2065
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
2066
|
+
return typing.cast(_aws_cdk_aws_stepfunctions_ceddda9d.Chain, jsii.invoke(self, "createFailedChain", [scope]))
|
|
2064
2067
|
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
+
@jsii.member(jsii_name="createIngressTrigger")
|
|
2069
|
+
def create_ingress_trigger(
|
|
2070
|
+
self,
|
|
2071
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
2072
|
+
state_machine: _aws_cdk_aws_stepfunctions_ceddda9d.StateMachine,
|
|
2073
|
+
*,
|
|
2074
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
2075
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
2076
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
2077
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
2078
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
2079
|
+
network: typing.Optional["Network"] = None,
|
|
2080
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
2081
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
2082
|
+
log_group_data_protection: typing.Optional[typing.Union["LogGroupDataProtectionProps", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
2083
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
2084
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
2085
|
+
) -> typing.Mapping[builtins.str, typing.Any]:
|
|
2086
|
+
'''(experimental) Create resources that would receive the data and trigger the workflow.
|
|
2087
|
+
|
|
2088
|
+
Important: resource created should trigger the state machine
|
|
2089
|
+
|
|
2090
|
+
:param scope: Scope to use in relation to the CDK hierarchy.
|
|
2091
|
+
:param state_machine: The workflow of the document processor.
|
|
2092
|
+
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
2093
|
+
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
2094
|
+
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
2095
|
+
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
2096
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
2097
|
+
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
2098
|
+
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
2099
|
+
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
2100
|
+
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
2101
|
+
:param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
|
|
2102
|
+
:param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
|
|
2103
|
+
|
|
2104
|
+
:return: Resources that are created
|
|
2105
|
+
|
|
2106
|
+
:stability: experimental
|
|
2107
|
+
'''
|
|
2108
|
+
if __debug__:
|
|
2109
|
+
type_hints = typing.get_type_hints(_typecheckingstub__b61e74ddd8982f4b30ae59307c9fb3adaff26122ddc7f5faabc2cc8e1e2da034)
|
|
2110
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
2111
|
+
check_type(argname="argument state_machine", value=state_machine, expected_type=type_hints["state_machine"])
|
|
2112
|
+
props = BaseDocumentProcessingProps(
|
|
2113
|
+
document_processing_table=document_processing_table,
|
|
2114
|
+
enable_observability=enable_observability,
|
|
2115
|
+
encryption_key=encryption_key,
|
|
2116
|
+
eventbridge_broker=eventbridge_broker,
|
|
2117
|
+
ingress_adapter=ingress_adapter,
|
|
2118
|
+
network=network,
|
|
2119
|
+
removal_policy=removal_policy,
|
|
2120
|
+
workflow_timeout=workflow_timeout,
|
|
2121
|
+
log_group_data_protection=log_group_data_protection,
|
|
2122
|
+
metric_namespace=metric_namespace,
|
|
2123
|
+
metric_service_name=metric_service_name,
|
|
2124
|
+
)
|
|
2125
|
+
|
|
2126
|
+
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "createIngressTrigger", [scope, state_machine, props]))
|
|
2127
|
+
|
|
2128
|
+
@jsii.member(jsii_name="createSuccessChain")
|
|
2129
|
+
def create_success_chain(
|
|
2130
|
+
self,
|
|
2131
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
2132
|
+
) -> _aws_cdk_aws_stepfunctions_ceddda9d.Chain:
|
|
2133
|
+
'''(experimental) Create the adapter specific handler for successful processing.
|
|
2134
|
+
|
|
2135
|
+
:param scope: Scope to use in relation to the CDK hierarchy.
|
|
2136
|
+
|
|
2137
|
+
:return: Chain to be added to the state machine to handle successful scenarios
|
|
2138
|
+
|
|
2139
|
+
:stability: experimental
|
|
2140
|
+
'''
|
|
2141
|
+
if __debug__:
|
|
2142
|
+
type_hints = typing.get_type_hints(_typecheckingstub__cd0aad7a5879633fca8d89cbf92e8f5a13e31615116036f29a82a58c1bb4727d)
|
|
2143
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
2144
|
+
return typing.cast(_aws_cdk_aws_stepfunctions_ceddda9d.Chain, jsii.invoke(self, "createSuccessChain", [scope]))
|
|
2145
|
+
|
|
2146
|
+
@jsii.member(jsii_name="generateAdapterIAMPolicies")
|
|
2147
|
+
def generate_adapter_iam_policies(
|
|
2148
|
+
self,
|
|
2149
|
+
additional_iam_actions: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
2150
|
+
narrow_actions: typing.Optional[builtins.bool] = None,
|
|
2151
|
+
) -> typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]:
|
|
2152
|
+
'''(experimental) Generate IAM statements that can be used by other resources to access the storage.
|
|
2153
|
+
|
|
2154
|
+
:param additional_iam_actions: (Optional) list of additional actions in relation to the underlying storage for the adapter.
|
|
2155
|
+
:param narrow_actions: (Optional) whether the resulting permissions would only be the IAM actions indicated in the ``additionalIAMActions`` parameter.
|
|
2156
|
+
|
|
2157
|
+
:default: false
|
|
2158
|
+
|
|
2159
|
+
:return: PolicyStatement[] IAM policy statements that would included in the state machine IAM role
|
|
2160
|
+
|
|
2161
|
+
:stability: experimental
|
|
2162
|
+
'''
|
|
2163
|
+
if __debug__:
|
|
2164
|
+
type_hints = typing.get_type_hints(_typecheckingstub__82a45114a0ff76d4b9d091edd6674d4e762dc5ca19631d61579cf1aa47e30b5e)
|
|
2165
|
+
check_type(argname="argument additional_iam_actions", value=additional_iam_actions, expected_type=type_hints["additional_iam_actions"])
|
|
2166
|
+
check_type(argname="argument narrow_actions", value=narrow_actions, expected_type=type_hints["narrow_actions"])
|
|
2167
|
+
return typing.cast(typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement], jsii.invoke(self, "generateAdapterIAMPolicies", [additional_iam_actions, narrow_actions]))
|
|
2168
|
+
|
|
2169
|
+
@jsii.member(jsii_name="init")
|
|
2170
|
+
def init(
|
|
2171
|
+
self,
|
|
2172
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
2173
|
+
*,
|
|
2174
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
2175
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
2176
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
2177
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
2178
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
2179
|
+
network: typing.Optional["Network"] = None,
|
|
2180
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
2181
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
2182
|
+
log_group_data_protection: typing.Optional[typing.Union["LogGroupDataProtectionProps", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
2183
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
2184
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
2185
|
+
) -> None:
|
|
2186
|
+
'''(experimental) Initializes the adapter.
|
|
2187
|
+
|
|
2188
|
+
:param scope: Scope to use in relation to the CDK hierarchy.
|
|
2189
|
+
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
2190
|
+
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
2191
|
+
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
2192
|
+
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
2193
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
2194
|
+
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
2195
|
+
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
2196
|
+
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
2197
|
+
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
2198
|
+
:param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
|
|
2199
|
+
:param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
|
|
2200
|
+
|
|
2201
|
+
:stability: experimental
|
|
2202
|
+
'''
|
|
2203
|
+
if __debug__:
|
|
2204
|
+
type_hints = typing.get_type_hints(_typecheckingstub__17f7e7f35ea8e49cf6ded248435aa1e1dcf416e61c549f3e7b74baad3ac399e7)
|
|
2205
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
2206
|
+
props = BaseDocumentProcessingProps(
|
|
2207
|
+
document_processing_table=document_processing_table,
|
|
2208
|
+
enable_observability=enable_observability,
|
|
2209
|
+
encryption_key=encryption_key,
|
|
2210
|
+
eventbridge_broker=eventbridge_broker,
|
|
2211
|
+
ingress_adapter=ingress_adapter,
|
|
2212
|
+
network=network,
|
|
2213
|
+
removal_policy=removal_policy,
|
|
2214
|
+
workflow_timeout=workflow_timeout,
|
|
2215
|
+
log_group_data_protection=log_group_data_protection,
|
|
2216
|
+
metric_namespace=metric_namespace,
|
|
2217
|
+
metric_service_name=metric_service_name,
|
|
2218
|
+
)
|
|
2219
|
+
|
|
2220
|
+
return typing.cast(None, jsii.invoke(self, "init", [scope, props]))
|
|
2221
|
+
|
|
2222
|
+
# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
|
|
2223
|
+
typing.cast(typing.Any, IAdapter).__jsii_proxy_class__ = lambda : _IAdapterProxy
|
|
2224
|
+
|
|
2225
|
+
|
|
2226
|
+
@jsii.interface(jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.IObservable")
|
|
2227
|
+
class IObservable(typing_extensions.Protocol):
|
|
2228
|
+
'''(experimental) Interface providing configuration parameters for constructs that support Observability.
|
|
2229
|
+
|
|
2230
|
+
:stability: experimental
|
|
2231
|
+
'''
|
|
2232
|
+
|
|
2233
|
+
@builtins.property
|
|
2234
|
+
@jsii.member(jsii_name="logGroupDataProtection")
|
|
2235
|
+
def log_group_data_protection(self) -> "LogGroupDataProtectionProps":
|
|
2236
|
+
'''
|
|
2237
|
+
:stability: experimental
|
|
2238
|
+
'''
|
|
2239
|
+
...
|
|
2240
|
+
|
|
2241
|
+
@builtins.property
|
|
2242
|
+
@jsii.member(jsii_name="metricNamespace")
|
|
2243
|
+
def metric_namespace(self) -> builtins.str:
|
|
2244
|
+
'''
|
|
2245
|
+
:stability: experimental
|
|
2246
|
+
'''
|
|
2247
|
+
...
|
|
2248
|
+
|
|
2249
|
+
@builtins.property
|
|
2250
|
+
@jsii.member(jsii_name="metricServiceName")
|
|
2251
|
+
def metric_service_name(self) -> builtins.str:
|
|
2252
|
+
'''
|
|
2253
|
+
:stability: experimental
|
|
2254
|
+
'''
|
|
2255
|
+
...
|
|
2256
|
+
|
|
2257
|
+
@jsii.member(jsii_name="metrics")
|
|
2258
|
+
def metrics(self) -> typing.List[_aws_cdk_aws_cloudwatch_ceddda9d.IMetric]:
|
|
2259
|
+
'''
|
|
2260
|
+
:stability: experimental
|
|
2261
|
+
'''
|
|
2262
|
+
...
|
|
2263
|
+
|
|
2264
|
+
|
|
2265
|
+
class _IObservableProxy:
|
|
2266
|
+
'''(experimental) Interface providing configuration parameters for constructs that support Observability.
|
|
2267
|
+
|
|
2268
|
+
:stability: experimental
|
|
2269
|
+
'''
|
|
2270
|
+
|
|
2271
|
+
__jsii_type__: typing.ClassVar[str] = "@cdklabs/cdk-appmod-catalog-blueprints.IObservable"
|
|
2272
|
+
|
|
2273
|
+
@builtins.property
|
|
2274
|
+
@jsii.member(jsii_name="logGroupDataProtection")
|
|
2275
|
+
def log_group_data_protection(self) -> "LogGroupDataProtectionProps":
|
|
2276
|
+
'''
|
|
2277
|
+
:stability: experimental
|
|
2278
|
+
'''
|
|
2279
|
+
return typing.cast("LogGroupDataProtectionProps", jsii.get(self, "logGroupDataProtection"))
|
|
2280
|
+
|
|
2281
|
+
@builtins.property
|
|
2282
|
+
@jsii.member(jsii_name="metricNamespace")
|
|
2283
|
+
def metric_namespace(self) -> builtins.str:
|
|
2284
|
+
'''
|
|
2285
|
+
:stability: experimental
|
|
2286
|
+
'''
|
|
2287
|
+
return typing.cast(builtins.str, jsii.get(self, "metricNamespace"))
|
|
2288
|
+
|
|
2289
|
+
@builtins.property
|
|
2290
|
+
@jsii.member(jsii_name="metricServiceName")
|
|
2291
|
+
def metric_service_name(self) -> builtins.str:
|
|
2292
|
+
'''
|
|
2293
|
+
:stability: experimental
|
|
2294
|
+
'''
|
|
2295
|
+
return typing.cast(builtins.str, jsii.get(self, "metricServiceName"))
|
|
2296
|
+
|
|
2297
|
+
@jsii.member(jsii_name="metrics")
|
|
2298
|
+
def metrics(self) -> typing.List[_aws_cdk_aws_cloudwatch_ceddda9d.IMetric]:
|
|
2299
|
+
'''
|
|
2300
|
+
:stability: experimental
|
|
2301
|
+
'''
|
|
2302
|
+
return typing.cast(typing.List[_aws_cdk_aws_cloudwatch_ceddda9d.IMetric], jsii.invoke(self, "metrics", []))
|
|
2303
|
+
|
|
2304
|
+
# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
|
|
2305
|
+
typing.cast(typing.Any, IObservable).__jsii_proxy_class__ = lambda : _IObservableProxy
|
|
2306
|
+
|
|
2307
|
+
|
|
2308
|
+
class LambdaIamUtils(
|
|
2309
|
+
metaclass=jsii.JSIIMeta,
|
|
2310
|
+
jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.LambdaIamUtils",
|
|
2311
|
+
):
|
|
2312
|
+
'''(experimental) Utility class for creating secure Lambda IAM policy statements with minimal permissions.
|
|
2313
|
+
|
|
2314
|
+
:stability: experimental
|
|
2315
|
+
'''
|
|
2316
|
+
|
|
2317
|
+
def __init__(self) -> None:
|
|
2318
|
+
'''
|
|
2319
|
+
:stability: experimental
|
|
2320
|
+
'''
|
|
2321
|
+
jsii.create(self.__class__, self, [])
|
|
2322
|
+
|
|
2323
|
+
@jsii.member(jsii_name="createDynamoDbPolicyStatement")
|
|
2324
|
+
@builtins.classmethod
|
|
2325
|
+
def create_dynamo_db_policy_statement(
|
|
2326
|
+
cls,
|
|
2327
|
+
table_arn: builtins.str,
|
|
2328
|
+
actions: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
2329
|
+
) -> _aws_cdk_aws_iam_ceddda9d.PolicyStatement:
|
|
2330
|
+
'''(experimental) Creates a policy statement for DynamoDB table access.
|
|
2331
|
+
|
|
2332
|
+
:param table_arn: The ARN of the DynamoDB table.
|
|
2333
|
+
:param actions: The DynamoDB actions to allow.
|
|
2334
|
+
|
|
2335
|
+
:return: PolicyStatement for DynamoDB access
|
|
2336
|
+
|
|
2337
|
+
:stability: experimental
|
|
2338
|
+
'''
|
|
2339
|
+
if __debug__:
|
|
2340
|
+
type_hints = typing.get_type_hints(_typecheckingstub__8fea74c9846ad0c5bdddcbfe10063247cb7bcf58aac91e0be80d1226246784e4)
|
|
2341
|
+
check_type(argname="argument table_arn", value=table_arn, expected_type=type_hints["table_arn"])
|
|
2342
|
+
check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
|
|
2343
|
+
return typing.cast(_aws_cdk_aws_iam_ceddda9d.PolicyStatement, jsii.sinvoke(cls, "createDynamoDbPolicyStatement", [table_arn, actions]))
|
|
2344
|
+
|
|
2345
|
+
@jsii.member(jsii_name="createKmsPolicyStatement")
|
|
2346
|
+
@builtins.classmethod
|
|
2347
|
+
def create_kms_policy_statement(
|
|
2348
|
+
cls,
|
|
2349
|
+
key_arn: builtins.str,
|
|
2350
|
+
actions: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
2351
|
+
) -> _aws_cdk_aws_iam_ceddda9d.PolicyStatement:
|
|
2352
|
+
'''(experimental) Creates a policy statement for KMS key access.
|
|
2353
|
+
|
|
2354
|
+
:param key_arn: The ARN of the KMS key.
|
|
2355
|
+
:param actions: The KMS actions to allow.
|
|
2356
|
+
|
|
2357
|
+
:return: PolicyStatement for KMS access
|
|
2358
|
+
|
|
2359
|
+
:stability: experimental
|
|
2360
|
+
'''
|
|
2361
|
+
if __debug__:
|
|
2068
2362
|
type_hints = typing.get_type_hints(_typecheckingstub__ef86294be8c776ba98bebc269fab82304f75649efab35cf030d999168ba5d690)
|
|
2069
2363
|
check_type(argname="argument key_arn", value=key_arn, expected_type=type_hints["key_arn"])
|
|
2070
2364
|
check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
|
|
@@ -3056,22 +3350,366 @@ class PowertoolsConfig(
|
|
|
3056
3350
|
return typing.cast(typing.Mapping[builtins.str, builtins.str], jsii.sinvoke(cls, "generateDefaultLambdaConfig", [enable_observability, metrics_namespace, service_name]))
|
|
3057
3351
|
|
|
3058
3352
|
|
|
3059
|
-
@jsii.implements(
|
|
3060
|
-
class
|
|
3353
|
+
@jsii.implements(IAdapter)
|
|
3354
|
+
class QueuedS3Adapter(
|
|
3061
3355
|
metaclass=jsii.JSIIMeta,
|
|
3062
|
-
jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.
|
|
3356
|
+
jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.QueuedS3Adapter",
|
|
3063
3357
|
):
|
|
3064
|
-
'''
|
|
3358
|
+
'''(experimental) This adapter allows the intelligent document processing workflow to be triggered by files that are uploaded into a S3 Bucket.
|
|
3359
|
+
|
|
3065
3360
|
:stability: experimental
|
|
3066
3361
|
'''
|
|
3067
3362
|
|
|
3068
3363
|
def __init__(
|
|
3069
3364
|
self,
|
|
3070
3365
|
*,
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3366
|
+
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
3367
|
+
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
3368
|
+
failed_prefix: typing.Optional[builtins.str] = None,
|
|
3369
|
+
processed_prefix: typing.Optional[builtins.str] = None,
|
|
3370
|
+
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3371
|
+
raw_prefix: typing.Optional[builtins.str] = None,
|
|
3372
|
+
) -> None:
|
|
3373
|
+
'''
|
|
3374
|
+
:param bucket: (experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/). If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy. Default: create a new bucket
|
|
3375
|
+
:param dlq_max_receive_count: (experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. Default: 5
|
|
3376
|
+
:param failed_prefix: (experimental) S3 prefix where the files that failed processing would be stored. Default: "failed/"
|
|
3377
|
+
:param processed_prefix: (experimental) S3 prefix where the processed files would be stored. Default: "processed/"
|
|
3378
|
+
:param queue_visibility_timeout: (experimental) SQS queue visibility timeout for processing messages. Should be longer than expected processing time to prevent duplicate processing. Default: Duration.seconds(300)
|
|
3379
|
+
:param raw_prefix: (experimental) S3 prefix where the raw files would be stored. This serves as the trigger point for processing Default: "raw/"
|
|
3380
|
+
|
|
3381
|
+
:stability: experimental
|
|
3382
|
+
'''
|
|
3383
|
+
adapter_props = QueuedS3AdapterProps(
|
|
3384
|
+
bucket=bucket,
|
|
3385
|
+
dlq_max_receive_count=dlq_max_receive_count,
|
|
3386
|
+
failed_prefix=failed_prefix,
|
|
3387
|
+
processed_prefix=processed_prefix,
|
|
3388
|
+
queue_visibility_timeout=queue_visibility_timeout,
|
|
3389
|
+
raw_prefix=raw_prefix,
|
|
3390
|
+
)
|
|
3391
|
+
|
|
3392
|
+
jsii.create(self.__class__, self, [adapter_props])
|
|
3393
|
+
|
|
3394
|
+
@jsii.member(jsii_name="createFailedChain")
|
|
3395
|
+
def create_failed_chain(
|
|
3396
|
+
self,
|
|
3397
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
3398
|
+
) -> _aws_cdk_aws_stepfunctions_ceddda9d.Chain:
|
|
3399
|
+
'''(experimental) Create the adapter specific handler for failed processing.
|
|
3400
|
+
|
|
3401
|
+
:param scope: -
|
|
3402
|
+
|
|
3403
|
+
:stability: experimental
|
|
3404
|
+
'''
|
|
3405
|
+
if __debug__:
|
|
3406
|
+
type_hints = typing.get_type_hints(_typecheckingstub__b95daf862a9819daa9b25cecfc08214dc429ef07ac6de3920b5dea59e01616eb)
|
|
3407
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
3408
|
+
return typing.cast(_aws_cdk_aws_stepfunctions_ceddda9d.Chain, jsii.invoke(self, "createFailedChain", [scope]))
|
|
3409
|
+
|
|
3410
|
+
@jsii.member(jsii_name="createIngressTrigger")
|
|
3411
|
+
def create_ingress_trigger(
|
|
3412
|
+
self,
|
|
3413
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
3414
|
+
state_machine: _aws_cdk_aws_stepfunctions_ceddda9d.StateMachine,
|
|
3415
|
+
*,
|
|
3416
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
3417
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
3418
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
3419
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
3420
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
3421
|
+
network: typing.Optional[Network] = None,
|
|
3422
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
3423
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3424
|
+
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
3425
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
3426
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
3427
|
+
) -> typing.Mapping[builtins.str, typing.Any]:
|
|
3428
|
+
'''(experimental) Create resources that would receive the data and trigger the workflow.
|
|
3429
|
+
|
|
3430
|
+
Important: resource created should trigger the state machine
|
|
3431
|
+
|
|
3432
|
+
:param scope: -
|
|
3433
|
+
:param state_machine: -
|
|
3434
|
+
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
3435
|
+
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
3436
|
+
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
3437
|
+
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
3438
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
3439
|
+
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
3440
|
+
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
3441
|
+
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
3442
|
+
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
3443
|
+
:param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
|
|
3444
|
+
:param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
|
|
3445
|
+
|
|
3446
|
+
:stability: experimental
|
|
3447
|
+
'''
|
|
3448
|
+
if __debug__:
|
|
3449
|
+
type_hints = typing.get_type_hints(_typecheckingstub__fb0e9adf74054c1b0a1974cab45642af57cb1651ef8052310a0229dae1eac178)
|
|
3450
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
3451
|
+
check_type(argname="argument state_machine", value=state_machine, expected_type=type_hints["state_machine"])
|
|
3452
|
+
props = BaseDocumentProcessingProps(
|
|
3453
|
+
document_processing_table=document_processing_table,
|
|
3454
|
+
enable_observability=enable_observability,
|
|
3455
|
+
encryption_key=encryption_key,
|
|
3456
|
+
eventbridge_broker=eventbridge_broker,
|
|
3457
|
+
ingress_adapter=ingress_adapter,
|
|
3458
|
+
network=network,
|
|
3459
|
+
removal_policy=removal_policy,
|
|
3460
|
+
workflow_timeout=workflow_timeout,
|
|
3461
|
+
log_group_data_protection=log_group_data_protection,
|
|
3462
|
+
metric_namespace=metric_namespace,
|
|
3463
|
+
metric_service_name=metric_service_name,
|
|
3464
|
+
)
|
|
3465
|
+
|
|
3466
|
+
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "createIngressTrigger", [scope, state_machine, props]))
|
|
3467
|
+
|
|
3468
|
+
@jsii.member(jsii_name="createSuccessChain")
|
|
3469
|
+
def create_success_chain(
|
|
3470
|
+
self,
|
|
3471
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
3472
|
+
) -> _aws_cdk_aws_stepfunctions_ceddda9d.Chain:
|
|
3473
|
+
'''(experimental) Create the adapter specific handler for successful processing.
|
|
3474
|
+
|
|
3475
|
+
:param scope: -
|
|
3476
|
+
|
|
3477
|
+
:stability: experimental
|
|
3478
|
+
'''
|
|
3479
|
+
if __debug__:
|
|
3480
|
+
type_hints = typing.get_type_hints(_typecheckingstub__76aa2fd577ace3b2507bf11a33f4d039ae5ac0af0d5d3edede30c4515a1a0986)
|
|
3481
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
3482
|
+
return typing.cast(_aws_cdk_aws_stepfunctions_ceddda9d.Chain, jsii.invoke(self, "createSuccessChain", [scope]))
|
|
3483
|
+
|
|
3484
|
+
@jsii.member(jsii_name="generateAdapterIAMPolicies")
|
|
3485
|
+
def generate_adapter_iam_policies(
|
|
3486
|
+
self,
|
|
3487
|
+
additional_iam_actions: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
3488
|
+
narrow_actions: typing.Optional[builtins.bool] = None,
|
|
3489
|
+
) -> typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement]:
|
|
3490
|
+
'''(experimental) Generate IAM statements that can be used by other resources to access the storage.
|
|
3491
|
+
|
|
3492
|
+
:param additional_iam_actions: -
|
|
3493
|
+
:param narrow_actions: -
|
|
3494
|
+
|
|
3495
|
+
:stability: experimental
|
|
3496
|
+
'''
|
|
3497
|
+
if __debug__:
|
|
3498
|
+
type_hints = typing.get_type_hints(_typecheckingstub__308867c51abfbbc08d0fba9125db9b86eddda969dc95de8546e6f8cb242ee8a9)
|
|
3499
|
+
check_type(argname="argument additional_iam_actions", value=additional_iam_actions, expected_type=type_hints["additional_iam_actions"])
|
|
3500
|
+
check_type(argname="argument narrow_actions", value=narrow_actions, expected_type=type_hints["narrow_actions"])
|
|
3501
|
+
return typing.cast(typing.List[_aws_cdk_aws_iam_ceddda9d.PolicyStatement], jsii.invoke(self, "generateAdapterIAMPolicies", [additional_iam_actions, narrow_actions]))
|
|
3502
|
+
|
|
3503
|
+
@jsii.member(jsii_name="init")
|
|
3504
|
+
def init(
|
|
3505
|
+
self,
|
|
3506
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
3507
|
+
*,
|
|
3508
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
3509
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
3510
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
3511
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
3512
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
3513
|
+
network: typing.Optional[Network] = None,
|
|
3514
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
3515
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3516
|
+
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
3517
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
3518
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
3519
|
+
) -> None:
|
|
3520
|
+
'''(experimental) Initializes the adapter.
|
|
3521
|
+
|
|
3522
|
+
:param scope: -
|
|
3523
|
+
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
3524
|
+
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
3525
|
+
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
3526
|
+
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
3527
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
3528
|
+
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
3529
|
+
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
3530
|
+
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
3531
|
+
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
3532
|
+
:param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
|
|
3533
|
+
:param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
|
|
3534
|
+
|
|
3535
|
+
:stability: experimental
|
|
3536
|
+
'''
|
|
3537
|
+
if __debug__:
|
|
3538
|
+
type_hints = typing.get_type_hints(_typecheckingstub__3fe79d0c4a3a771012bc95cea6a690155ea89fa70073f87564e65aad5cdfdb64)
|
|
3539
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
3540
|
+
props = BaseDocumentProcessingProps(
|
|
3541
|
+
document_processing_table=document_processing_table,
|
|
3542
|
+
enable_observability=enable_observability,
|
|
3543
|
+
encryption_key=encryption_key,
|
|
3544
|
+
eventbridge_broker=eventbridge_broker,
|
|
3545
|
+
ingress_adapter=ingress_adapter,
|
|
3546
|
+
network=network,
|
|
3547
|
+
removal_policy=removal_policy,
|
|
3548
|
+
workflow_timeout=workflow_timeout,
|
|
3549
|
+
log_group_data_protection=log_group_data_protection,
|
|
3550
|
+
metric_namespace=metric_namespace,
|
|
3551
|
+
metric_service_name=metric_service_name,
|
|
3552
|
+
)
|
|
3553
|
+
|
|
3554
|
+
return typing.cast(None, jsii.invoke(self, "init", [scope, props]))
|
|
3555
|
+
|
|
3556
|
+
|
|
3557
|
+
@jsii.data_type(
|
|
3558
|
+
jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.QueuedS3AdapterProps",
|
|
3559
|
+
jsii_struct_bases=[],
|
|
3560
|
+
name_mapping={
|
|
3561
|
+
"bucket": "bucket",
|
|
3562
|
+
"dlq_max_receive_count": "dlqMaxReceiveCount",
|
|
3563
|
+
"failed_prefix": "failedPrefix",
|
|
3564
|
+
"processed_prefix": "processedPrefix",
|
|
3565
|
+
"queue_visibility_timeout": "queueVisibilityTimeout",
|
|
3566
|
+
"raw_prefix": "rawPrefix",
|
|
3567
|
+
},
|
|
3568
|
+
)
|
|
3569
|
+
class QueuedS3AdapterProps:
|
|
3570
|
+
def __init__(
|
|
3571
|
+
self,
|
|
3572
|
+
*,
|
|
3573
|
+
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
3574
|
+
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
3575
|
+
failed_prefix: typing.Optional[builtins.str] = None,
|
|
3576
|
+
processed_prefix: typing.Optional[builtins.str] = None,
|
|
3577
|
+
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3578
|
+
raw_prefix: typing.Optional[builtins.str] = None,
|
|
3579
|
+
) -> None:
|
|
3580
|
+
'''(experimental) Props for the Queued S3 Adapter.
|
|
3581
|
+
|
|
3582
|
+
:param bucket: (experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/). If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy. Default: create a new bucket
|
|
3583
|
+
:param dlq_max_receive_count: (experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. Default: 5
|
|
3584
|
+
:param failed_prefix: (experimental) S3 prefix where the files that failed processing would be stored. Default: "failed/"
|
|
3585
|
+
:param processed_prefix: (experimental) S3 prefix where the processed files would be stored. Default: "processed/"
|
|
3586
|
+
:param queue_visibility_timeout: (experimental) SQS queue visibility timeout for processing messages. Should be longer than expected processing time to prevent duplicate processing. Default: Duration.seconds(300)
|
|
3587
|
+
:param raw_prefix: (experimental) S3 prefix where the raw files would be stored. This serves as the trigger point for processing Default: "raw/"
|
|
3588
|
+
|
|
3589
|
+
:stability: experimental
|
|
3590
|
+
'''
|
|
3591
|
+
if __debug__:
|
|
3592
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c2db7ec0d4b3e93062e1f20f29f9821e5a0fd526ecf05f9ccaa6db663fb1e8de)
|
|
3593
|
+
check_type(argname="argument bucket", value=bucket, expected_type=type_hints["bucket"])
|
|
3594
|
+
check_type(argname="argument dlq_max_receive_count", value=dlq_max_receive_count, expected_type=type_hints["dlq_max_receive_count"])
|
|
3595
|
+
check_type(argname="argument failed_prefix", value=failed_prefix, expected_type=type_hints["failed_prefix"])
|
|
3596
|
+
check_type(argname="argument processed_prefix", value=processed_prefix, expected_type=type_hints["processed_prefix"])
|
|
3597
|
+
check_type(argname="argument queue_visibility_timeout", value=queue_visibility_timeout, expected_type=type_hints["queue_visibility_timeout"])
|
|
3598
|
+
check_type(argname="argument raw_prefix", value=raw_prefix, expected_type=type_hints["raw_prefix"])
|
|
3599
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
3600
|
+
if bucket is not None:
|
|
3601
|
+
self._values["bucket"] = bucket
|
|
3602
|
+
if dlq_max_receive_count is not None:
|
|
3603
|
+
self._values["dlq_max_receive_count"] = dlq_max_receive_count
|
|
3604
|
+
if failed_prefix is not None:
|
|
3605
|
+
self._values["failed_prefix"] = failed_prefix
|
|
3606
|
+
if processed_prefix is not None:
|
|
3607
|
+
self._values["processed_prefix"] = processed_prefix
|
|
3608
|
+
if queue_visibility_timeout is not None:
|
|
3609
|
+
self._values["queue_visibility_timeout"] = queue_visibility_timeout
|
|
3610
|
+
if raw_prefix is not None:
|
|
3611
|
+
self._values["raw_prefix"] = raw_prefix
|
|
3612
|
+
|
|
3613
|
+
@builtins.property
|
|
3614
|
+
def bucket(self) -> typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket]:
|
|
3615
|
+
'''(experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/).
|
|
3616
|
+
|
|
3617
|
+
If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
3618
|
+
|
|
3619
|
+
:default: create a new bucket
|
|
3620
|
+
|
|
3621
|
+
:stability: experimental
|
|
3622
|
+
'''
|
|
3623
|
+
result = self._values.get("bucket")
|
|
3624
|
+
return typing.cast(typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket], result)
|
|
3625
|
+
|
|
3626
|
+
@builtins.property
|
|
3627
|
+
def dlq_max_receive_count(self) -> typing.Optional[jsii.Number]:
|
|
3628
|
+
'''(experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue.
|
|
3629
|
+
|
|
3630
|
+
:default: 5
|
|
3631
|
+
|
|
3632
|
+
:stability: experimental
|
|
3633
|
+
'''
|
|
3634
|
+
result = self._values.get("dlq_max_receive_count")
|
|
3635
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
3636
|
+
|
|
3637
|
+
@builtins.property
|
|
3638
|
+
def failed_prefix(self) -> typing.Optional[builtins.str]:
|
|
3639
|
+
'''(experimental) S3 prefix where the files that failed processing would be stored.
|
|
3640
|
+
|
|
3641
|
+
:default: "failed/"
|
|
3642
|
+
|
|
3643
|
+
:stability: experimental
|
|
3644
|
+
'''
|
|
3645
|
+
result = self._values.get("failed_prefix")
|
|
3646
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
3647
|
+
|
|
3648
|
+
@builtins.property
|
|
3649
|
+
def processed_prefix(self) -> typing.Optional[builtins.str]:
|
|
3650
|
+
'''(experimental) S3 prefix where the processed files would be stored.
|
|
3651
|
+
|
|
3652
|
+
:default: "processed/"
|
|
3653
|
+
|
|
3654
|
+
:stability: experimental
|
|
3655
|
+
'''
|
|
3656
|
+
result = self._values.get("processed_prefix")
|
|
3657
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
3658
|
+
|
|
3659
|
+
@builtins.property
|
|
3660
|
+
def queue_visibility_timeout(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
|
|
3661
|
+
'''(experimental) SQS queue visibility timeout for processing messages.
|
|
3662
|
+
|
|
3663
|
+
Should be longer than expected processing time to prevent duplicate processing.
|
|
3664
|
+
|
|
3665
|
+
:default: Duration.seconds(300)
|
|
3666
|
+
|
|
3667
|
+
:stability: experimental
|
|
3668
|
+
'''
|
|
3669
|
+
result = self._values.get("queue_visibility_timeout")
|
|
3670
|
+
return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
|
|
3671
|
+
|
|
3672
|
+
@builtins.property
|
|
3673
|
+
def raw_prefix(self) -> typing.Optional[builtins.str]:
|
|
3674
|
+
'''(experimental) S3 prefix where the raw files would be stored.
|
|
3675
|
+
|
|
3676
|
+
This serves as the trigger point for processing
|
|
3677
|
+
|
|
3678
|
+
:default: "raw/"
|
|
3679
|
+
|
|
3680
|
+
:stability: experimental
|
|
3681
|
+
'''
|
|
3682
|
+
result = self._values.get("raw_prefix")
|
|
3683
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
3684
|
+
|
|
3685
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
3686
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
3687
|
+
|
|
3688
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
3689
|
+
return not (rhs == self)
|
|
3690
|
+
|
|
3691
|
+
def __repr__(self) -> str:
|
|
3692
|
+
return "QueuedS3AdapterProps(%s)" % ", ".join(
|
|
3693
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
3694
|
+
)
|
|
3695
|
+
|
|
3696
|
+
|
|
3697
|
+
@jsii.implements(_aws_cdk_ceddda9d.IPropertyInjector)
|
|
3698
|
+
class StateMachineObservabilityPropertyInjector(
|
|
3699
|
+
metaclass=jsii.JSIIMeta,
|
|
3700
|
+
jsii_type="@cdklabs/cdk-appmod-catalog-blueprints.StateMachineObservabilityPropertyInjector",
|
|
3701
|
+
):
|
|
3702
|
+
'''
|
|
3703
|
+
:stability: experimental
|
|
3704
|
+
'''
|
|
3705
|
+
|
|
3706
|
+
def __init__(
|
|
3707
|
+
self,
|
|
3708
|
+
*,
|
|
3709
|
+
data_protection_identifiers: typing.Optional[typing.Sequence[_aws_cdk_aws_logs_ceddda9d.DataIdentifier]] = None,
|
|
3710
|
+
log_group_encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
3711
|
+
) -> None:
|
|
3712
|
+
'''
|
|
3075
3713
|
:param data_protection_identifiers: (experimental) List of DataIdentifiers that would be used as part of the Data Protection Policy that would be created for the log group. Default: Data Protection Policy won't be enabled
|
|
3076
3714
|
:param log_group_encryption_key: (experimental) Encryption key that would be used to encrypt the relevant log group. Default: a new KMS key would automatically be created
|
|
3077
3715
|
|
|
@@ -3167,14 +3805,12 @@ class BaseDocumentProcessing(
|
|
|
3167
3805
|
scope: _constructs_77d1e7e8.Construct,
|
|
3168
3806
|
id: builtins.str,
|
|
3169
3807
|
*,
|
|
3170
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
3171
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
3172
3808
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
3173
3809
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
3174
3810
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
3175
3811
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
3812
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
3176
3813
|
network: typing.Optional[Network] = None,
|
|
3177
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3178
3814
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
3179
3815
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3180
3816
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
@@ -3188,14 +3824,12 @@ class BaseDocumentProcessing(
|
|
|
3188
3824
|
|
|
3189
3825
|
:param scope: - The scope in which to define this construct.
|
|
3190
3826
|
:param id: - The scoped construct ID. Must be unique within the scope.
|
|
3191
|
-
:param bucket: (experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/). If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
3192
|
-
:param dlq_max_receive_count: (experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. Default: 5
|
|
3193
3827
|
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
3194
3828
|
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
3195
3829
|
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
3196
3830
|
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
3831
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
3197
3832
|
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
3198
|
-
:param queue_visibility_timeout: (experimental) SQS queue visibility timeout for processing messages. Should be longer than expected processing time to prevent duplicate processing. Default: Duration.seconds(300)
|
|
3199
3833
|
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
3200
3834
|
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
3201
3835
|
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
@@ -3209,14 +3843,12 @@ class BaseDocumentProcessing(
|
|
|
3209
3843
|
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
3210
3844
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
3211
3845
|
props = BaseDocumentProcessingProps(
|
|
3212
|
-
bucket=bucket,
|
|
3213
|
-
dlq_max_receive_count=dlq_max_receive_count,
|
|
3214
3846
|
document_processing_table=document_processing_table,
|
|
3215
3847
|
enable_observability=enable_observability,
|
|
3216
3848
|
encryption_key=encryption_key,
|
|
3217
3849
|
eventbridge_broker=eventbridge_broker,
|
|
3850
|
+
ingress_adapter=ingress_adapter,
|
|
3218
3851
|
network=network,
|
|
3219
|
-
queue_visibility_timeout=queue_visibility_timeout,
|
|
3220
3852
|
removal_policy=removal_policy,
|
|
3221
3853
|
workflow_timeout=workflow_timeout,
|
|
3222
3854
|
log_group_data_protection=log_group_data_protection,
|
|
@@ -3273,21 +3905,6 @@ class BaseDocumentProcessing(
|
|
|
3273
3905
|
check_type(argname="argument state_machine_id", value=state_machine_id, expected_type=type_hints["state_machine_id"])
|
|
3274
3906
|
return typing.cast(_aws_cdk_aws_stepfunctions_ceddda9d.StateMachine, jsii.invoke(self, "handleStateMachineCreation", [state_machine_id]))
|
|
3275
3907
|
|
|
3276
|
-
@jsii.member(jsii_name="handleWorkflowTrigger")
|
|
3277
|
-
def _handle_workflow_trigger(
|
|
3278
|
-
self,
|
|
3279
|
-
state_machine: _aws_cdk_aws_stepfunctions_ceddda9d.StateMachine,
|
|
3280
|
-
) -> None:
|
|
3281
|
-
'''
|
|
3282
|
-
:param state_machine: -
|
|
3283
|
-
|
|
3284
|
-
:stability: experimental
|
|
3285
|
-
'''
|
|
3286
|
-
if __debug__:
|
|
3287
|
-
type_hints = typing.get_type_hints(_typecheckingstub__51565b317b75c58d9a9fb26bd3a0b7c471bf8844bfd0cc94dd43d1850d7ab957)
|
|
3288
|
-
check_type(argname="argument state_machine", value=state_machine, expected_type=type_hints["state_machine"])
|
|
3289
|
-
return typing.cast(None, jsii.invoke(self, "handleWorkflowTrigger", [state_machine]))
|
|
3290
|
-
|
|
3291
3908
|
@jsii.member(jsii_name="metrics")
|
|
3292
3909
|
def metrics(self) -> typing.List[_aws_cdk_aws_cloudwatch_ceddda9d.IMetric]:
|
|
3293
3910
|
'''
|
|
@@ -3327,24 +3944,6 @@ class BaseDocumentProcessing(
|
|
|
3327
3944
|
'''
|
|
3328
3945
|
...
|
|
3329
3946
|
|
|
3330
|
-
@builtins.property
|
|
3331
|
-
@jsii.member(jsii_name="bucket")
|
|
3332
|
-
def bucket(self) -> _aws_cdk_aws_s3_ceddda9d.Bucket:
|
|
3333
|
-
'''(experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/).
|
|
3334
|
-
|
|
3335
|
-
:stability: experimental
|
|
3336
|
-
'''
|
|
3337
|
-
return typing.cast(_aws_cdk_aws_s3_ceddda9d.Bucket, jsii.get(self, "bucket"))
|
|
3338
|
-
|
|
3339
|
-
@builtins.property
|
|
3340
|
-
@jsii.member(jsii_name="deadLetterQueue")
|
|
3341
|
-
def dead_letter_queue(self) -> _aws_cdk_aws_sqs_ceddda9d.Queue:
|
|
3342
|
-
'''(experimental) Dead letter queue.
|
|
3343
|
-
|
|
3344
|
-
:stability: experimental
|
|
3345
|
-
'''
|
|
3346
|
-
return typing.cast(_aws_cdk_aws_sqs_ceddda9d.Queue, jsii.get(self, "deadLetterQueue"))
|
|
3347
|
-
|
|
3348
3947
|
@builtins.property
|
|
3349
3948
|
@jsii.member(jsii_name="documentProcessingTable")
|
|
3350
3949
|
def document_processing_table(self) -> _aws_cdk_aws_dynamodb_ceddda9d.Table:
|
|
@@ -3363,6 +3962,15 @@ class BaseDocumentProcessing(
|
|
|
3363
3962
|
'''
|
|
3364
3963
|
return typing.cast(_aws_cdk_aws_kms_ceddda9d.Key, jsii.get(self, "encryptionKey"))
|
|
3365
3964
|
|
|
3965
|
+
@builtins.property
|
|
3966
|
+
@jsii.member(jsii_name="ingressAdapter")
|
|
3967
|
+
def ingress_adapter(self) -> IAdapter:
|
|
3968
|
+
'''(experimental) Ingress adapter, responsible for triggering workflow.
|
|
3969
|
+
|
|
3970
|
+
:stability: experimental
|
|
3971
|
+
'''
|
|
3972
|
+
return typing.cast(IAdapter, jsii.get(self, "ingressAdapter"))
|
|
3973
|
+
|
|
3366
3974
|
@builtins.property
|
|
3367
3975
|
@jsii.member(jsii_name="logGroupDataProtection")
|
|
3368
3976
|
def log_group_data_protection(self) -> LogGroupDataProtectionProps:
|
|
@@ -3392,24 +4000,6 @@ class BaseDocumentProcessing(
|
|
|
3392
4000
|
'''
|
|
3393
4001
|
return typing.cast(builtins.str, jsii.get(self, "metricServiceName"))
|
|
3394
4002
|
|
|
3395
|
-
@builtins.property
|
|
3396
|
-
@jsii.member(jsii_name="queue")
|
|
3397
|
-
def queue(self) -> _aws_cdk_aws_sqs_ceddda9d.Queue:
|
|
3398
|
-
'''(experimental) SQS queue for reliable message processing with dead letter queue support.
|
|
3399
|
-
|
|
3400
|
-
:stability: experimental
|
|
3401
|
-
'''
|
|
3402
|
-
return typing.cast(_aws_cdk_aws_sqs_ceddda9d.Queue, jsii.get(self, "queue"))
|
|
3403
|
-
|
|
3404
|
-
@builtins.property
|
|
3405
|
-
@jsii.member(jsii_name="bucketEncryptionKey")
|
|
3406
|
-
def bucket_encryption_key(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey]:
|
|
3407
|
-
'''(experimental) Encryption key used by the DocumentProcessingBucket.
|
|
3408
|
-
|
|
3409
|
-
:stability: experimental
|
|
3410
|
-
'''
|
|
3411
|
-
return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey], jsii.get(self, "bucketEncryptionKey"))
|
|
3412
|
-
|
|
3413
4003
|
|
|
3414
4004
|
class _BaseDocumentProcessingProxy(BaseDocumentProcessing):
|
|
3415
4005
|
@jsii.member(jsii_name="classificationStep")
|
|
@@ -3483,14 +4073,12 @@ typing.cast(typing.Any, BaseDocumentProcessing).__jsii_proxy_class__ = lambda :
|
|
|
3483
4073
|
"log_group_data_protection": "logGroupDataProtection",
|
|
3484
4074
|
"metric_namespace": "metricNamespace",
|
|
3485
4075
|
"metric_service_name": "metricServiceName",
|
|
3486
|
-
"bucket": "bucket",
|
|
3487
|
-
"dlq_max_receive_count": "dlqMaxReceiveCount",
|
|
3488
4076
|
"document_processing_table": "documentProcessingTable",
|
|
3489
4077
|
"enable_observability": "enableObservability",
|
|
3490
4078
|
"encryption_key": "encryptionKey",
|
|
3491
4079
|
"eventbridge_broker": "eventbridgeBroker",
|
|
4080
|
+
"ingress_adapter": "ingressAdapter",
|
|
3492
4081
|
"network": "network",
|
|
3493
|
-
"queue_visibility_timeout": "queueVisibilityTimeout",
|
|
3494
4082
|
"removal_policy": "removalPolicy",
|
|
3495
4083
|
"workflow_timeout": "workflowTimeout",
|
|
3496
4084
|
},
|
|
@@ -3502,14 +4090,12 @@ class BaseDocumentProcessingProps(ObservableProps):
|
|
|
3502
4090
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
3503
4091
|
metric_namespace: typing.Optional[builtins.str] = None,
|
|
3504
4092
|
metric_service_name: typing.Optional[builtins.str] = None,
|
|
3505
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
3506
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
3507
4093
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
3508
4094
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
3509
4095
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
3510
4096
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
4097
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
3511
4098
|
network: typing.Optional[Network] = None,
|
|
3512
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3513
4099
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
3514
4100
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3515
4101
|
) -> None:
|
|
@@ -3518,14 +4104,12 @@ class BaseDocumentProcessingProps(ObservableProps):
|
|
|
3518
4104
|
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
3519
4105
|
:param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
|
|
3520
4106
|
:param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
|
|
3521
|
-
:param bucket: (experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/). If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
3522
|
-
:param dlq_max_receive_count: (experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. Default: 5
|
|
3523
4107
|
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
3524
4108
|
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
3525
4109
|
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
3526
4110
|
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
4111
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
3527
4112
|
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
3528
|
-
:param queue_visibility_timeout: (experimental) SQS queue visibility timeout for processing messages. Should be longer than expected processing time to prevent duplicate processing. Default: Duration.seconds(300)
|
|
3529
4113
|
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
3530
4114
|
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
3531
4115
|
|
|
@@ -3538,14 +4122,12 @@ class BaseDocumentProcessingProps(ObservableProps):
|
|
|
3538
4122
|
check_type(argname="argument log_group_data_protection", value=log_group_data_protection, expected_type=type_hints["log_group_data_protection"])
|
|
3539
4123
|
check_type(argname="argument metric_namespace", value=metric_namespace, expected_type=type_hints["metric_namespace"])
|
|
3540
4124
|
check_type(argname="argument metric_service_name", value=metric_service_name, expected_type=type_hints["metric_service_name"])
|
|
3541
|
-
check_type(argname="argument bucket", value=bucket, expected_type=type_hints["bucket"])
|
|
3542
|
-
check_type(argname="argument dlq_max_receive_count", value=dlq_max_receive_count, expected_type=type_hints["dlq_max_receive_count"])
|
|
3543
4125
|
check_type(argname="argument document_processing_table", value=document_processing_table, expected_type=type_hints["document_processing_table"])
|
|
3544
4126
|
check_type(argname="argument enable_observability", value=enable_observability, expected_type=type_hints["enable_observability"])
|
|
3545
4127
|
check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
|
|
3546
4128
|
check_type(argname="argument eventbridge_broker", value=eventbridge_broker, expected_type=type_hints["eventbridge_broker"])
|
|
4129
|
+
check_type(argname="argument ingress_adapter", value=ingress_adapter, expected_type=type_hints["ingress_adapter"])
|
|
3547
4130
|
check_type(argname="argument network", value=network, expected_type=type_hints["network"])
|
|
3548
|
-
check_type(argname="argument queue_visibility_timeout", value=queue_visibility_timeout, expected_type=type_hints["queue_visibility_timeout"])
|
|
3549
4131
|
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
3550
4132
|
check_type(argname="argument workflow_timeout", value=workflow_timeout, expected_type=type_hints["workflow_timeout"])
|
|
3551
4133
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
@@ -3555,10 +4137,6 @@ class BaseDocumentProcessingProps(ObservableProps):
|
|
|
3555
4137
|
self._values["metric_namespace"] = metric_namespace
|
|
3556
4138
|
if metric_service_name is not None:
|
|
3557
4139
|
self._values["metric_service_name"] = metric_service_name
|
|
3558
|
-
if bucket is not None:
|
|
3559
|
-
self._values["bucket"] = bucket
|
|
3560
|
-
if dlq_max_receive_count is not None:
|
|
3561
|
-
self._values["dlq_max_receive_count"] = dlq_max_receive_count
|
|
3562
4140
|
if document_processing_table is not None:
|
|
3563
4141
|
self._values["document_processing_table"] = document_processing_table
|
|
3564
4142
|
if enable_observability is not None:
|
|
@@ -3567,10 +4145,10 @@ class BaseDocumentProcessingProps(ObservableProps):
|
|
|
3567
4145
|
self._values["encryption_key"] = encryption_key
|
|
3568
4146
|
if eventbridge_broker is not None:
|
|
3569
4147
|
self._values["eventbridge_broker"] = eventbridge_broker
|
|
4148
|
+
if ingress_adapter is not None:
|
|
4149
|
+
self._values["ingress_adapter"] = ingress_adapter
|
|
3570
4150
|
if network is not None:
|
|
3571
4151
|
self._values["network"] = network
|
|
3572
|
-
if queue_visibility_timeout is not None:
|
|
3573
|
-
self._values["queue_visibility_timeout"] = queue_visibility_timeout
|
|
3574
4152
|
if removal_policy is not None:
|
|
3575
4153
|
self._values["removal_policy"] = removal_policy
|
|
3576
4154
|
if workflow_timeout is not None:
|
|
@@ -3609,28 +4187,6 @@ class BaseDocumentProcessingProps(ObservableProps):
|
|
|
3609
4187
|
result = self._values.get("metric_service_name")
|
|
3610
4188
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
3611
4189
|
|
|
3612
|
-
@builtins.property
|
|
3613
|
-
def bucket(self) -> typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket]:
|
|
3614
|
-
'''(experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/).
|
|
3615
|
-
|
|
3616
|
-
If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
3617
|
-
|
|
3618
|
-
:stability: experimental
|
|
3619
|
-
'''
|
|
3620
|
-
result = self._values.get("bucket")
|
|
3621
|
-
return typing.cast(typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket], result)
|
|
3622
|
-
|
|
3623
|
-
@builtins.property
|
|
3624
|
-
def dlq_max_receive_count(self) -> typing.Optional[jsii.Number]:
|
|
3625
|
-
'''(experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue.
|
|
3626
|
-
|
|
3627
|
-
:default: 5
|
|
3628
|
-
|
|
3629
|
-
:stability: experimental
|
|
3630
|
-
'''
|
|
3631
|
-
result = self._values.get("dlq_max_receive_count")
|
|
3632
|
-
return typing.cast(typing.Optional[jsii.Number], result)
|
|
3633
|
-
|
|
3634
4190
|
@builtins.property
|
|
3635
4191
|
def document_processing_table(
|
|
3636
4192
|
self,
|
|
@@ -3678,28 +4234,26 @@ class BaseDocumentProcessingProps(ObservableProps):
|
|
|
3678
4234
|
return typing.cast(typing.Optional[EventbridgeBroker], result)
|
|
3679
4235
|
|
|
3680
4236
|
@builtins.property
|
|
3681
|
-
def
|
|
3682
|
-
'''(experimental)
|
|
4237
|
+
def ingress_adapter(self) -> typing.Optional[IAdapter]:
|
|
4238
|
+
'''(experimental) Adapter that defines how the document processing workflow is triggered.
|
|
3683
4239
|
|
|
3684
|
-
:default:
|
|
4240
|
+
:default: QueuedS3Adapter
|
|
3685
4241
|
|
|
3686
4242
|
:stability: experimental
|
|
3687
4243
|
'''
|
|
3688
|
-
result = self._values.get("
|
|
3689
|
-
return typing.cast(typing.Optional[
|
|
4244
|
+
result = self._values.get("ingress_adapter")
|
|
4245
|
+
return typing.cast(typing.Optional[IAdapter], result)
|
|
3690
4246
|
|
|
3691
4247
|
@builtins.property
|
|
3692
|
-
def
|
|
3693
|
-
'''(experimental)
|
|
3694
|
-
|
|
3695
|
-
Should be longer than expected processing time to prevent duplicate processing.
|
|
4248
|
+
def network(self) -> typing.Optional[Network]:
|
|
4249
|
+
'''(experimental) Resources that can run inside a VPC will follow the provided network configuration.
|
|
3696
4250
|
|
|
3697
|
-
:default:
|
|
4251
|
+
:default: resources will run outside of a VPC
|
|
3698
4252
|
|
|
3699
4253
|
:stability: experimental
|
|
3700
4254
|
'''
|
|
3701
|
-
result = self._values.get("
|
|
3702
|
-
return typing.cast(typing.Optional[
|
|
4255
|
+
result = self._values.get("network")
|
|
4256
|
+
return typing.cast(typing.Optional[Network], result)
|
|
3703
4257
|
|
|
3704
4258
|
@builtins.property
|
|
3705
4259
|
def removal_policy(self) -> typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy]:
|
|
@@ -3801,14 +4355,12 @@ class BedrockDocumentProcessing(
|
|
|
3801
4355
|
processing_prompt: typing.Optional[builtins.str] = None,
|
|
3802
4356
|
step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3803
4357
|
use_cross_region_inference: typing.Optional[builtins.bool] = None,
|
|
3804
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
3805
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
3806
4358
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
3807
4359
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
3808
4360
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
3809
4361
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
4362
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
3810
4363
|
network: typing.Optional[Network] = None,
|
|
3811
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3812
4364
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
3813
4365
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
3814
4366
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
@@ -3832,14 +4384,12 @@ class BedrockDocumentProcessing(
|
|
|
3832
4384
|
:param processing_prompt: (experimental) Custom prompt template for document extraction. Must include placeholder for document content and classification result. Default: DEFAULT_EXTRACTION_PROMPT
|
|
3833
4385
|
:param step_timeouts: (experimental) Timeout for individual Step Functions tasks (classification, extraction, etc.). Default: Duration.minutes(5)
|
|
3834
4386
|
:param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
|
|
3835
|
-
:param bucket: (experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/). If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
3836
|
-
:param dlq_max_receive_count: (experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. Default: 5
|
|
3837
4387
|
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
3838
4388
|
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
3839
4389
|
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
3840
4390
|
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
4391
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
3841
4392
|
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
3842
|
-
:param queue_visibility_timeout: (experimental) SQS queue visibility timeout for processing messages. Should be longer than expected processing time to prevent duplicate processing. Default: Duration.seconds(300)
|
|
3843
4393
|
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
3844
4394
|
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
3845
4395
|
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
@@ -3862,14 +4412,12 @@ class BedrockDocumentProcessing(
|
|
|
3862
4412
|
processing_prompt=processing_prompt,
|
|
3863
4413
|
step_timeouts=step_timeouts,
|
|
3864
4414
|
use_cross_region_inference=use_cross_region_inference,
|
|
3865
|
-
bucket=bucket,
|
|
3866
|
-
dlq_max_receive_count=dlq_max_receive_count,
|
|
3867
4415
|
document_processing_table=document_processing_table,
|
|
3868
4416
|
enable_observability=enable_observability,
|
|
3869
4417
|
encryption_key=encryption_key,
|
|
3870
4418
|
eventbridge_broker=eventbridge_broker,
|
|
4419
|
+
ingress_adapter=ingress_adapter,
|
|
3871
4420
|
network=network,
|
|
3872
|
-
queue_visibility_timeout=queue_visibility_timeout,
|
|
3873
4421
|
removal_policy=removal_policy,
|
|
3874
4422
|
workflow_timeout=workflow_timeout,
|
|
3875
4423
|
log_group_data_protection=log_group_data_protection,
|
|
@@ -4032,14 +4580,12 @@ class BedrockDocumentProcessing(
|
|
|
4032
4580
|
"log_group_data_protection": "logGroupDataProtection",
|
|
4033
4581
|
"metric_namespace": "metricNamespace",
|
|
4034
4582
|
"metric_service_name": "metricServiceName",
|
|
4035
|
-
"bucket": "bucket",
|
|
4036
|
-
"dlq_max_receive_count": "dlqMaxReceiveCount",
|
|
4037
4583
|
"document_processing_table": "documentProcessingTable",
|
|
4038
4584
|
"enable_observability": "enableObservability",
|
|
4039
4585
|
"encryption_key": "encryptionKey",
|
|
4040
4586
|
"eventbridge_broker": "eventbridgeBroker",
|
|
4587
|
+
"ingress_adapter": "ingressAdapter",
|
|
4041
4588
|
"network": "network",
|
|
4042
|
-
"queue_visibility_timeout": "queueVisibilityTimeout",
|
|
4043
4589
|
"removal_policy": "removalPolicy",
|
|
4044
4590
|
"workflow_timeout": "workflowTimeout",
|
|
4045
4591
|
"classification_model_id": "classificationModelId",
|
|
@@ -4060,14 +4606,12 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
|
|
|
4060
4606
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4061
4607
|
metric_namespace: typing.Optional[builtins.str] = None,
|
|
4062
4608
|
metric_service_name: typing.Optional[builtins.str] = None,
|
|
4063
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
4064
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
4065
4609
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
4066
4610
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
4067
4611
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
4068
4612
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
4613
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
4069
4614
|
network: typing.Optional[Network] = None,
|
|
4070
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
4071
4615
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
4072
4616
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
4073
4617
|
classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
|
|
@@ -4087,14 +4631,12 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
|
|
|
4087
4631
|
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
4088
4632
|
:param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
|
|
4089
4633
|
:param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
|
|
4090
|
-
:param bucket: (experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/). If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
4091
|
-
:param dlq_max_receive_count: (experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. Default: 5
|
|
4092
4634
|
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
4093
4635
|
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
4094
4636
|
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
4095
4637
|
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
4638
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
4096
4639
|
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
4097
|
-
:param queue_visibility_timeout: (experimental) SQS queue visibility timeout for processing messages. Should be longer than expected processing time to prevent duplicate processing. Default: Duration.seconds(300)
|
|
4098
4640
|
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
4099
4641
|
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
4100
4642
|
:param classification_model_id: (experimental) Bedrock foundation model for document classification step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
|
|
@@ -4116,14 +4658,12 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
|
|
|
4116
4658
|
check_type(argname="argument log_group_data_protection", value=log_group_data_protection, expected_type=type_hints["log_group_data_protection"])
|
|
4117
4659
|
check_type(argname="argument metric_namespace", value=metric_namespace, expected_type=type_hints["metric_namespace"])
|
|
4118
4660
|
check_type(argname="argument metric_service_name", value=metric_service_name, expected_type=type_hints["metric_service_name"])
|
|
4119
|
-
check_type(argname="argument bucket", value=bucket, expected_type=type_hints["bucket"])
|
|
4120
|
-
check_type(argname="argument dlq_max_receive_count", value=dlq_max_receive_count, expected_type=type_hints["dlq_max_receive_count"])
|
|
4121
4661
|
check_type(argname="argument document_processing_table", value=document_processing_table, expected_type=type_hints["document_processing_table"])
|
|
4122
4662
|
check_type(argname="argument enable_observability", value=enable_observability, expected_type=type_hints["enable_observability"])
|
|
4123
4663
|
check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
|
|
4124
4664
|
check_type(argname="argument eventbridge_broker", value=eventbridge_broker, expected_type=type_hints["eventbridge_broker"])
|
|
4665
|
+
check_type(argname="argument ingress_adapter", value=ingress_adapter, expected_type=type_hints["ingress_adapter"])
|
|
4125
4666
|
check_type(argname="argument network", value=network, expected_type=type_hints["network"])
|
|
4126
|
-
check_type(argname="argument queue_visibility_timeout", value=queue_visibility_timeout, expected_type=type_hints["queue_visibility_timeout"])
|
|
4127
4667
|
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
4128
4668
|
check_type(argname="argument workflow_timeout", value=workflow_timeout, expected_type=type_hints["workflow_timeout"])
|
|
4129
4669
|
check_type(argname="argument classification_model_id", value=classification_model_id, expected_type=type_hints["classification_model_id"])
|
|
@@ -4142,10 +4682,6 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
|
|
|
4142
4682
|
self._values["metric_namespace"] = metric_namespace
|
|
4143
4683
|
if metric_service_name is not None:
|
|
4144
4684
|
self._values["metric_service_name"] = metric_service_name
|
|
4145
|
-
if bucket is not None:
|
|
4146
|
-
self._values["bucket"] = bucket
|
|
4147
|
-
if dlq_max_receive_count is not None:
|
|
4148
|
-
self._values["dlq_max_receive_count"] = dlq_max_receive_count
|
|
4149
4685
|
if document_processing_table is not None:
|
|
4150
4686
|
self._values["document_processing_table"] = document_processing_table
|
|
4151
4687
|
if enable_observability is not None:
|
|
@@ -4154,10 +4690,10 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
|
|
|
4154
4690
|
self._values["encryption_key"] = encryption_key
|
|
4155
4691
|
if eventbridge_broker is not None:
|
|
4156
4692
|
self._values["eventbridge_broker"] = eventbridge_broker
|
|
4693
|
+
if ingress_adapter is not None:
|
|
4694
|
+
self._values["ingress_adapter"] = ingress_adapter
|
|
4157
4695
|
if network is not None:
|
|
4158
4696
|
self._values["network"] = network
|
|
4159
|
-
if queue_visibility_timeout is not None:
|
|
4160
|
-
self._values["queue_visibility_timeout"] = queue_visibility_timeout
|
|
4161
4697
|
if removal_policy is not None:
|
|
4162
4698
|
self._values["removal_policy"] = removal_policy
|
|
4163
4699
|
if workflow_timeout is not None:
|
|
@@ -4214,28 +4750,6 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
|
|
|
4214
4750
|
result = self._values.get("metric_service_name")
|
|
4215
4751
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
4216
4752
|
|
|
4217
|
-
@builtins.property
|
|
4218
|
-
def bucket(self) -> typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket]:
|
|
4219
|
-
'''(experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/).
|
|
4220
|
-
|
|
4221
|
-
If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
4222
|
-
|
|
4223
|
-
:stability: experimental
|
|
4224
|
-
'''
|
|
4225
|
-
result = self._values.get("bucket")
|
|
4226
|
-
return typing.cast(typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket], result)
|
|
4227
|
-
|
|
4228
|
-
@builtins.property
|
|
4229
|
-
def dlq_max_receive_count(self) -> typing.Optional[jsii.Number]:
|
|
4230
|
-
'''(experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue.
|
|
4231
|
-
|
|
4232
|
-
:default: 5
|
|
4233
|
-
|
|
4234
|
-
:stability: experimental
|
|
4235
|
-
'''
|
|
4236
|
-
result = self._values.get("dlq_max_receive_count")
|
|
4237
|
-
return typing.cast(typing.Optional[jsii.Number], result)
|
|
4238
|
-
|
|
4239
4753
|
@builtins.property
|
|
4240
4754
|
def document_processing_table(
|
|
4241
4755
|
self,
|
|
@@ -4283,28 +4797,26 @@ class BedrockDocumentProcessingProps(BaseDocumentProcessingProps):
|
|
|
4283
4797
|
return typing.cast(typing.Optional[EventbridgeBroker], result)
|
|
4284
4798
|
|
|
4285
4799
|
@builtins.property
|
|
4286
|
-
def
|
|
4287
|
-
'''(experimental)
|
|
4800
|
+
def ingress_adapter(self) -> typing.Optional[IAdapter]:
|
|
4801
|
+
'''(experimental) Adapter that defines how the document processing workflow is triggered.
|
|
4288
4802
|
|
|
4289
|
-
:default:
|
|
4803
|
+
:default: QueuedS3Adapter
|
|
4290
4804
|
|
|
4291
4805
|
:stability: experimental
|
|
4292
4806
|
'''
|
|
4293
|
-
result = self._values.get("
|
|
4294
|
-
return typing.cast(typing.Optional[
|
|
4807
|
+
result = self._values.get("ingress_adapter")
|
|
4808
|
+
return typing.cast(typing.Optional[IAdapter], result)
|
|
4295
4809
|
|
|
4296
4810
|
@builtins.property
|
|
4297
|
-
def
|
|
4298
|
-
'''(experimental)
|
|
4299
|
-
|
|
4300
|
-
Should be longer than expected processing time to prevent duplicate processing.
|
|
4811
|
+
def network(self) -> typing.Optional[Network]:
|
|
4812
|
+
'''(experimental) Resources that can run inside a VPC will follow the provided network configuration.
|
|
4301
4813
|
|
|
4302
|
-
:default:
|
|
4814
|
+
:default: resources will run outside of a VPC
|
|
4303
4815
|
|
|
4304
4816
|
:stability: experimental
|
|
4305
4817
|
'''
|
|
4306
|
-
result = self._values.get("
|
|
4307
|
-
return typing.cast(typing.Optional[
|
|
4818
|
+
result = self._values.get("network")
|
|
4819
|
+
return typing.cast(typing.Optional[Network], result)
|
|
4308
4820
|
|
|
4309
4821
|
@builtins.property
|
|
4310
4822
|
def removal_policy(self) -> typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy]:
|
|
@@ -4481,14 +4993,12 @@ class AgenticDocumentProcessing(
|
|
|
4481
4993
|
processing_prompt: typing.Optional[builtins.str] = None,
|
|
4482
4994
|
step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
4483
4995
|
use_cross_region_inference: typing.Optional[builtins.bool] = None,
|
|
4484
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
4485
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
4486
4996
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
4487
4997
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
4488
4998
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
4489
4999
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
5000
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
4490
5001
|
network: typing.Optional[Network] = None,
|
|
4491
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
4492
5002
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
4493
5003
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
4494
5004
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
@@ -4508,14 +5018,12 @@ class AgenticDocumentProcessing(
|
|
|
4508
5018
|
:param processing_prompt: (experimental) Custom prompt template for document extraction. Must include placeholder for document content and classification result. Default: DEFAULT_EXTRACTION_PROMPT
|
|
4509
5019
|
:param step_timeouts: (experimental) Timeout for individual Step Functions tasks (classification, extraction, etc.). Default: Duration.minutes(5)
|
|
4510
5020
|
:param use_cross_region_inference: (experimental) Enable cross-region inference for Bedrock models to improve availability and performance. When enabled, uses inference profiles instead of direct model invocation. Default: false
|
|
4511
|
-
:param bucket: (experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/). If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
4512
|
-
:param dlq_max_receive_count: (experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. Default: 5
|
|
4513
5021
|
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
4514
5022
|
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
4515
5023
|
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
4516
5024
|
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
5025
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
4517
5026
|
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
4518
|
-
:param queue_visibility_timeout: (experimental) SQS queue visibility timeout for processing messages. Should be longer than expected processing time to prevent duplicate processing. Default: Duration.seconds(300)
|
|
4519
5027
|
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
4520
5028
|
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
4521
5029
|
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
@@ -4539,14 +5047,12 @@ class AgenticDocumentProcessing(
|
|
|
4539
5047
|
processing_prompt=processing_prompt,
|
|
4540
5048
|
step_timeouts=step_timeouts,
|
|
4541
5049
|
use_cross_region_inference=use_cross_region_inference,
|
|
4542
|
-
bucket=bucket,
|
|
4543
|
-
dlq_max_receive_count=dlq_max_receive_count,
|
|
4544
5050
|
document_processing_table=document_processing_table,
|
|
4545
5051
|
enable_observability=enable_observability,
|
|
4546
5052
|
encryption_key=encryption_key,
|
|
4547
5053
|
eventbridge_broker=eventbridge_broker,
|
|
5054
|
+
ingress_adapter=ingress_adapter,
|
|
4548
5055
|
network=network,
|
|
4549
|
-
queue_visibility_timeout=queue_visibility_timeout,
|
|
4550
5056
|
removal_policy=removal_policy,
|
|
4551
5057
|
workflow_timeout=workflow_timeout,
|
|
4552
5058
|
log_group_data_protection=log_group_data_protection,
|
|
@@ -4578,14 +5084,12 @@ class AgenticDocumentProcessing(
|
|
|
4578
5084
|
"log_group_data_protection": "logGroupDataProtection",
|
|
4579
5085
|
"metric_namespace": "metricNamespace",
|
|
4580
5086
|
"metric_service_name": "metricServiceName",
|
|
4581
|
-
"bucket": "bucket",
|
|
4582
|
-
"dlq_max_receive_count": "dlqMaxReceiveCount",
|
|
4583
5087
|
"document_processing_table": "documentProcessingTable",
|
|
4584
5088
|
"enable_observability": "enableObservability",
|
|
4585
5089
|
"encryption_key": "encryptionKey",
|
|
4586
5090
|
"eventbridge_broker": "eventbridgeBroker",
|
|
5091
|
+
"ingress_adapter": "ingressAdapter",
|
|
4587
5092
|
"network": "network",
|
|
4588
|
-
"queue_visibility_timeout": "queueVisibilityTimeout",
|
|
4589
5093
|
"removal_policy": "removalPolicy",
|
|
4590
5094
|
"workflow_timeout": "workflowTimeout",
|
|
4591
5095
|
"classification_model_id": "classificationModelId",
|
|
@@ -4607,14 +5111,12 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
|
|
|
4607
5111
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4608
5112
|
metric_namespace: typing.Optional[builtins.str] = None,
|
|
4609
5113
|
metric_service_name: typing.Optional[builtins.str] = None,
|
|
4610
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
4611
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
4612
5114
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
4613
5115
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
4614
5116
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
4615
5117
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
5118
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
4616
5119
|
network: typing.Optional[Network] = None,
|
|
4617
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
4618
5120
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
4619
5121
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
4620
5122
|
classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
|
|
@@ -4632,14 +5134,12 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
|
|
|
4632
5134
|
:param log_group_data_protection: (experimental) Data protection related configuration. Default: a new KMS key would be generated
|
|
4633
5135
|
:param metric_namespace: (experimental) Business metric namespace. Default: would be defined per use case
|
|
4634
5136
|
:param metric_service_name: (experimental) Business metric service name dimension. Default: would be defined per use case
|
|
4635
|
-
:param bucket: (experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/). If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
4636
|
-
:param dlq_max_receive_count: (experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. Default: 5
|
|
4637
5137
|
:param document_processing_table: (experimental) DynamoDB table for storing document processing metadata and workflow state. If not provided, a new table will be created with DocumentId as partition key.
|
|
4638
5138
|
:param enable_observability: (experimental) Enable logging and tracing for all supporting resource. Default: false
|
|
4639
5139
|
:param encryption_key: (experimental) KMS key to be used. Default: A new key would be created
|
|
4640
5140
|
:param eventbridge_broker: (experimental) Optional EventBridge broker for publishing custom events during processing. If not provided, no custom events will be sent out.
|
|
5141
|
+
:param ingress_adapter: (experimental) Adapter that defines how the document processing workflow is triggered. Default: QueuedS3Adapter
|
|
4641
5142
|
:param network: (experimental) Resources that can run inside a VPC will follow the provided network configuration. Default: resources will run outside of a VPC
|
|
4642
|
-
:param queue_visibility_timeout: (experimental) SQS queue visibility timeout for processing messages. Should be longer than expected processing time to prevent duplicate processing. Default: Duration.seconds(300)
|
|
4643
5143
|
:param removal_policy: (experimental) Removal policy for created resources (bucket, table, queue). Default: RemovalPolicy.DESTROY
|
|
4644
5144
|
:param workflow_timeout: (experimental) Maximum execution time for the Step Functions workflow. Default: Duration.minutes(30)
|
|
4645
5145
|
:param classification_model_id: (experimental) Bedrock foundation model for document classification step. Default: FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_7_SONNET_20250219_V1_0
|
|
@@ -4664,14 +5164,12 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
|
|
|
4664
5164
|
check_type(argname="argument log_group_data_protection", value=log_group_data_protection, expected_type=type_hints["log_group_data_protection"])
|
|
4665
5165
|
check_type(argname="argument metric_namespace", value=metric_namespace, expected_type=type_hints["metric_namespace"])
|
|
4666
5166
|
check_type(argname="argument metric_service_name", value=metric_service_name, expected_type=type_hints["metric_service_name"])
|
|
4667
|
-
check_type(argname="argument bucket", value=bucket, expected_type=type_hints["bucket"])
|
|
4668
|
-
check_type(argname="argument dlq_max_receive_count", value=dlq_max_receive_count, expected_type=type_hints["dlq_max_receive_count"])
|
|
4669
5167
|
check_type(argname="argument document_processing_table", value=document_processing_table, expected_type=type_hints["document_processing_table"])
|
|
4670
5168
|
check_type(argname="argument enable_observability", value=enable_observability, expected_type=type_hints["enable_observability"])
|
|
4671
5169
|
check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
|
|
4672
5170
|
check_type(argname="argument eventbridge_broker", value=eventbridge_broker, expected_type=type_hints["eventbridge_broker"])
|
|
5171
|
+
check_type(argname="argument ingress_adapter", value=ingress_adapter, expected_type=type_hints["ingress_adapter"])
|
|
4673
5172
|
check_type(argname="argument network", value=network, expected_type=type_hints["network"])
|
|
4674
|
-
check_type(argname="argument queue_visibility_timeout", value=queue_visibility_timeout, expected_type=type_hints["queue_visibility_timeout"])
|
|
4675
5173
|
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
4676
5174
|
check_type(argname="argument workflow_timeout", value=workflow_timeout, expected_type=type_hints["workflow_timeout"])
|
|
4677
5175
|
check_type(argname="argument classification_model_id", value=classification_model_id, expected_type=type_hints["classification_model_id"])
|
|
@@ -4691,10 +5189,6 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
|
|
|
4691
5189
|
self._values["metric_namespace"] = metric_namespace
|
|
4692
5190
|
if metric_service_name is not None:
|
|
4693
5191
|
self._values["metric_service_name"] = metric_service_name
|
|
4694
|
-
if bucket is not None:
|
|
4695
|
-
self._values["bucket"] = bucket
|
|
4696
|
-
if dlq_max_receive_count is not None:
|
|
4697
|
-
self._values["dlq_max_receive_count"] = dlq_max_receive_count
|
|
4698
5192
|
if document_processing_table is not None:
|
|
4699
5193
|
self._values["document_processing_table"] = document_processing_table
|
|
4700
5194
|
if enable_observability is not None:
|
|
@@ -4703,10 +5197,10 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
|
|
|
4703
5197
|
self._values["encryption_key"] = encryption_key
|
|
4704
5198
|
if eventbridge_broker is not None:
|
|
4705
5199
|
self._values["eventbridge_broker"] = eventbridge_broker
|
|
5200
|
+
if ingress_adapter is not None:
|
|
5201
|
+
self._values["ingress_adapter"] = ingress_adapter
|
|
4706
5202
|
if network is not None:
|
|
4707
5203
|
self._values["network"] = network
|
|
4708
|
-
if queue_visibility_timeout is not None:
|
|
4709
|
-
self._values["queue_visibility_timeout"] = queue_visibility_timeout
|
|
4710
5204
|
if removal_policy is not None:
|
|
4711
5205
|
self._values["removal_policy"] = removal_policy
|
|
4712
5206
|
if workflow_timeout is not None:
|
|
@@ -4765,28 +5259,6 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
|
|
|
4765
5259
|
result = self._values.get("metric_service_name")
|
|
4766
5260
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
4767
5261
|
|
|
4768
|
-
@builtins.property
|
|
4769
|
-
def bucket(self) -> typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket]:
|
|
4770
|
-
'''(experimental) S3 bucket for document storage with organized prefixes (raw/, processed/, failed/).
|
|
4771
|
-
|
|
4772
|
-
If not provided, a new bucket will be created with auto-delete enabled based on removalPolicy.
|
|
4773
|
-
|
|
4774
|
-
:stability: experimental
|
|
4775
|
-
'''
|
|
4776
|
-
result = self._values.get("bucket")
|
|
4777
|
-
return typing.cast(typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket], result)
|
|
4778
|
-
|
|
4779
|
-
@builtins.property
|
|
4780
|
-
def dlq_max_receive_count(self) -> typing.Optional[jsii.Number]:
|
|
4781
|
-
'''(experimental) The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue.
|
|
4782
|
-
|
|
4783
|
-
:default: 5
|
|
4784
|
-
|
|
4785
|
-
:stability: experimental
|
|
4786
|
-
'''
|
|
4787
|
-
result = self._values.get("dlq_max_receive_count")
|
|
4788
|
-
return typing.cast(typing.Optional[jsii.Number], result)
|
|
4789
|
-
|
|
4790
5262
|
@builtins.property
|
|
4791
5263
|
def document_processing_table(
|
|
4792
5264
|
self,
|
|
@@ -4834,28 +5306,26 @@ class AgenticDocumentProcessingProps(BedrockDocumentProcessingProps):
|
|
|
4834
5306
|
return typing.cast(typing.Optional[EventbridgeBroker], result)
|
|
4835
5307
|
|
|
4836
5308
|
@builtins.property
|
|
4837
|
-
def
|
|
4838
|
-
'''(experimental)
|
|
5309
|
+
def ingress_adapter(self) -> typing.Optional[IAdapter]:
|
|
5310
|
+
'''(experimental) Adapter that defines how the document processing workflow is triggered.
|
|
4839
5311
|
|
|
4840
|
-
:default:
|
|
5312
|
+
:default: QueuedS3Adapter
|
|
4841
5313
|
|
|
4842
5314
|
:stability: experimental
|
|
4843
5315
|
'''
|
|
4844
|
-
result = self._values.get("
|
|
4845
|
-
return typing.cast(typing.Optional[
|
|
5316
|
+
result = self._values.get("ingress_adapter")
|
|
5317
|
+
return typing.cast(typing.Optional[IAdapter], result)
|
|
4846
5318
|
|
|
4847
5319
|
@builtins.property
|
|
4848
|
-
def
|
|
4849
|
-
'''(experimental)
|
|
4850
|
-
|
|
4851
|
-
Should be longer than expected processing time to prevent duplicate processing.
|
|
5320
|
+
def network(self) -> typing.Optional[Network]:
|
|
5321
|
+
'''(experimental) Resources that can run inside a VPC will follow the provided network configuration.
|
|
4852
5322
|
|
|
4853
|
-
:default:
|
|
5323
|
+
:default: resources will run outside of a VPC
|
|
4854
5324
|
|
|
4855
5325
|
:stability: experimental
|
|
4856
5326
|
'''
|
|
4857
|
-
result = self._values.get("
|
|
4858
|
-
return typing.cast(typing.Optional[
|
|
5327
|
+
result = self._values.get("network")
|
|
5328
|
+
return typing.cast(typing.Optional[Network], result)
|
|
4859
5329
|
|
|
4860
5330
|
@builtins.property
|
|
4861
5331
|
def removal_policy(self) -> typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy]:
|
|
@@ -5034,14 +5504,16 @@ __all__ = [
|
|
|
5034
5504
|
"DataLoaderProps",
|
|
5035
5505
|
"DatabaseConfig",
|
|
5036
5506
|
"DatabaseEngine",
|
|
5507
|
+
"DefaultDocumentProcessingConfig",
|
|
5508
|
+
"DefaultObservabilityConfig",
|
|
5037
5509
|
"DefaultRuntimes",
|
|
5038
|
-
"DocumentProcessingPrefix",
|
|
5039
5510
|
"EventbridgeBroker",
|
|
5040
5511
|
"EventbridgeBrokerProps",
|
|
5041
5512
|
"FileInput",
|
|
5042
5513
|
"FileType",
|
|
5043
5514
|
"Frontend",
|
|
5044
5515
|
"FrontendProps",
|
|
5516
|
+
"IAdapter",
|
|
5045
5517
|
"IObservable",
|
|
5046
5518
|
"LambdaIamUtils",
|
|
5047
5519
|
"LambdaIamUtilsStackInfo",
|
|
@@ -5053,6 +5525,8 @@ __all__ = [
|
|
|
5053
5525
|
"NetworkProps",
|
|
5054
5526
|
"ObservableProps",
|
|
5055
5527
|
"PowertoolsConfig",
|
|
5528
|
+
"QueuedS3Adapter",
|
|
5529
|
+
"QueuedS3AdapterProps",
|
|
5056
5530
|
"StateMachineObservabilityPropertyInjector",
|
|
5057
5531
|
]
|
|
5058
5532
|
|
|
@@ -5108,6 +5582,7 @@ def _typecheckingstub__e1a82500ee072f393cd9a2ada2f9a3434219c7a51186f26fbba3061bd
|
|
|
5108
5582
|
*,
|
|
5109
5583
|
agent_system_prompt: typing.Optional[builtins.str] = None,
|
|
5110
5584
|
lambda_layers: typing.Optional[typing.Sequence[_aws_cdk_aws_lambda_ceddda9d.LayerVersion]] = None,
|
|
5585
|
+
tools_bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
5111
5586
|
tools_location: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
5112
5587
|
) -> None:
|
|
5113
5588
|
"""Type checking stubs"""
|
|
@@ -5251,6 +5726,62 @@ def _typecheckingstub__2648a6f2c6f02177f5b324264b7de549aa23b0c1d93c8d6cccbc307a8
|
|
|
5251
5726
|
"""Type checking stubs"""
|
|
5252
5727
|
pass
|
|
5253
5728
|
|
|
5729
|
+
def _typecheckingstub__5998f6c7e16512d92cd00097e77d737333304685208eb36a522c156f8378a9e7(
|
|
5730
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
5731
|
+
) -> None:
|
|
5732
|
+
"""Type checking stubs"""
|
|
5733
|
+
pass
|
|
5734
|
+
|
|
5735
|
+
def _typecheckingstub__b61e74ddd8982f4b30ae59307c9fb3adaff26122ddc7f5faabc2cc8e1e2da034(
|
|
5736
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
5737
|
+
state_machine: _aws_cdk_aws_stepfunctions_ceddda9d.StateMachine,
|
|
5738
|
+
*,
|
|
5739
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5740
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5741
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5742
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
5743
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5744
|
+
network: typing.Optional[Network] = None,
|
|
5745
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5746
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5747
|
+
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5748
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
5749
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
5750
|
+
) -> None:
|
|
5751
|
+
"""Type checking stubs"""
|
|
5752
|
+
pass
|
|
5753
|
+
|
|
5754
|
+
def _typecheckingstub__cd0aad7a5879633fca8d89cbf92e8f5a13e31615116036f29a82a58c1bb4727d(
|
|
5755
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
5756
|
+
) -> None:
|
|
5757
|
+
"""Type checking stubs"""
|
|
5758
|
+
pass
|
|
5759
|
+
|
|
5760
|
+
def _typecheckingstub__82a45114a0ff76d4b9d091edd6674d4e762dc5ca19631d61579cf1aa47e30b5e(
|
|
5761
|
+
additional_iam_actions: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
5762
|
+
narrow_actions: typing.Optional[builtins.bool] = None,
|
|
5763
|
+
) -> None:
|
|
5764
|
+
"""Type checking stubs"""
|
|
5765
|
+
pass
|
|
5766
|
+
|
|
5767
|
+
def _typecheckingstub__17f7e7f35ea8e49cf6ded248435aa1e1dcf416e61c549f3e7b74baad3ac399e7(
|
|
5768
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
5769
|
+
*,
|
|
5770
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5771
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5772
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5773
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
5774
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5775
|
+
network: typing.Optional[Network] = None,
|
|
5776
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5777
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5778
|
+
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5779
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
5780
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
5781
|
+
) -> None:
|
|
5782
|
+
"""Type checking stubs"""
|
|
5783
|
+
pass
|
|
5784
|
+
|
|
5254
5785
|
def _typecheckingstub__8fea74c9846ad0c5bdddcbfe10063247cb7bcf58aac91e0be80d1226246784e4(
|
|
5255
5786
|
table_arn: builtins.str,
|
|
5256
5787
|
actions: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
@@ -5414,6 +5945,74 @@ def _typecheckingstub__e065c545d4fce5c4fc2579c3efea8203f50b6d3c8b39aa1595ea3577d
|
|
|
5414
5945
|
"""Type checking stubs"""
|
|
5415
5946
|
pass
|
|
5416
5947
|
|
|
5948
|
+
def _typecheckingstub__b95daf862a9819daa9b25cecfc08214dc429ef07ac6de3920b5dea59e01616eb(
|
|
5949
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
5950
|
+
) -> None:
|
|
5951
|
+
"""Type checking stubs"""
|
|
5952
|
+
pass
|
|
5953
|
+
|
|
5954
|
+
def _typecheckingstub__fb0e9adf74054c1b0a1974cab45642af57cb1651ef8052310a0229dae1eac178(
|
|
5955
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
5956
|
+
state_machine: _aws_cdk_aws_stepfunctions_ceddda9d.StateMachine,
|
|
5957
|
+
*,
|
|
5958
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5959
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5960
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5961
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
5962
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5963
|
+
network: typing.Optional[Network] = None,
|
|
5964
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5965
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5966
|
+
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5967
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
5968
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
5969
|
+
) -> None:
|
|
5970
|
+
"""Type checking stubs"""
|
|
5971
|
+
pass
|
|
5972
|
+
|
|
5973
|
+
def _typecheckingstub__76aa2fd577ace3b2507bf11a33f4d039ae5ac0af0d5d3edede30c4515a1a0986(
|
|
5974
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
5975
|
+
) -> None:
|
|
5976
|
+
"""Type checking stubs"""
|
|
5977
|
+
pass
|
|
5978
|
+
|
|
5979
|
+
def _typecheckingstub__308867c51abfbbc08d0fba9125db9b86eddda969dc95de8546e6f8cb242ee8a9(
|
|
5980
|
+
additional_iam_actions: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
5981
|
+
narrow_actions: typing.Optional[builtins.bool] = None,
|
|
5982
|
+
) -> None:
|
|
5983
|
+
"""Type checking stubs"""
|
|
5984
|
+
pass
|
|
5985
|
+
|
|
5986
|
+
def _typecheckingstub__3fe79d0c4a3a771012bc95cea6a690155ea89fa70073f87564e65aad5cdfdb64(
|
|
5987
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
5988
|
+
*,
|
|
5989
|
+
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5990
|
+
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5991
|
+
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5992
|
+
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
5993
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5994
|
+
network: typing.Optional[Network] = None,
|
|
5995
|
+
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5996
|
+
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5997
|
+
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5998
|
+
metric_namespace: typing.Optional[builtins.str] = None,
|
|
5999
|
+
metric_service_name: typing.Optional[builtins.str] = None,
|
|
6000
|
+
) -> None:
|
|
6001
|
+
"""Type checking stubs"""
|
|
6002
|
+
pass
|
|
6003
|
+
|
|
6004
|
+
def _typecheckingstub__c2db7ec0d4b3e93062e1f20f29f9821e5a0fd526ecf05f9ccaa6db663fb1e8de(
|
|
6005
|
+
*,
|
|
6006
|
+
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
6007
|
+
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
6008
|
+
failed_prefix: typing.Optional[builtins.str] = None,
|
|
6009
|
+
processed_prefix: typing.Optional[builtins.str] = None,
|
|
6010
|
+
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
6011
|
+
raw_prefix: typing.Optional[builtins.str] = None,
|
|
6012
|
+
) -> None:
|
|
6013
|
+
"""Type checking stubs"""
|
|
6014
|
+
pass
|
|
6015
|
+
|
|
5417
6016
|
def _typecheckingstub__011b55520774139b52c951d9cc59273f686e377b5415ee42a57650da571d43e7(
|
|
5418
6017
|
original_props: typing.Any,
|
|
5419
6018
|
*,
|
|
@@ -5427,14 +6026,12 @@ def _typecheckingstub__117c249a26f3e7532983afc9123fadff3e20effcc69408df0f45a03eb
|
|
|
5427
6026
|
scope: _constructs_77d1e7e8.Construct,
|
|
5428
6027
|
id: builtins.str,
|
|
5429
6028
|
*,
|
|
5430
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
5431
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
5432
6029
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5433
6030
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5434
6031
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5435
6032
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
6033
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5436
6034
|
network: typing.Optional[Network] = None,
|
|
5437
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5438
6035
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5439
6036
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5440
6037
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
@@ -5450,25 +6047,17 @@ def _typecheckingstub__900aa9de379313a2a9a3e24a2901f803dec0a30dde90b7255d9f180e2
|
|
|
5450
6047
|
"""Type checking stubs"""
|
|
5451
6048
|
pass
|
|
5452
6049
|
|
|
5453
|
-
def _typecheckingstub__51565b317b75c58d9a9fb26bd3a0b7c471bf8844bfd0cc94dd43d1850d7ab957(
|
|
5454
|
-
state_machine: _aws_cdk_aws_stepfunctions_ceddda9d.StateMachine,
|
|
5455
|
-
) -> None:
|
|
5456
|
-
"""Type checking stubs"""
|
|
5457
|
-
pass
|
|
5458
|
-
|
|
5459
6050
|
def _typecheckingstub__75e07bce24d48571be58cad69f751b10a17a738fdb9db601acdc689ff1e6da22(
|
|
5460
6051
|
*,
|
|
5461
6052
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5462
6053
|
metric_namespace: typing.Optional[builtins.str] = None,
|
|
5463
6054
|
metric_service_name: typing.Optional[builtins.str] = None,
|
|
5464
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
5465
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
5466
6055
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5467
6056
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5468
6057
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5469
6058
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
6059
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5470
6060
|
network: typing.Optional[Network] = None,
|
|
5471
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5472
6061
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5473
6062
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5474
6063
|
) -> None:
|
|
@@ -5488,14 +6077,12 @@ def _typecheckingstub__7393f9c6b2af93f7d8668b32cec54ba8c77259644ab01f57b3fbd50c7
|
|
|
5488
6077
|
processing_prompt: typing.Optional[builtins.str] = None,
|
|
5489
6078
|
step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5490
6079
|
use_cross_region_inference: typing.Optional[builtins.bool] = None,
|
|
5491
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
5492
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
5493
6080
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5494
6081
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5495
6082
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5496
6083
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
6084
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5497
6085
|
network: typing.Optional[Network] = None,
|
|
5498
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5499
6086
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5500
6087
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5501
6088
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
@@ -5517,14 +6104,12 @@ def _typecheckingstub__9606a6418d69bde20176ec33b27eaa22c0e0cdb6b105d382e9d038566
|
|
|
5517
6104
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5518
6105
|
metric_namespace: typing.Optional[builtins.str] = None,
|
|
5519
6106
|
metric_service_name: typing.Optional[builtins.str] = None,
|
|
5520
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
5521
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
5522
6107
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5523
6108
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5524
6109
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5525
6110
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
6111
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5526
6112
|
network: typing.Optional[Network] = None,
|
|
5527
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5528
6113
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5529
6114
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5530
6115
|
classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
|
|
@@ -5554,14 +6139,12 @@ def _typecheckingstub__b7f396236f637ec7234d81b355cf773497392b537455f3d888c4b7170
|
|
|
5554
6139
|
processing_prompt: typing.Optional[builtins.str] = None,
|
|
5555
6140
|
step_timeouts: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5556
6141
|
use_cross_region_inference: typing.Optional[builtins.bool] = None,
|
|
5557
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
5558
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
5559
6142
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5560
6143
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5561
6144
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5562
6145
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
6146
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5563
6147
|
network: typing.Optional[Network] = None,
|
|
5564
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5565
6148
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5566
6149
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5567
6150
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
@@ -5576,14 +6159,12 @@ def _typecheckingstub__da9ccab0035a06d18b5aa3f2de69201b3bbd6e30f7707a291977a0e4f
|
|
|
5576
6159
|
log_group_data_protection: typing.Optional[typing.Union[LogGroupDataProtectionProps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5577
6160
|
metric_namespace: typing.Optional[builtins.str] = None,
|
|
5578
6161
|
metric_service_name: typing.Optional[builtins.str] = None,
|
|
5579
|
-
bucket: typing.Optional[_aws_cdk_aws_s3_ceddda9d.Bucket] = None,
|
|
5580
|
-
dlq_max_receive_count: typing.Optional[jsii.Number] = None,
|
|
5581
6162
|
document_processing_table: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table] = None,
|
|
5582
6163
|
enable_observability: typing.Optional[builtins.bool] = None,
|
|
5583
6164
|
encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.Key] = None,
|
|
5584
6165
|
eventbridge_broker: typing.Optional[EventbridgeBroker] = None,
|
|
6166
|
+
ingress_adapter: typing.Optional[IAdapter] = None,
|
|
5585
6167
|
network: typing.Optional[Network] = None,
|
|
5586
|
-
queue_visibility_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5587
6168
|
removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
|
|
5588
6169
|
workflow_timeout: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
|
|
5589
6170
|
classification_model_id: typing.Optional[_aws_cdk_aws_bedrock_ceddda9d.FoundationModelIdentifier] = None,
|
|
@@ -5599,3 +6180,6 @@ def _typecheckingstub__da9ccab0035a06d18b5aa3f2de69201b3bbd6e30f7707a291977a0e4f
|
|
|
5599
6180
|
) -> None:
|
|
5600
6181
|
"""Type checking stubs"""
|
|
5601
6182
|
pass
|
|
6183
|
+
|
|
6184
|
+
for cls in [IAdapter, IObservable]:
|
|
6185
|
+
typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
|